List a source's runs
The source's runs, newest first, paginated with cursors.
- Scopes
runs:read - Rate classread
/v1/sources/{id}/runsThe source's runs, newest first, paginated with cursors.
Authorization
apiKey An API key (fo_live_… / fo_test_…) as a bearer token
In: header
Path Parameters
Source (a vendor connection) ID
^src_[0-9A-Za-z]{22}$Query Parameters
Page size
1 <= value <= 10020Opaque position returned by a previous page
^[A-Za-z0-9_-]{1,512}$Opaque position returned by a previous page
^[A-Za-z0-9_-]{1,512}$Header Parameters
Dated API version; pinned per organisation on first use and overridable per request
Value in
- "2026-10-01"
- "2026-10-04"
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"
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/sources/string/runs"{ "object": "list", "data": [ { "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" } ], "has_more": true, "next_cursor": "string"}Retrieve a run GET
One run: its stage, status, counters and, when it failed, why.
Replay a source POST
Queues a run that processes the source's current snapshot again without fetching, after a mapping or rule change: only records whose result changed are written, at the time they were fetched, and absence is not counted. It answers 409 like starting a run, and 422 when the source has no snapshot its records reflect yet.