API referenceAPIAvailable
Jobs
Monitor sync and export jobs, inspect progress, and cancel active work.
Last reviewed July 13, 2026
Jobs represent operational work in Vendo, including imports, exports, attribution, and other pipeline tasks.
List Jobs
GET /api/v1/jobsQuery Parameters
| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of items to return |
offset | integer | Number of items to skip |
sort | string | Sort field such as created_at:desc |
status | string | Filter by pending, running, completed, errored, canceled |
job_type | string | Filter by import, export, data_quality, attribution |
source_id | string | Filter by source ID |
integration_id | string | Filter by integration ID |
connector_type | string | Filter by connector type |
Example Response
{
"data": [
{
"id": "job_123",
"accountId": "acct_123",
"sourceId": "src_123",
"integrationId": null,
"jobType": "import",
"connectorType": "shopify",
"destinationType": null,
"status": "running",
"executionType": "scheduled",
"isOnboarding": false,
"minTimestamp": null,
"maxTimestamp": null,
"startedAt": "2026-04-02T00:00:00Z",
"finishedAt": null,
"errorMessage": null,
"errorCode": null,
"errorCategory": null,
"parentJobId": null,
"chunkIndex": 2,
"totalChunks": 8,
"progressPct": 25,
"rowsProcessed": 12500,
"rowsWritten": 12400,
"metrics": {
"rows_processed": 12500,
"rows_written": 12400,
"total_rows": 50000
},
"createdAt": "2026-04-02T00:00:00Z"
}
]
}Get Job Details
GET /api/v1/jobs/{jobId}This returns the same shape as the list endpoint, with the latest progress and error fields for a single job.
Cancel Job
POST /api/v1/jobs/{jobId}/cancelJobs in pending, queued, or running state can be canceled.
Example Response
{
"data": {
"id": "job_123",
"status": "canceled",
"message": "Job canceled successfully"
}
}Job Statuses
| Status | Description |
|---|---|
pending | Accepted but not yet started |
queued | Waiting in an execution queue |
running | Currently executing |
completed | Finished successfully |
errored | Finished with an error |
canceled | Canceled by a user or system |
Progress Fields
| Field | Description |
|---|---|
progressPct | Calculated progress percentage when Vendo can estimate it |
rowsProcessed | Processed row count, if available |
rowsWritten | Written row count, if available |
chunkIndex | Current chunk index for chunked jobs |
totalChunks | Total chunks for chunked jobs |
metrics | Raw pipeline metrics object |
Polling Example
async function waitForJob(apiKey, jobId) {
while (true) {
const response = await fetch(
`https://app2.vendodata.com/api/v1/jobs/${jobId}`,
{ headers: { Authorization: `Bearer ${apiKey}` } }
);
const { data } = await response.json();
if (['completed', 'errored', 'canceled'].includes(data.status)) {
return data;
}
await new Promise((resolve) => setTimeout(resolve, 5000));
}
}Last updated on