Get an export
An export and, once it has succeeded, its files: each with a download link valid 15 minutes from this read. Read it again for fresh links; the files are kept 7 days.
- Scopes
exports:read - Rate classread
/v1/exports/{id}An export and, once it has succeeded, its files: each with a download link valid 15 minutes from this read. Read it again for fresh links; the files are kept 7 days.
Authorization
apiKey An API key (fo_live_… / fo_test_…) as a bearer token
In: header
Path Parameters
Bulk export (a file set of the catalogue, made in the background) ID
^exp_[0-9A-Za-z]{22}$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/exports/string"{ "id": "string", "object": "export", "kind": "products", "status": "pending", "livemode": true, "filters": { "updated_since": "2019-08-24T14:15:22Z" }, "rows": 0, "files": [ { "url": "http://example.com", "dataset": "string", "rows": 0, "bytes": 0 } ], "error": "string", "created_at": "2019-08-24T14:15:22Z", "completed_at": "2019-08-24T14:15:22Z", "expires_at": "2019-08-24T14:15:22Z"}Start an export POST
Queues an export in the caller's mode, written as gzip JSON Lines. `products`: the catalogue the caller can see, one product per line as `GET /v1/products` returns it; needs `products:read` beside `exports:write` and the plan's bulk exports (403 `feature_unavailable`), and exported products count against the `export_rows` quota (429 `quota_exceeded`). `organisation`: everything the organisation holds, one file per dataset, each line as its API read returns it, closed by a manifest; needs every dataset's read permission (403 `insufficient_scope`), takes no filters (422), and is neither plan-gated nor metered. Follow it with `GET /v1/exports/{id}` or the `export.completed` event. An organisation may have at most 3 open (`pending` or `running`) exports per mode, test and live counted apart; one more answers 409 `conflict`.
List exports GET
The caller's mode's exports, newest first, paginated with cursors. Files are listed by `GET /v1/exports/{id}` only.