Exports
Bulk extracts for volumes that would be unreasonable to page through. An export is asynchronous: you request one, we build it, and you fetch the file when it is ready.
/v1/api/exportsexports:createList exports
Recent exports for your organisation, newest first.
Statuses only. Download links are not included here: minting one per row would sign a URL for every export you have ever made on a call you probably wanted statuses from. Fetch the export itself for a link.
https://api.skautik.com/v1/api/exports
GET /v1/api/exports HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/exportsexports:createRequest an export
Queue a bulk extract of the catalogue.
Accepts the same filters as the list endpoint. Returns immediately with a pending export; subscribe to export.completed rather than polling. Note that a narrowed field set may not round trip: feeding an export back into an import needs the columns an import requires, external_id and type among them, so omit fields for analysis rather than for a re-import.
Body fields
| Name | Type | Description |
|---|---|---|
formatrequired | enum | Output format. Parquet is named in the schema and is not implemented; asking for it is refused rather than answered with a corrupt file. ndjson | csv example: ndjson |
filters | object | Same keys the list endpoint accepts. example: {"property_type": "apartment", "price_max": 60000000} |
fields | array | Restrict columns. Omit for the full record. example: ["id", "title", "price", "address"] |
Request body
{
"format": "ndjson",
"filters": { "city": "Berlin", "status": "active" },
"fields": ["external_id", "price", "living_area_sqm", "address_city"]
}Response
{
"data": {
"id": "exp_74c0ab",
"status": "pending",
"format": "ndjson",
"created_at": "2026-08-12T10:04:00Z"
}
}https://api.skautik.com/v1/api/exports
POST /v1/api/exports HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…
Content-Type: application/json
{
"format": "ndjson",
"filters": { "city": "Berlin", "status": "active" },
"fields": ["external_id", "price", "living_area_sqm", "address_city"]
}/v1/api/exports/{export_id}exports:createRetrieve an export
Status, and the download URL once it is ready.
Download URLs are signed and expire one hour after issue, and are minted per request rather than stored, so ask again if one lapses. The file itself is kept for seven days; after that the export still appears in your history with no link, because the object has been swept.
Path parameters
| Name | Type | Description |
|---|---|---|
export_idrequired | string | Export identifier. example: exp_74c0ab |
Response
{
"data": {
"id": "exp_74c0ab",
"status": "completed",
"format": "ndjson",
"record_count": 1284,
"byte_size": 4821004,
"download_url": "https://exports.skautik.com/exp_74c0ab.ndjson?sig=…",
"expires_at": "2026-08-12T11:12:00Z"
}
}https://api.skautik.com/v1/api/exports/{export_id}
GET /v1/api/exports/exp_74c0ab HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…