FurniOpsDocs
API referenceRuns

Retrieve a run

One run: its stage, status, counters and, when it failed, why.

  • Scopesruns:read
  • Rate classread
GET/v1/runs/{id}

One run: its stage, status, counters and, when it failed, why.

Authorization

apiKey
AuthorizationBearer <token>

An API key (fo_live_… / fo_test_…) as a bearer token

In: header

Path Parameters

id*string

Ingestion run ID

Match^run_[0-9A-Za-z]{22}$

Header Parameters

FurniOps-Version?string

Dated API version; pinned per organisation on first use and overridable per request

Value in

  • "2026-10-01"
  • "2026-10-04"
FurniOps-Mode?string

The data the request acts on: test is the organisation's sandbox. An OAuth token picks it (live by default); an API key's mode is fixed, and naming the other one is refused

Value in

  • "live"
  • "test"
If-None-Match?string

ETag of a cached representation; a match returns 304

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://example.com/v1/runs/string"
{  "object": "run",  "id": "string",  "source": "string",  "trigger": "schedule",  "stream": "catalogue",  "status": "queued",  "stage": "fetch",  "served_by": null,  "stats": {    "property1": 0,    "property2": 0  },  "error": {    "code": "fetch_refused",    "message": "string"  },  "waiting": {    "reason": "rate_limited",    "until": "2019-08-24T14:15:22Z",    "attempt": 1,    "detail": "string"  },  "problems": [    {      "sheet": "string",      "line": 1,      "column": "string",      "field": "string",      "problem": "missing",      "detail": "string"    }  ],  "created_at": "2019-08-24T14:15:22Z",  "started_at": "2019-08-24T14:15:22Z",  "finished_at": "2019-08-24T14:15:22Z"}