---
title: "Get an export job"
method: GET
path: "/exports/{id}"
tags: ["Exports"]
---

# Get an export job

`GET /exports/{id}`

## Request

- Base URL: `https://api.warplink.app/v1`
- URL: `https://api.warplink.app/v1/exports/{id}`
- Auth: HTTP bearer

Returns the job status and manifest. A job that does not exist and a job in another organization both return 404.

## Path parameters

- `id` string, uuid, required

## Response `200`

The export job

- object
  - `job` ExportJob, required: A click export job and its manifest. The same object is returned when the job is created, while it runs, and after it completes.
    - `job_id` string, uuid
    - `snapshot_id` string, uuid: Equal to job_id.
    - `org_id` string, uuid
    - `status` 'created' | 'cut' | 'running' | 'complete' | 'failed': There is no expired status: a job is expired once expires_at has passed.
    - `error` 'too_large' | 'assumption_violated' | 'attempts_exhausted' | 'storage_unavailable' | 'abandoned' | 'null', nullable: Set when status is failed.
    - `scope` 'org' | 'own_links' | 'null', nullable: The role scope applied to the rows.
    - `filters` object, nullable: Request filters, such as linkId for a single-link export.
    - `window_requested_from` string, date-time
    - `window_requested_to` string, date-time
    - `window_from` string, date-time: The window actually exported, after the plan's data retention was applied.
    - `window_to` string, date-time
    - `retention_days` integer, nullable
    - `clipped` boolean: True when the requested window was narrowed to the plan's data retention.
    - `clipped_reason` 'retention' | 'null', nullable
    - `cut_snapshot` string, nullable: The database snapshot the export was cut at. Rows committed after it are never in this export.
    - `cut_at` string, date-time, nullable
    - `server_version_num` integer, nullable
    - `membership_max_rows` integer: The most rows one export may hold. A larger request fails as too_large.
    - `created_at` string, date-time
    - `completed_at` string, date-time, nullable
    - `expires_at` string, date-time: Downloads stop working at this time.
    - `expired_at` string, date-time, nullable: When the stored file was removed after expiry.
    - `completeness` 'unmeasured' | 'measured'
    - `complete_through` string, date-time, nullable
    - `rows_in_cut` integer, nullable
    - `rows_written` integer, nullable: Data rows in the file.
    - `deletions_observed` integer, nullable: Rows in the cut that were deleted before their page was read. rows_written plus deletions_observed equals rows_in_cut.
    - `first_id` string, nullable
    - `last_id` string, nullable
    - `order` 'id asc'
    - `columns` string[]
    - `schema_version` integer
    - `page_width` integer, nullable
    - `page_count` integer, nullable
    - `pages` object[]
      - `page` integer
      - `seq_from` integer
      - `seq_to` integer
      - `rows` integer
      - `bytes` integer
      - `sha256` string
      - `first_id` string, nullable
      - `last_id` string, nullable
      - `unknown_counts` object
    - `sha256` string, nullable: SHA-256 of the whole file. Every download of a complete job returns identical bytes with this checksum.
    - `unknown_counts` object: Per column, the number of empty cells.

## Other responses

- `400`: Invalid ID
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `503`: Exports are turned off for this deployment (code EXPORTS_UNAVAILABLE). Retry later.

---

[API](https://skmtc.dev/warplink/apis/warplink-api.md) · [All operations](https://skmtc.dev/warplink/apis/warplink-api/llms.txt) · [OpenAPI document](https://skmtc.dev/warplink/apis/warplink-api/revisions/2a90ae8c44e8?raw)
