Skip to content

OpenAPI Spec

This is the reference for all endpoints of the Surfmeter Export API, rendered from its OpenAPI 3.1 spec. For hand-written explanations and more examples, see the Resources page.

You can also download the spec as a single YAML file at /assets/openapi/export_api-v1.yml and use it with OpenAPI tooling, such as Postman or code generators.

Surfmeter Export API v1

API for exporting data from the Surfmeter platform. Provides access to measurements, client reports, event bundles, client information, user feedback, and network requests. Also supports advanced search capabilities via Elasticsearch Query DSL and ES|QL.


Servers

Description URL
https://surfmeter-server.{host}/export_api/v1 https://surfmeter-server.{host}/export_api/v1

Endpoints


GET /version

Get the server version

Description

Returns the version of the Surfmeter Server. This is the only endpoint that does not require an API key.

Response 200 OK

{
    "version": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "description": "The version of the Surfmeter Server.",
    "properties": {
        "version": {
            "type": "string"
        }
    },
    "required": [
        "version"
    ]
}

GET /measurements

Get measurements

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
measurement_id query integer No A single measurement ID to query. Note: overrides all other parameters.
page query integer 1 No The page number for pagination.
per_page query integer 1000 No The number of records per page. Cannot exceed 1000.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
study_id query array No The study ID of the measurement.
subject query array No The subject of the measurement.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).
type query string No The type of the measurement.

Response 200 OK

[
    null
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/MeasurementRecord"
    }
}

Response headers

Name Description Schema
Per-Page The number of elements shown per page. integer
Total The number of total elements available. integer
Link Links for pagination (RFC 8288). string

Response 403 Forbidden

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

HEAD /measurements

Get measurement count

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
measurement_id query integer No A single measurement ID to query. Note: overrides all other parameters.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
study_id query array No The study ID of the measurement.
subject query array No The subject of the measurement.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).
type query string No The type of the measurement.

Response 200 OK

Response headers

Name Description Schema
Total The number of total elements available. integer

Response 403 Forbidden


GET /client_reports

Get client reports

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
measurement_id query integer No A single measurement ID to query. Note: overrides all other parameters.
page query integer 1 No The page number for pagination.
per_page query integer 1000 No The number of records per page. Cannot exceed 1000.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).
type query string No The type of the client report.

Response 200 OK

[
    null
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/ClientReportRecord"
    }
}

Response headers

Name Description Schema
Per-Page integer
Total integer
Link string

Response 403 Forbidden

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

HEAD /client_reports

Get client report count

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
measurement_id query integer No A single measurement ID to query. Note: overrides all other parameters.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).
type query string No The type of the client report.

Response 200 OK

Response headers

Name Description Schema
Total integer

Response 403 Forbidden


GET /network_requests

Get network requests

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
measurement_id query integer No A single measurement ID to query. Note: overrides all other parameters.
page query integer 1 No The page number for pagination.
per_page query integer 1000 No The number of records per page. Cannot exceed 1000.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).

Response 200 OK

[
    null
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/NetworkRequestRecord"
    }
}

Response headers

Name Description Schema
Per-Page integer
Total integer
Link string

Response 403 Forbidden

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

HEAD /network_requests

Get network request count

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
measurement_id query integer No A single measurement ID to query. Note: overrides all other parameters.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).

Response 200 OK

Response headers

Name Description Schema
Total integer

Response 403 Forbidden


GET /event_bundles

Get event bundles

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
measurement_id query integer No A single measurement ID to query. Note: overrides all other parameters.
page query integer 1 No The page number for pagination.
per_page query integer 1000 No The number of records per page. Cannot exceed 1000.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).
type query string No The type of the event bundle.

Response 200 OK

[
    null
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/EventBundleRecord"
    }
}

Response headers

Name Description Schema
Per-Page integer
Total integer
Link string

Response 403 Forbidden

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

HEAD /event_bundles

Get event bundle count

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
measurement_id query integer No A single measurement ID to query. Note: overrides all other parameters.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).
type query string VideoEventBundle No The type of the event bundle.

Response 200 OK

Response headers

Name Description Schema
Total integer

Response 403 Forbidden


GET /clients

Get clients

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
page query integer 1 No The page number for pagination.
per_page query integer 1000 No The number of records per page. Cannot exceed 1000.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).

Response 200 OK

[
    null
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/ClientRecord"
    }
}

Response headers

Name Description Schema
Per-Page integer
Total integer
Link string

Response 403 Forbidden

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

HEAD /clients

Get client count

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).

Response 200 OK

Response headers

Name Description Schema
Total integer

Response 403 Forbidden


GET /user_feedbacks

Get user feedbacks

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
page query integer 1 No The page number for pagination.
per_page query integer 1000 No The number of records per page. Cannot exceed 1000.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).
type query string No The type of the user feedback. Available types depend on your specific application.

Response 200 OK

[
    null
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/UserFeedbackRecord"
    }
}

Response headers

Name Description Schema
Per-Page integer
Total integer
Link string

Response 403 Forbidden

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

HEAD /user_feedbacks

Get user feedback count

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).
type query string No The type of the user feedback.

Response 200 OK

Response headers

Name Description Schema
Total integer

Response 403 Forbidden


GET /connection_detail_traces

Get connection detail traces

Description

Returns the connection detail traces of the measurements matching the given filters. Measurements without a connection detail trace are skipped.

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
measurement_id query integer No A single measurement ID to query. Note: overrides all other parameters.
page query integer 1 No The page number for pagination.
per_page query integer 1000 No The number of records per page. Cannot exceed 1000.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).

Response 200 OK

[
    null
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/ConnectionDetailTraceRecord"
    }
}

Response headers

Name Description Schema
Per-Page integer
Total integer
Link string

Response 403 Forbidden

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

HEAD /connection_detail_traces

Get connection detail trace count

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
measurement_id query integer No A single measurement ID to query. Note: overrides all other parameters.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).

Response 200 OK

Response headers

Name Description Schema
Total integer

Response 403 Forbidden


GET /geolocation_traces

Get geolocation traces

Description

Returns the geolocation traces of the measurements matching the given filters. Measurements without a geolocation trace are skipped.

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
measurement_id query integer No A single measurement ID to query. Note: overrides all other parameters.
page query integer 1 No The page number for pagination.
per_page query integer 1000 No The number of records per page. Cannot exceed 1000.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).

Response 200 OK

[
    null
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "$ref": "#/components/schemas/GeolocationTraceRecord"
    }
}

Response headers

Name Description Schema
Per-Page integer
Total integer
Link string

Response 403 Forbidden

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

HEAD /geolocation_traces

Get geolocation trace count

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
client_uuid query string No Specify a client UUID to query data from. Note: overrides any tags specified.
end_time query string No Define an end time in ISO-8601 format (e.g., 2021-01-02T00:00:00Z) up until which records will be queried. This applies to the created_at attribute of the record.
label query string No Filter by client's label.
measurement_id query integer No A single measurement ID to query. Note: overrides all other parameters.
start_time query string No Define a start time in ISO-8601 format (e.g., 2021-01-01T00:00:00Z) from which records will be queried. This applies to the created_at attribute of the record.
tags query array No Filter by client's tags. If multiple tags are specified, all of them must be assigned to the client. Can be specified multiple times (e.g., tags=foo&tags=bar) or as a comma-separated list (e.g., tags=foo,bar).

Response 200 OK

Response headers

Name Description Schema
Total integer

Response 403 Forbidden


POST /search

Search analytics data using Elasticsearch Query DSL

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
q query string No A Lucene query string (e.g., 'id:123'). Can be used for simple queries.
scroll query string No Enable scrolling search with specified scroll timeout (e.g. "1m"). Returns results as streaming NDJSON.
source_only query boolean No If true, returns only the source documents without Elasticsearch metadata.

Request body

{
    "body": {},
    "scroll": "string",
    "source_only": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "body": {
            "type": "object",
            "description": "The Elasticsearch query body. See Elasticsearch Query DSL documentation for details.",
            "additionalProperties": true
        },
        "scroll": {
            "type": "string",
            "description": "Enable scrolling search with specified scroll timeout (e.g. \"1m\").",
            "nullable": true
        },
        "source_only": {
            "type": "boolean",
            "description": "If true, returns only the source documents without Elasticsearch metadata.",
            "nullable": true
        }
    },
    "required": [
        "body"
    ]
}

Response 200 OK

Schema of the response body
{
    "oneOf": [
        {
            "$ref": "#/components/schemas/ElasticsearchResponse"
        },
        {
            "$ref": "#/components/schemas/SourceDocumentsArray"
        }
    ]
}

"TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ="
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "string",
    "format": "binary",
    "description": "Stream of NDJSON documents when 'scroll' parameter is used."
}

Response 400 Bad Request

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

Response 403 Forbidden

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

Search analytics data using Elasticsearch Query DSL

Description

Identical to the POST variant, except that the query is passed via the query string. Prefer POST for anything but the simplest queries.

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
body query string No The Elasticsearch query body, as a JSON-encoded string. See the Elasticsearch Query DSL documentation for details.
q query string No A Lucene query string (e.g., 'id:123'). Can be used for simple queries.
scroll query string No Enable scrolling search with specified scroll timeout (e.g. "1m"). Returns results as streaming NDJSON.
source_only query boolean No If true, returns only the source documents without Elasticsearch metadata.

Response 200 OK

Schema of the response body
{
    "oneOf": [
        {
            "$ref": "#/components/schemas/ElasticsearchResponse"
        },
        {
            "$ref": "#/components/schemas/SourceDocumentsArray"
        }
    ]
}

"TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ="
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "string",
    "format": "binary",
    "description": "Stream of NDJSON documents when 'scroll' parameter is used."
}

Response 400 Bad Request

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

Response 403 Forbidden

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

POST /esql

Query analytics data using ES|QL

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key

Request body

{
    "query": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "query": {
            "type": "string",
            "description": "The ES|QL query string."
        }
    },
    "required": [
        "query"
    ]
}

Response 200 OK

[
    {}
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "type": "object",
        "additionalProperties": true
    },
    "description": "An array of documents matching the ES|QL query."
}

Response 400 Bad Request

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

Response 403 Forbidden

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

GET /esql

Query analytics data using ES|QL

Description

Identical to the POST variant, except that the query is passed via the query string.

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key
query query string No The ES|QL query string. The FROM clause must reference your own indices.

Response 200 OK

[
    {}
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "array",
    "items": {
        "type": "object",
        "additionalProperties": true
    },
    "description": "An array of documents matching the ES|QL query."
}

Response 400 Bad Request

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

Response 403 Forbidden

{
    "message": "string",
    "details": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "details": {
            "type": "string"
        }
    }
}

Schemas

ClientRecord

Type:

ClientReportRecord

Type:

ConnectionDetailRecord

Name Type
client_time string(date-time)
client_time_skewed string(date-time)
id integer
ip_address string| null
mobile_network_type string| null
mobile_network_type_general string| null
rssi number| null
signal_strength number| null
ssid string| null
type string

ConnectionDetailTraceRecord

Type:

ElasticsearchResponse

ErrorResponse

Name Type
details string
message string

EsqlRequestBody

Name Type
query string

EsqlResponse

Type: Array<>

EventBundleRecord

Type:

GeneralRecord

GeolocationRecord

Name Type
accuracy number(float)| null
client_time string(date-time)
client_time_skewed string(date-time)
id integer
latitude number(float)
longitude number(float)
speed number(float)| null
type string

GeolocationTraceRecord

Type:

MeasurementRecord

Type:

NetworkRequestRecord

Type:

SearchRequestBody

Name Type
body
scroll string| null
source_only boolean| null

SourceDocumentsArray

Type: Array<>

UserFeedbackRecord

Type:

VersionResponse

Name Type
version string

Common parameters

This section describes common parameters that are reused across operations.

StartTime

Name In Type Default Nullable Description
start_time query string No

EndTime

Name In Type Default Nullable Description
end_time query string No

ClientUuid

Name In Type Default Nullable Description
client_uuid query string No

Tags

Name In Type Default Nullable Description
tags query array No

Label

Name In Type Default Nullable Description
label query string No

MeasurementId

Name In Type Default Nullable Description
measurement_id query integer No

Page

Name In Type Default Nullable Description
page query integer 1 No

PerPage

Name In Type Default Nullable Description
per_page query integer 1000 No

Security schemes

Name Type Scheme Description
ApiKeyAuth apiKey