Input objects, result types, and enums used by create_board_export and export_job_status
ExportAsyncJob
Only available in API versions
2026-10and later
Returned by create_board_export. Poll export_job_status with the job's job_id until the status is COMPLETED, FAILED, or CANCELLED.
| Field | Type | Description |
|---|---|---|
| job_id | ID | Opaque identifier for the export job. Pass it to export_job_status to poll for the result. |
ExportFile
Only available in API versions
2026-10and later
A completed board export, ready to download. Returned as one branch of ExportResult when the export finished within the synchronous window.
| Field | Type | Description |
|---|---|---|
| download_url | String | Presigned URL to download the exported file. Treat it as a secret — anyone holding it can download the file until it expires. |
| expires_at | String | When download_url stops working, as an ISO 8601 timestamp. The URL cannot be refreshed; call the mutation again for a new one. |
CreateBoardExportOptionsInput
Only available in API versions
2026-10and later
Optional export configuration, passed to create_board_export. Every field is optional; omitting the whole object exports the board with the defaults below.
| Field | Type | Default | Description |
|---|---|---|---|
| include_subitems | Boolean | false | Include subitems in the export. |
| include_item_identifiers | Boolean | false | Append item_id — and parent_item_id when include_subitems is true — as the last columns. Needed to match exported rows back to items. |
| header_row | HeaderFormat | COLUMN_ID | Whether the header row uses column titles or column IDs. Defaults to COLUMN_ID when omitted. |
| people_column_format | PeopleColumnFormat | — | Output format for people column values. Omit to keep the raw ID form. |
| connected_item_column_format | ConnectedItemColumnFormat | NAME | Whether connected items (Connect boards) render as names or IDs. |
| columns_order | [String!] | — | Column IDs in the order you want them in the file. This also filters — see the note below. Omit it to export every column in the board's own order. |
| include_project_board_link | Boolean | — | Add a trailing Project Board column with the board ID of the project board connected to each row through its portfolio project-link column (portfolio_project_link). Resolves to the first linked project's board ID; blank when the row has no linked project. Ignored for non-CSV formats and where not available to the account. Only available in versions 2027-01 and later. |
columns_orderselects columns as well as ordering them. Any column you do not list is left out of the export entirely — it is not appended at the end. To reorder a board without losing columns, list every column ID you want.The item name and subitems columns are the exception: they are always placed first, whether or not you list them.
ExportResult
Only available in API versions
2026-10and later
A union returned by create_board_export. It is either a finished export you can download immediately, or a reference to a job that is still running.
union ExportResult = ExportAsyncJob | ExportFileThe server decides which member to return based on board size and current load. Which branch you get is not part of the contract and can change without notice, so your query must handle both. Select both members with inline fragments:
mutation {
create_board_export(board_id: 1234567890) {
... on ExportFile {
download_url
expires_at
}
... on ExportAsyncJob {
job_id
}
}
}| Member | Meaning |
|---|---|
ExportFile | The export already finished. Use download_url right away. |
ExportAsyncJob | The export is still running. Poll export_job_status with job_id until it is terminal. |
There is no error member. Problems surface either as a GraphQL error (if the request is rejected before the export starts) or as a FAILED status on export_job_status (if it fails after starting).
HeaderFormat
Only available in API versions
2026-10and later
Format of the header row in an exported file. Used by CreateBoardExportOptionsInput.header_row.
| Value | Description |
|---|---|
TITLE | Use column titles as headers. Human-readable, but titles are not unique and can be renamed at any time. |
COLUMN_ID | Use column IDs as headers. Stable identifiers — use this when the file will be re-imported or processed by a script. |
ConnectedItemColumnFormat
Only available in API versions
2026-10and later
Output format for connected items (Connect boards) column values. Used by CreateBoardExportOptionsInput.connected_item_column_format.
| Value | Description |
|---|---|
NAME | Use the linked items' display names (e.g. Task A, Task B). This is the default. |
ID | Use the linked items' IDs (e.g. 111, 222). Use this when the export needs to be joined back to items. |
PeopleColumnFormat
Only available in API versions
2026-10and later
Output format for people column values. Used by CreateBoardExportOptionsInput.people_column_format.
| Value | Description |
|---|---|
NAME | Use display names (e.g. Jordan Lee, Marketing Team) instead of the raw ID form (e.g. user:123). |
Omit the option entirely to keep the raw ID form, which is what you want if the values need to be resolved back to specific users or teams.
ExportJobStatusInfo
Only available in API versions
2026-10and later
The current state of an async board export job. Returned by export_job_status.
| Field | Type | Description |
|---|---|---|
| status | ExportJobStatus | Current status of the job. COMPLETED, FAILED, and CANCELLED are terminal — stop polling when you see one. |
| download_url | String | Presigned download URL. Populated only while status is COMPLETED and the URL has not expired; it becomes null afterwards. Run the export again to get a fresh one. |
| failure_reason | ExportFailureReason | Structured reason the job failed. Populated only when status is FAILED. Branch on this rather than on failure_message. |
| failure_message | String | Human-readable error detail, when the failure exposes text that is safe to show. Populated only when status is FAILED, and may be null even then. |
Note that a COMPLETED job can still return a null download_url if you poll after the URL has expired, so check for null before using it.
ExportJobStatus
Only available in API versions
2026-10and later
Lifecycle status of an async board export job. Used by ExportJobStatusInfo.status.
| Value | Terminal | Description |
|---|---|---|
RUNNING | No | The export is still in progress. Keep polling. |
COMPLETED | Yes | The export finished successfully. Read download_url. |
FAILED | Yes | The export failed. Read failure_reason, and failure_message when present. |
CANCELLED | Yes | The export was cancelled. |
Treat any unrecognized value as terminal so a future addition cannot leave your client polling forever.
ExportFailureReason
Only available in API versions
2026-10and later
Structured reason an async board export job failed. Used by ExportJobStatusInfo.failure_reason.
| Value | Retryable | Description |
|---|---|---|
BOARD_UNAVAILABLE | No | The board was deleted or archived. |
BOARD_INACCESSIBLE | No | The caller lost permission to read the board. |
ITEM_LIMIT_EXCEEDED | No | The board has more items than the export limit allows. |
INVALID_REQUEST | No | The request was rejected during validation — for example, an unsupported combination of export options. Fix the request before retrying. |
NOT_FOUND | No | The board, or something it referenced, could not be found. |
INTERNAL_ERROR | Yes | An unexpected internal error occurred. Retrying the mutation is reasonable. |
See also
- Board Export overview - sync vs. async at a glance
- Board Export API reference -
create_board_exportandexport_job_status
