API & SDKsREST APIMeasurements

List and filter measurements

GET/v2/measurements
AuthorizationBearer <token>

API key for authentication. Use format: Bearer YOUR_API_KEY

In: header

Query Parameters

procedure_id*string

Procedure to list measurements for. Required: measurements are scoped to a single procedure.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
phase_name?string

Pin results to a single phase by name (used with measurement_name).

measurement_name?string

Pin results to a single measurement by name (used with phase_name).

phase_names?array<string>

Restrict results to these phase names.

outcomes?array<>

Filter measurements by the outcome of their run.

ids?array<>

Filter measurements by run ID.

duration_min?string

Filter measurements whose run lasted at least this ISO 8601 duration.

Match^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$
Formatduration
duration_max?string

Filter measurements whose run lasted at most this ISO 8601 duration.

Match^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$
Formatduration
deployment_ids?array<>

Filter measurements by the deployment ID their run executed from.

procedure_versions?array<string>

Filter measurements by the procedure version tag of their run.

environments?array<>

Filter measurements by the deployment environment of their run (production, preview, development).

serial_numbers?array<string>

Filter measurements by unit serial number.

part_numbers?array<string>

Filter measurements by unit part number.

revision_numbers?array<string>

Filter measurements by unit revision number.

batch_numbers?array<string>

Filter measurements by unit batch number.

operated_by_ids?array<>

Filter measurements by the operator user ID of their run.

created_by_station_ids?array<>

Filter measurements by the station ID that created their run.

created_by_user_ids?array<>

Filter measurements by the user ID that created their run.

started_after?string

Filter measurements whose run started after this date (inclusive).

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
started_before?string

Filter measurements whose run started before this date (inclusive).

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
exclude_retries?boolean

Exclude retried phase attempts, keeping only the final attempt.

Defaulttrue
value_min?number

Filter numeric measurements with a value at or above this number.

value_max?number

Filter numeric measurements with a value at or below this number.

value_bool?boolean

Filter boolean measurements by value.

value_strings?array<string>

Filter string measurements by value.

measurement_outcomes?array<>

Filter by measurement outcome.

measurement_types?array<>

Filter by measurement value type (numeric, boolean, string, multidimensional, empty, json).

sort_by?string

Field to sort results by.

Default"started_at"
Value in"started_at" | "value" | "outcome" | "serial_number" | "phase_name" | "measurement_name"
sort_order?string

Sort order direction.

Default"desc"
Value in"asc" | "desc"
limit?integer

Maximum number of measurements to return.

Default50
Range1 <= value <= 100
cursor?integer

Cursor for pagination. Use next_cursor from the previous response to fetch the next page.

Range-9007199254740991 <= value <= 9007199254740991

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v2/measurements?procedure_id=550e8400-e29b-41d4-a716-446655440000"
{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "phase_name": "Power",
      "measurement_name": "Voltage",
      "started_at": "2024-01-15T10:30:00Z",
      "value": 3.3,
      "bool_value": true,
      "string_value": "OK",
      "units": "V",
      "measurement_outcome": "PASS",
      "run_id": "550e8400-e29b-41d4-a716-446655440001",
      "serial_number": "SN-2024-001234",
      "sample": null,
      "measurement_type": "numeric",
      "retry_count": 0,
      "is_final_attempt": true,
      "validators": [
        {
          "outcome": "PASS",
          "operator": "<=",
          "expected_value": 3.6,
          "expression": "x <= 3.6",
          "is_decisive": true,
          "is_expression_only": false,
          "analytics_expression": "<= 3.6",
          "has_custom_expression": false
        }
      ]
    }
  ],
  "meta": {
    "has_more": true,
    "next_cursor": 50
  }
}
{
  "message": "Bad request",
  "code": "BAD_REQUEST",
  "issues": []
}
{
  "message": "Unauthorized",
  "code": "UNAUTHORIZED",
  "issues": []
}
{
  "message": "Internal server error",
  "code": "INTERNAL_SERVER_ERROR",
  "issues": []
}

How is this guide?