Skip to Content

Responses

One envelope for every success, one shape for every error.

Success

{
  "data": { "...": "the resource, or a list of them" },
  "meta": {
    "as_of": "2026-11-06T14:00:00Z",
    "api_version": "2026-11-03",
    "request_id": "req_5bd092f30d380c07d2f32f8f",
    "next_cursor": null
  }
}
meta fieldMeaning
as_ofWhen the response was built, UTC. Each row also carries its own observation time, such as observed_at.
api_versionThe version the body is shaped for. See Versioning.
request_idUnique per request. Quote it when you contact us.
limit, next_cursor, totalOn lists. See Pagination.

Some routes add context to meta, such as methodology (the document that defines the numbers) or kind (observed, estimated or inferred).

Errors

Every error, including authentication and rate limits, has this shape:

{
  "error": {
    "type": "invalid_request",
    "code": "invalid_parameter",
    "message": "window: Input should be '24h', '7d', '30d', '90d', 'ytd' or 'all'",
    "param": "window",
    "request_id": "req_b8f8cd7f553c12d68b341bb0",
    "docs_url": "https://docs.tryopengrid.com/errors#invalid_parameter"
  }
}

Branch on code, never on message. See Errors for every code.

Headers

HeaderOnMeaning
X-Request-Idevery responseSame as request_id.
OpenGrid-Versionevery responseThe version used.
X-RateLimit-Limit, -Remaining, -Resetevery responseYour budget. See Rate limits.
ETag, Cache-Control, Varysuccessful GETsSee Caching.

On this page