Download OpenAPI specification:Download
Exporting data from Ignite Procurement. Note: Legacy JSON Web Tokens (JWTs) are no longer supported. Generate a new API token and pass it using Bearer authorization.
Lists the available export tables and the columns available for filtering and projection. Classification result tables expose spend_id plus the available level_N_id / level_N_name columns from the tenant's classification tree; the schema supports levels 1 through 10, with deeper levels nullable when not used.
Columns whose dataType is STRING_ARRAY (repeated string values) support only the array operators contains_any, contains_all, is_empty, and is_not_empty. Array columns are not part of the default response fields, so request them explicitly via fields to include their values in a rows response.
updated_at semantics: The updated_at column on suppliers and contracts reflects when the core record was last modified in Ignite. It does not advance when enrichment data is refreshed or when custom fields are edited. Consumers relying on updated_at for incremental sync will miss those changes; use the async export endpoint (POST /tables/{entity}/exports) for a complete point-in-time snapshot instead.
[- {
- "id": "spend",
- "name": "Spend",
- "table": "spend",
- "columns": [
- {
- "name": "id",
- "label": "ID",
- "dataType": "STRING",
- "supportedOperators": [
- "eq",
- "in"
]
}, - {
- "name": "amount",
- "label": "Amount",
- "dataType": "MONETARY_AMOUNT",
- "supportedOperators": [
- "eq",
- "in",
- "gte",
- "lte",
- "between"
]
}
], - "orderBy": [
- "id"
]
}, - {
- "id": "classification_business_units",
- "name": "Business Unit Classification Results",
- "table": "classification_business_units",
- "columns": [
- {
- "name": "spend_id",
- "label": "Spend ID",
- "dataType": "STRING",
- "supportedOperators": [
- "eq",
- "in"
]
}, - {
- "name": "level_1_id",
- "label": "Level 1 ID",
- "dataType": "STRING",
- "supportedOperators": [
- "eq",
- "in"
]
}, - {
- "name": "level_1_name",
- "label": "Level 1 Name",
- "dataType": "STRING",
- "supportedOperators": [
- "eq",
- "in"
]
}, - {
- "name": "level_2_id",
- "label": "Level 2 ID",
- "dataType": "STRING",
- "supportedOperators": [
- "eq",
- "in"
]
}, - {
- "name": "level_2_name",
- "label": "Level 2 Name",
- "dataType": "STRING",
- "supportedOperators": [
- "eq",
- "in"
]
}
], - "orderBy": [
- "spend_id"
]
}, - {
- "id": "suppliers",
- "name": "Suppliers",
- "table": "suppliers",
- "columns": [
- {
- "name": "id",
- "label": "ID",
- "dataType": "STRING",
- "supportedOperators": [
- "eq",
- "in"
]
}, - {
- "name": "name",
- "label": "Name",
- "dataType": "STRING",
- "supportedOperators": [
- "eq",
- "in"
]
}, - {
- "name": "updated_at",
- "label": "Updated At",
- "dataType": "TIMESTAMP",
- "supportedOperators": [
- "eq",
- "gte",
- "lte",
- "between"
]
}, - {
- "name": "tags",
- "label": "Tags",
- "dataType": "STRING_ARRAY",
- "supportedOperators": [
- "contains_any",
- "contains_all",
- "is_empty",
- "is_not_empty"
]
}
], - "orderBy": [
- "id"
]
}
]Fetches scalar rows from an export table using optional field projection, typed filters, and opaque cursor pagination. Use GET /tables/ first to discover valid table ids, column names, data types, and supported filter operators. Classification result rows are identified by spend_id and contain the available level_N_id / level_N_name columns, with deeper levels nullable when not used. When fields is omitted, the endpoint returns every scalar column of the table; array (STRING_ARRAY) columns are excluded unless you request them explicitly in fields. For stable pagination, repeat the same request body and pass the previous response's nextPageToken as pageToken.
| entity required | string Enum: "spend" "suppliers" "contracts" "classification_business_units" "classification_spend_categories" Example: spend The export table to read, given as the |
| fields | Array of strings Column names to include. When omitted, all scalar columns of the table are returned. |
object Conjunctive filters keyed by column name (all conditions must match). Supported operators depend on the column metadata returned by Scalar value formats: | |
| pageSize | integer [ 1 .. 100000 ] Default: 1000 Maximum number of rows to return. The service may return fewer rows and provides |
| pageToken | string Opaque cursor returned as |
| keyBy | string Default: "name" Enum: "name" "label" Selects the key used in each returned row object. Under |
{- "pageSize": 1000
}{- "data": [
- {
- "id": "spend-row-1",
- "transaction_date": "2026-01-15",
- "amount": 125.5
}, - {
- "id": "spend-row-2",
- "transaction_date": "2026-01-20",
- "amount": 220
}
], - "nextPageToken": "AoF3kZ9vQ2tBxLmN7rPwYc1dHs5gJ0eU4iT6bWx"
}Starts an asynchronous export for a table. The returned export id can be used to poll status until the export is ready for download.
| entity required | string Enum: "spend" "suppliers" "contracts" "classification_business_units" "classification_spend_categories" Example: spend The export table to read, given as the |
| fields | Array of strings Column names to include. When omitted, all scalar columns of the table are exported. |
object Conjunctive filters keyed by column name. Supported operators depend on the column metadata returned by | |
| format | string Enum: "json" "parquet" Output file format. Send the lowercase value |
{ }{- "id": "95e90b56-5cd0-4d9a-a07b-52f5205731ac",
- "entity": "spend",
- "status": "queued",
- "format": "json",
- "estimatedBytesProcessed": 123456789,
- "createdAt": "2026-05-06T07:20:00Z",
- "updatedAt": "2026-05-06T07:20:00Z"
}Polls the current status of an asynchronous export. When status is succeeded, the response includes time-limited download URLs. Download URLs are valid for 1 hour; poll this endpoint again to obtain fresh URLs. Exported files are automatically deleted after 7 days.
| id required | string <uuid> Example: 95e90b56-5cd0-4d9a-a07b-52f5205731ac |
{- "id": "95e90b56-5cd0-4d9a-a07b-52f5205731ac",
- "entity": "spend",
- "status": "running",
- "format": "json",
- "estimatedBytesProcessed": 123456789,
- "createdAt": "2026-05-06T07:20:00Z",
- "updatedAt": "2026-05-06T07:20:03Z"
}Deprecated table metadata endpoint. Use GET /tables/ for the export table registry.
[- {
- "id": "12ab5182-jh73-9876-b77e-e71235a123a0",
- "name": "Awesome table",
- "globalType": "",
- "columns": [
- {
- "label": "Question",
- "dataType": "string",
- "columnType": "TEXT"
}, - {
- "label": "Answer",
- "dataType": "float",
- "columnType": "NUMBER"
}
]
}
]Deprecated export endpoint. Extracts rows from the data table, up to 10 000 per iteration. Each entry in the data property of the response will be an object consisting of key value pairs, where the key will be the label of the corresponding column.
| dataTableId required | string Example: dataTableId=12ab5182-jh73-9876-b77e-e71235a123a0 |
{- "totalCount": 2,
- "data": [
- {
- "Question": "The Ultimate Question of Life, the Universe, and Everything",
- "Answer": 42,
- "_rowId": "1"
}, - {
- "Question": "What is 6 times 7?",
- "Answer": 42,
- "_rowId": "2"
}
]
}Deprecated export endpoint. Extracts rows from the data table, up to 10 000 per iteration. Each entry in the data property of the response will be an object consisting of key value pairs, where the key will be the label of the corresponding column.
| dataTableId required | string Example: dataTableId=12ab5182-jh73-9876-b77e-e71235a123a0 |
Optional body for filtering rows and/or columns
| size | integer Number of rows to extract per iteration. Max 10 000 |
object For filtering out unwanted columns of the table | |
object For extracting rows based on when they were last modified in Ignite. Accepted formats: YYYY-MM-DD or relative date queries like now-1M (today minus one month). Accepted units: y = Years, M = Months, w = Weeks, d = Days, h = Hours, H = Hours, m = Minutes, s = Seconds |
{- "size": 10000,
- "columnFilter": {
- "columnLabels": [
- "string"
], - "columnTypes": [
- "TEXT"
]
}, - "lastModifiedDateFilter": {
- "gte": "now-1M",
- "lte": "2030-10-31"
}
}{- "totalCount": 2,
- "data": [
- {
- "Question": "The Ultimate Question of Life, the Universe, and Everything",
- "_rowId": "1"
}, - {
- "Question": "What is 6 times 7?",
- "_rowId": "2"
}
]
}