Skip to content
OpenRelay is in early access, and the /v1 API is stable. New capabilities ship in the changelog.
API ReferenceInferenceDedicated Endpoints

Get a dedicated endpoint's monitoring series

Requests, error rate, latency and time-to-first-token percentiles, and tokens for a dedicated endpoint over 1h, 6h, 24h, or 7d, on one time grid. Every series also carries a whole-range figure. This is what the dashboard's Monitoring tab shows. Data appears within a minute of the endpoint serving its first request. The example cuts each `values` array to its first three points; a `1h` response has 241.

Required permission

Requires the endpoint.read permission. See Permissions for the roles and API key permissions that include it.

Command line

The orl CLI wraps this endpoint:

orl dedicated-endpoints series get <id> --range <range>
GET
/v1/inference/endpoints/{id}/series

Authorization

apiKey
headerAuthorizationBearer <token>

OpenRelay API key. Send it as Authorization: Bearer or_… (legacy vl_… keys still work).

Path Parameters

id*string

Query Parameters

range*string
Value in"1h""6h""24h""7d"

Response Body

Series

application/json
  1. response
model*string

the public model id every series is filtered to

range*string
Value in"1h""6h""24h""7d"
start*string

the first grid point

Formatdate-time
end*string

the last grid point

Formatdate-time
stepSeconds*integer
pointCount*integer

the length of every series' values

metrics*

Every chart, always all five. requests: success and error per second. errors: client_error, rate_limited and server_error, each as a share of all requests. latency (request start to last byte) and ttft (streaming requests only): p50, p90, p95 and p99 in seconds. tokens: per second by kind (input, cached_input, cache_write, output), only the kinds metered in the range.

Example Request
curl -X GET 'https://api.openrelay.inc/v1/inference/endpoints/string/series?range=1h'
Example Response
{  "model": "private/acme-gpt-oss-20b",  "range": "1h",  "start": "2026-09-26T17:30:00Z",  "end": "2026-09-26T18:30:00Z",  "stepSeconds": 15,  "pointCount": 241,  "metrics": {    "requests": {      "unit": "requests_per_second",      "series": [        {          "key": "success",          "values": [            3.1,            2.9,            null          ],          "window": 5300        },        {          "key": "error",          "values": [            0.02,            0,            null          ],          "window": 88        }      ]    },    "errors": {      "unit": "ratio",      "series": [        {          "key": "client_error",          "values": [            0.004,            0,            null          ],          "window": 0.005        },        {          "key": "rate_limited",          "values": [            0,            0,            null          ],          "window": 0.011        },        {          "key": "server_error",          "values": [            0.002,            0,            null          ],          "window": 0.0004        }      ]    },    "latency": {      "unit": "seconds",      "series": [        {          "key": "p50",          "values": [            2.4,            2.3,            null          ],          "window": 2.41        },        {          "key": "p90",          "values": [            4.8,            4.6,            null          ],          "window": 4.86        },        {          "key": "p95",          "values": [            6.1,            6.8,            null          ],          "window": 6.79        },        {          "key": "p99",          "values": [            38.2,            41,            null          ],          "window": 41.54        }      ]    },    "ttft": {      "unit": "seconds",      "series": [        {          "key": "p50",          "values": [            0.17,            0.18,            null          ],          "window": 0.173        },        {          "key": "p90",          "values": [            0.28,            0.29,            null          ],          "window": 0.289        },        {          "key": "p95",          "values": [            0.35,            0.36,            null          ],          "window": 0.358        },        {          "key": "p99",          "values": [            0.47,            0.48,            null          ],          "window": 0.475        }      ]    },    "tokens": {      "unit": "tokens_per_second",      "series": [        {          "key": "input",          "values": [            3820,            3610,            null          ],          "window": 6113042        },        {          "key": "cached_input",          "values": [            1390,            1310,            null          ],          "window": 2239951        },        {          "key": "output",          "values": [            1260,            1180,            null          ],          "window": 2013865        }      ]    }  }}