Direct Access Agents
API for running Direct Access gateway agent benchmarks and retrieving benchmark and load performance metrics. Requires the Tenant Admin role. Availability depends on the operation and Direct Access gateway version.
Endpoints
Retrieves paginated statuses for benchmarks run by the specified Direct Access agent. Use the filters and sort order to find benchmark runs and review their progress or completed results. The requestor must have the TenantAdmin role and be either the gateway's space owner or a member of the gateway's space with the Can Consume Data role. Available in Direct Access Gateway V1.7.17+.
Facts
| Rate limit | Tier 1 (1000 requests per minute) |
Query Parameters
- filterstring
SCIM style filter string as defined in RFC 7644 section 3.4.2.2
- limitinteger
The page size
- pageinteger
The page number
- sortstring
The field to sort by with +/- prefix indicating sort order
Can be one of: "-benchmarkStartTime""+benchmarkStartTime""benchmarkStartTime""-benchmarkEndTime""+benchmarkEndTime""benchmarkEndTime""-dataTransmissionStartTime""+dataTransmissionStartTime""dataTransmissionStartTime""-dataTransmissionEndTime""+dataTransmissionEndTime""dataTransmissionEndTime"
Path Parameters
- agentIdstringRequired
The agent ID
Responses
200
The benchmark status.
- application/jsonobject
Contains a paginated collection of benchmark statuses for an agent.
application/json properties
- dataarray of objects
Represents the status and performance data for a benchmark task.
data properties
- namestring
The benchmark name
- statusstring
The benchmark status
- resultsobject
Contains throughput, latency, transfer volume, and transmission timing for a benchmark.
results properties
- latencyinteger
The latency in ms measured during data transmission
- throughputinteger
The data throughput in KB/s measured during data transmission
- connectorLatencyinteger
The average latency in ms measured on the connector side during data transmission. Null if no connector benchmark data is available.
- totalBytesTransferredinteger
The total number of bytes successfully transferred during data transmission
- dataTransmissionEndTimestring
The ISO 8601 formatted timestamp when data transmission completed
- dataTransmissionStartTimestring
The ISO 8601 formatted timestamp when data transmission start
-
- benchmarkIdstring
The benchmark ID
- descriptionstring
The benchmark description
- statusMessagestring
Additional details about the benchmark status
- benchmarkEndTimestring
The ISO 8601 formatted timestamp when the benchmark task completed or was cancelled
- concurrentReloadsinteger
Number of concurrent benchmarks/reloads observed when this benchmark was started
- benchmarkStartTimestring
The ISO 8601 formatted timestamp when the benchmark task started execution
- totalBytesRequestedinteger
The total bytes requested to be transferred during the benchmark
- getReloadSlotEndTimestring
The ISO 8601 formatted timestamp when get reload slot completed
- dataGenerationEndTimestring
The ISO 8601 formatted timestamp when data generation completed
- getReloadSlotStartTimestring
The ISO 8601 formatted timestamp when get reload slot started
- dataGenerationStartTimestring
The ISO 8601 formatted timestamp when data generation started
-
- pageinteger
- limitinteger
- linksobject
links properties
- nextobject
next properties
- hrefstring
The URL to the related resource
-
- prevobject
prev properties
- hrefstring
The URL to the related resource
-
- selfobject
self properties
- hrefstring
The URL to the related resource
-
-
- totalCountinteger
- totalPagesinteger
-
400
Bad Request
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
403
The requestor does not have the required permissions for the gateway's space.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
404
The gateway was not found.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
429
Too many requests.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
500
There was an error processing the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
501
All or part of the request has not yet been implemented.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
503
Service is unavailable.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
// qlik-api has not implemented support for `GET /api/connectivity/direct-access-agents/{agentId}/benchmarks` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/connectivity/direct-access-agents/{agentId}/benchmarks', { method: 'GET', headers: { 'Content-Type': 'application/json', }, },)# qlik-cli has not implemented support for GET /api/connectivity/direct-access-agents/{agentId}/benchmarks yet.curl "https://{tenant}.{region}.qlikcloud.com/api/connectivity/direct-access-agents/{agentId}/benchmarks" \-H "Authorization: Bearer <access_token>"Example Response
{ "data": [ { "name": "string", "status": "string", "results": { "latency": 42, "throughput": 42, "connectorLatency": 42, "totalBytesTransferred": 42, "dataTransmissionEndTime": "2026-03-11T20:54:34.437Z", "dataTransmissionStartTime": "2026-03-11T20:52:05.308Z" }, "benchmarkId": "string", "description": "string", "statusMessage": "string", "benchmarkEndTime": "2026-03-11T20:54:34.438Z", "concurrentReloads": 42, "benchmarkStartTime": "2026-03-11T20:51:15.927Z", "totalBytesRequested": 42, "getReloadSlotEndTime": "2026-03-11T20:51:22.000Z", "dataGenerationEndTime": "2026-03-11T20:51:40.000Z", "getReloadSlotStartTime": "2026-03-11T20:51:20.000Z", "dataGenerationStartTime": "2026-03-11T20:51:23.000Z" } ], "page": 42, "limit": 42, "links": { "next": { "href": "string" }, "prev": { "href": "string" }, "self": { "href": "string" } }, "totalCount": 42, "totalPages": 42}Starts a background benchmark task that measures the throughput and latency of a Direct Access agent. Use the returned benchmarkId to monitor progress and retrieve performance metrics for capacity planning or performance optimization. The requestor must have the TenantAdmin role and be either the gateway's space owner or a member of the gateway's space with the Can Consume Data role. Available in Direct Access Gateway V1.7.8+.
Facts
| Rate limit | Tier 2 (100 requests per minute) | |
| Replaces |
Query Parameters
- descriptionstring
The description for the benchmark task.
- forceboolean
Forces the benchmark to start regardless of the state of the agent. Does not override QCS resource limits. Use with caution.
- gigaBytesToTransferinteger
The volume of data in GB to transfer during the throughput measurement part of the benchmark.
- namestring
The name to assign to the benchmark task.
Path Parameters
- agentIdstringRequired
The agent ID
Responses
201
Benchmark task created successfully with a unique identifier.
- application/jsonobject
application/json properties
- benchmarkIdstring
-
400
Bad Request
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
403
The requestor does not have the required permissions for the gateway's space.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
404
The agent was not found.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
429
Too many requests.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
500
There was an error processing the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
501
All or part of the request has not yet been implemented.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
503
Service is unavailable.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
// qlik-api has not implemented support for `POST /api/connectivity/direct-access-agents/{agentId}/benchmarks` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/connectivity/direct-access-agents/{agentId}/benchmarks', { method: 'POST', headers: { 'Content-Type': 'application/json', }, },)# qlik-cli has not implemented support for POST /api/connectivity/direct-access-agents/{agentId}/benchmarks yet.curl "https://{tenant}.{region}.qlikcloud.com/api/connectivity/direct-access-agents/{agentId}/benchmarks" \-X POST \-H "Authorization: Bearer <access_token>"Example Response
{ "benchmarkId": "string"}Retrieves performance metrics for loads processed by the gateway, either for all loads or a filtered subset. Use these metrics to evaluate reload throughput, connector latency, and concurrent reload activity. The requestor must have the TenantAdmin role and be either the gateway's space owner or a member of the gateway's space with the Can Consume Data role. Load performance recording is disabled by default and is controlled by the BENCHMARK_LOAD_PERFORMANCE_METRICS_RECORDING_ENABLED configuration property. Available in Direct Access Gateway V1.7.17+.
Facts
| Rate limit | Tier 1 (1000 requests per minute) |
Query Parameters
- filterstring
SCIM style filter string as defined in RFC 7644 section 3.4.2.2
- limitinteger
The page size
- pageinteger
The page number
- sortstring
The field to sort by with +/- prefix indicating sort order
Can be one of: "-benchmarkStartTime""+benchmarkStartTime""benchmarkStartTime""-benchmarkEndTime""+benchmarkEndTime""benchmarkEndTime""-dataTransmissionStartTime""+dataTransmissionStartTime""dataTransmissionStartTime""-dataTransmissionEndTime""+dataTransmissionEndTime""dataTransmissionEndTime"
Path Parameters
- agentIdstringRequired
The agent ID
Responses
200
Load performance metrics retrieved successfully.
- application/jsonobject
Contains a paginated collection of load performance metrics for an agent.
application/json properties
- dataarray of objects
Represents performance data captured for a load processed by the gateway.
data properties
- namestring
The name of the load performance metric, typically in the format "reload-YYYY-MM-DDTHH:mm:ssK"
- appIdstring
The app id associated with the reload
- statusstring
The status of the load, e.g. "Completed", "Failed", "Cancelled"
- metricIdstring
A unique identifier generated for this metric
- reloadIdstring
The reload id that this load is a part of
- statementstring
The load script statement for the load
- throughputinteger
The data throughput in KB/s measured during data transmission
- connectorUrlstring
The url of the connector
- dataSourceIdstring
The data source id
- dataSourceNamestring
The data source name
- sessionAppLoadboolean
A flag indicating whether this load is part of a session app load or not.
- connectorLatencyinteger
The connector latency in ms measured during data transmission
- concurrentReloadsinteger
Number of concurrent benchmarks/reloads observed when this load was started
- benchmarkingReloadboolean
A flag indicating whether this load is part of a benchmarking reload or not.
- totalBytesTransferredinteger
The total bytes transferred during the load
- dataTransmissionEndTimestring
The ISO 8601 formatted timestamp when data transmission completed
- dataTransmissionStartTimestring
The ISO 8601 formatted timestamp when data transmission started
- approximateMaxConnectorThroughputinteger
Approximation of the maximum connector throughput in KB/s, excluding downstream write time
-
- pageinteger
- limitinteger
- linksobject
links properties
- nextobject
next properties
- hrefstring
The URL to the related resource
-
- prevobject
prev properties
- hrefstring
The URL to the related resource
-
- selfobject
self properties
- hrefstring
The URL to the related resource
-
-
- totalCountinteger
- totalPagesinteger
-
400
Bad Request
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
403
The requestor does not have the required permissions for the gateway's space.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
404
The gateway was not found.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
429
Too many requests.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
500
There was an error processing the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
503
Service is unavailable.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
- hasErrorsboolean
-
// qlik-api has not implemented support for `GET /api/connectivity/direct-access-agents/{agentId}/load-performance-metrics` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/connectivity/direct-access-agents/{agentId}/load-performance-metrics', { method: 'GET', headers: { 'Content-Type': 'application/json', }, },)# qlik-cli has not implemented support for GET /api/connectivity/direct-access-agents/{agentId}/load-performance-metrics yet.curl "https://{tenant}.{region}.qlikcloud.com/api/connectivity/direct-access-agents/{agentId}/load-performance-metrics" \-H "Authorization: Bearer <access_token>"Example Response
{ "data": [ { "name": "string", "appId": "string", "status": "string", "metricId": "string", "reloadId": "string", "statement": "string", "throughput": 42, "connectorUrl": "string", "dataSourceId": "string", "dataSourceName": "string", "sessionAppLoad": true, "connectorLatency": 42, "concurrentReloads": 42, "benchmarkingReload": true, "totalBytesTransferred": 42, "dataTransmissionEndTime": "2026-03-11T21:54:33.595Z", "dataTransmissionStartTime": "2026-03-11T21:54:19.352Z", "approximateMaxConnectorThroughput": 42 } ], "page": 42, "limit": 42, "links": { "next": { "href": "string" }, "prev": { "href": "string" }, "self": { "href": "string" } }, "totalCount": 42, "totalPages": 42}