For the complete documentation index, see llms.txt. This page is also available as Markdown.

Jobs

Jobs are read-only records of flow, export, and import executions, created by the platform whenever a run occurs. A parent flow job aggregates the run's counters while child export/import jobs carry per-step counts, errors, and artifacts. Use these endpoints to monitor running jobs, inspect job families, download result files, and cancel or purge runs.

Job schema

List all jobs

get
/v1/jobs

Returns jobs matching the given query-parameter filters, up to 1001 per page in descending createdAt order. Use createdAt_lte on the last record's createdAt (minus 1 ms) to page forward.

There are two query modes depending on the type parameter:

  • Parent jobs (type omitted, flow, retry, or bulk_retry) — pass at least one of _integrationId, _flowId, _exportId, _importId, _flowJobId, createdAt_gte, or createdAt_lte to scope the query. Omitting all filters returns all jobs in the account.

  • Child jobs (type=export or type=import) — requires _flowJobId or a resource ID filter (_exportId / _importId). Returns the export/import sub-jobs within a parent flow job.

Date filters accept ISO 8601, plain date, or epoch milliseconds. When combining numError_gte/numError_lte with _integrationId, use full ISO 8601 with millis (plain-date format may be rejected). To page forward, take the createdAt of the last record, subtract 1 ms, and pass it as createdAt_lte.

Active jobs (queued or running) are pinned to the top of the first page even when they fall outside the date filters; canceling jobs are not pinned. Account for this when paging — the first page can contain records older filters would otherwise exclude.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
_integrationIdstringOptional

Filter by integration ID. Satisfies the required-param check.

Example: 6842261335b64c0bcb308e4f
_exportIdstringOptional

Filter by export ID. Satisfies the required-param check.

Example: 69f54d6a3469e3f5597848a1
_importIdstringOptional

Filter by import ID. Satisfies the required-param check.

Example: 69e9953d7a8373d88147b5ec
_flowIdstringOptional

Filter by flow ID. Satisfies the required-param check.

Example: 69f54d6b7009ea11abad707a
_flowJobIdstringOptional

Filter by parent flow-job ID. Satisfies the required-param check. Required when querying child jobs (type=export or type=import).

Example: 69f54d6f47185f8c7a500597
_flowId_instringOptional

Comma-separated list of flow IDs to match. Works as an additional filter but does not satisfy the required-param check alone. flowId_in (without underscore) is accepted as an alias.

Example: 69f54d6b7009ea11abad707a,69e83e7a75f7f8c14a12916e
status_instringOptional

Comma-separated list of status values to match (e.g. completed,failed). Works as an additional filter but does not satisfy the required-param check alone.

Example: completed,failed
createdAt_ltestringOptional

Return jobs created at or before this timestamp. Accepts ISO 8601, plain date, or epoch milliseconds. Satisfies the required-param check.

Example: 2026-05-02T01:03:51.757Z
createdAt_gtestringOptional

Return jobs created at or after this timestamp. Accepts ISO 8601, plain date, or epoch milliseconds. Satisfies the required-param check.

Example: 2026-05-01T00:00:00.000Z
statusstring · enumOptional

Filter by job status.

Possible values:
numSuccess_lteintegerOptional

Filter to jobs with success count ≤ this value.

Example: 100
numSuccess_gteintegerOptional

Filter to jobs with success count ≥ this value.

Example: 1
numIgnore_lteintegerOptional

Filter to jobs with ignore count ≤ this value.

Example: 10
numIgnore_gteintegerOptional

Filter to jobs with ignore count ≥ this value.

Example: 1
numError_gteintegerOptional

Filter to jobs with error count ≥ this value. When combined with _integrationId, the query may reject plain-date createdAt values — use full ISO 8601.

Example: 1
numError_lteintegerOptional

Filter to jobs with error count ≤ this value. Same date-format caveat as numError_gte.

Example: 10
typestring · enumOptional

Filter by job type. flow, retry, and bulk_retry are parent-level jobs; export and import are child jobs (require _flowJobId or a resource-ID filter). Unrecognized values silently return an empty response.

Possible values:
Responses
200

Array of job records matching the filters.

application/json

A job represents one execution of a flow/export/import (or a retry) in integrator.io. Jobs are read-only records created by the platform when executions occur.

Parent jobs (type: flow) carry aggregate counters; child jobs (type: export or import) carry per-step counters -- do not sum both to avoid double-counting. _exportId on a parent flow job references the page-generator export, not all exports in the flow.

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
typestring · enumRead-onlyRequired

Job type.

Possible values:
statusstring · enumRead-onlyRequired

Current job status.

Possible values:
_integrationIdstring · objectIdRead-onlyOptional

Integration id this job belongs to (if applicable).

Example: 6842261335b64c0bcb308e4f
_flowIdstring · objectIdRead-onlyOptional

Flow id this job belongs to (if applicable).

Example: 69f54d6b7009ea11abad707a
_exportIdstring · objectIdRead-onlyOptional

Export id. Present on child export jobs and also on parent flow jobs (where it references the first page-generator export).

Example: 69f54d6a3469e3f5597848a1
_importIdstring · objectIdRead-onlyOptional

Import id for import child jobs (if applicable).

Example: 69e9953d7a8373d88147b5ec
_expOrImpIdstring · objectIdRead-onlyOptional

The export or import resource ID for this child job. Present on child jobs (type: export or type: import) — check type to determine whether this references an export or import resource.

Example: 69f54d6c1e7f3a22cc7848b2
_retryOfJobIdstring · objectIdRead-onlyOptional

If this is a retry job, the original job id being retried.

Example: 69e9820a12e2a80e73166a8a
_flowJobIdstring · objectIdRead-onlyOptional

Parent flow job id (for child jobs).

Example: 69f54d6f47185f8c7a500597
_userIdstring · objectIdRead-onlyOptional

Owner user id for the job.

_parentJobIdstring · objectIdRead-onlyOptional

Parent job id (used for branched flows / hierarchy).

Example: 69f54d6f47185f8c7a500597
_bulkJobIdstring · objectIdRead-onlyOptional

Bulk retry parent job id (if applicable).

Example: 69e981ee18808f3e5ed1b2fd
startedAtstring · date-timeRead-onlyOptional

When execution started.

Example: 2026-05-02T01:03:43.640Z
endedAtstring · date-timeRead-onlyOptional

When execution ended.

Example: 2026-05-02T01:03:51.757Z
resolvedAtstring · date-timeRead-onlyOptional

When errors for the job were fully resolved (if applicable).

Example: 2026-05-02T02:15:00.000Z
lastExecutedAtstring · date-timeRead-onlyOptional

Last time the job executed work (may differ from createdAt/startedAt).

Example: 2026-05-02T01:03:51.757Z
purgeAtstring · date-timeRead-onlyOptional

When the job should be purged from primary storage.

Example: 2026-06-01T01:03:43.577Z
clickhousePurgeAtstring · date-timeRead-onlyOptional

When the job's analytics data expires.

Example: 2026-06-01T01:03:43.577Z
triggeredBystringRead-onlyOptional

Who/what triggered the job (free-form string).

Example: scheduler
canceledBystringRead-onlyOptional

Who/what requested cancellation (free-form string).

Example: user
flowExecutionGroupIdstringRead-onlyOptional

Groups multiple related jobs for a single flow execution.

Example: 70f3bd04a01142b29031e36ccff9242b
numErrorintegerRead-onlyOptional

Total number of errors produced by the job (including resolved ones). Use numOpenError for the count of currently unresolved errors.

Example: 10
numOpenErrorintegerRead-onlyOptional

Number of unresolved errors (equivalent to numError - numResolved). This is the value dashboards surface as "errors needing attention."

Example: 10
numResolvedintegerRead-onlyOptional

Number of resolved errors.

numResolvedByAdaptorintegerRead-onlyOptional

Number of errors resolved by the adaptor.

numSuccessintegerRead-onlyOptional

Number of successful records/pages.

Example: 10
numIgnoreintegerRead-onlyOptional

Number of ignored records/pages.

numExportintegerRead-onlyOptional

Legacy field used by retry logic. May be deprecated.

numPagesGeneratedintegerRead-onlyOptional

Number of pages generated by an export/page generator.

Example: 10
doneExportingbooleanRead-onlyOptional

When true, all export pages have been generated.

numPagesProcessedintegerRead-onlyOptional

Number of pages processed by downstream imports.

Example: 10
oIndexintegerRead-onlyOptional

Branch/router index for branched flows (if applicable).

retriablebooleanRead-onlyOptional

When true, this job is eligible for retry.

logModestringRead-onlyOptional

Effective logging mode for this job, resolved from the flow's logging.mode and the account-level logging preference. Common values: basic (default), off, on, debug.

Example: basic
__lastPageGeneratorJobbooleanRead-onlyOptional

When true, indicates the last page-generator job in the sequence. Internal use only.

get/v1/jobs
GET /v1/jobs HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "_id": "69f54d6f47185f8c7a500597",
    "type": "flow",
    "status": "completed",
    "_integrationId": "6842261335b64c0bcb308e4f",
    "_flowId": "69f54d6b7009ea11abad707a",
    "_exportId": "69f54d6a3469e3f5597848a1",
    "startedAt": "2026-05-02T01:03:43.640Z",
    "endedAt": "2026-05-02T01:03:51.757Z",
    "createdAt": "2026-05-02T01:03:43.640Z",
    "lastModified": "2026-05-02T01:03:51.757Z",
    "lastExecutedAt": "2026-05-02T01:03:51.757Z",
    "numSuccess": 10,
    "numError": 10,
    "numOpenError": 10,
    "numResolved": 0,
    "numIgnore": 0,
    "numExport": 0,
    "numPagesGenerated": 10,
    "numPagesProcessed": 10,
    "doneExporting": false,
    "logMode": "basic",
    "flowExecutionGroupId": "70f3bd04a01142b29031e36ccff9242b",
    "purgeAt": "2026-06-01T01:03:43.577Z",
    "clickhousePurgeAt": "2026-06-01T01:03:43.577Z"
  },
  {
    "_id": "69e9820a12e2a80e73166a8a",
    "type": "flow",
    "status": "failed",
    "_integrationId": "6842261335b64c0bcb308e4f",
    "_flowId": "69f54d6b7009ea11abad707a",
    "_exportId": "69f54d6a3469e3f5597848a1",
    "startedAt": "2026-04-20T14:22:18.000Z",
    "endedAt": "2026-04-20T14:22:25.412Z",
    "createdAt": "2026-04-20T14:22:18.000Z",
    "lastModified": "2026-04-20T14:22:25.412Z",
    "lastExecutedAt": "2026-04-20T14:22:25.412Z",
    "numSuccess": 0,
    "numError": 5,
    "numOpenError": 5,
    "numResolved": 0,
    "numIgnore": 0,
    "numExport": 0,
    "numPagesGenerated": 1,
    "numPagesProcessed": 1,
    "doneExporting": true,
    "logMode": "basic",
    "flowExecutionGroupId": "a3b1c2d4e5f6071829304050",
    "purgeAt": "2026-05-20T14:22:18.000Z"
  }
]

List in-progress jobs (dashboard)

post
/v1/jobs/current

Returns a paginated list of currently in-progress jobs for the dashboard -- jobs whose status is one of queued, running, or canceling. Jobs that have reached a terminal state (completed, failed, canceled, retried) are not returned; use POST /v1/flows/runs/stats for run history.

The request body contains all filters -- there are no query-string parameters. Narrow to a specific flow or integration with _flowIds / _integrationIds (AND-combined).

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body

Request body for POST /v1/jobs/current. The UI uses this to fetch in-progress jobs for the dashboard.

_integrationIdsstring · objectId[]Optional

Optional filter to only return jobs for these integration ids.

_flowIdsstring · objectId[]Optional

Optional filter to only return jobs for these flow ids.

applicationIdsstring[]Optional

Optional filter by application ids.

categorystringOptional

Optional category filter (e.g., edi).

Example: edi
time_gtinteger · int64Optional

Optional filter for jobs with createdAt/time greater than this epoch milliseconds.

Example: 1745366400000
time_lteinteger · int64Optional

Optional filter for jobs with createdAt/time less than or equal to this epoch milliseconds.

Example: 1746147600000
Responses
200

One page of in-progress jobs.

application/json

Response envelope for POST /v1/jobs/current.

post/v1/jobs/current
POST /v1/jobs/current HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "jobs": [
    {
      "_id": "69e9958f815ae7eae3d9146b",
      "type": "retry",
      "_importId": "69e9953d7a8373d88147b5ec",
      "_flowId": "69e99544f3a2ac489d0f7953",
      "status": "queued",
      "numSuccess": 0,
      "numError": 0,
      "numResolved": 0,
      "numOpenError": 0,
      "createdAt": "2026-04-23T03:44:15.515Z",
      "lastModified": "2026-04-23T03:44:15.532Z"
    }
  ]
}

Get per-flow run statistics (dashboard aggregates)

post
/v1/flows/runs/stats

Returns per-flow aggregate run statistics — one element of stats[] per flow that has at least one run matching the request filter. Each aggregate carries totals (numRuns, numSuccess, numError, numIgnore), the currently-open error count (numOpenError), resolution attribution (numResolvedByAuto / numResolvedByUser), average runtime (avgRuntime), and timestamps (lastExecutedAt, lastErrorAt) plus a minimal inlined flow{} object for rendering.

The Celigo dashboard uses this to paint its "All flows" summary in one call. Filters (_flowIds, _integrationIds, time_gt, time_lte, …) narrow which runs are rolled up into each aggregate — they do not filter which flows appear; flows with zero matching runs are simply omitted.

The window is the contract. When time_gt is omitted the endpoint applies its default window (approximately the last 24 hours) rather than aggregating all history — runs older than the window silently drop out of every aggregate. Send time_gt explicitly for any other range.

For individual job records rather than aggregates, use GET /v1/jobs?_flowId=.... For in-progress jobs, use POST /v1/jobs/current.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body

Request body for POST /v1/flows/runs/stats. Shares its filter shape with POST /v1/jobs/current (_integrationIds, _flowIds, time_gt, time_lte, …), but the response is a set of per-flow aggregates rather than individual job records. Filters narrow which runs are rolled up into each aggregate.

Omitting time_gt does not mean "all history" — the endpoint falls back to the dashboard's default window (approximately the last 24 hours), and runs older than that silently drop out of every aggregate. Send time_gt (epoch milliseconds) explicitly for any other range.

_integrationIdsstring · objectId[]Optional

Optional filter to only return jobs for these integration ids.

_flowIdsstring · objectId[]Optional

Optional filter to only return jobs for these flow ids.

applicationIdsstring[]Optional

Optional filter by application ids.

categorystringOptional

Optional category filter (e.g., edi).

Example: edi
time_gtinteger · int64Optional

Optional filter for jobs with createdAt/time greater than this epoch milliseconds.

Example: 1745366400000
time_lteinteger · int64Optional

Optional filter for jobs with createdAt/time less than or equal to this epoch milliseconds.

Example: 1746147600000
Responses
200

One page of per-flow aggregates.

application/json

One page of per-flow run-statistics aggregates. Despite the endpoint's location under flows/runs/, each element of stats[] is not an individual job record — it's the aggregated summary for one flow across all matching runs (counts, timings, and the most recent timestamps). The dashboard uses this to render its per-flow "last run / success rate / open errors" cards in a single call.

To list individual job records (one per run), use GET /v1/jobs?_flowId=... instead.

post/v1/flows/runs/stats
POST /v1/flows/runs/stats HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "stats": [
    {
      "_flowId": "69497fc443fc1f9a03d31bd9",
      "_integrationId": "69496f01615f724066afaac2",
      "numRuns": 91,
      "numPages": 92,
      "numSuccess": 184,
      "numError": 0,
      "numIgnore": 0,
      "numOpenError": 3,
      "numResolvedByAuto": 7,
      "numResolvedByUser": 0,
      "avgRuntime": 172327.86,
      "lastExecutedAt": "2026-04-23T02:51:52.551Z",
      "lastErrorAt": "2026-04-21T10:51:13.221Z",
      "flow": {
        "_id": "69497fc443fc1f9a03d31bd9",
        "name": "Shopee",
        "_integrationId": "69496f01615f724066afaac2",
        "integrationName": "Shopee"
      }
    },
    {
      "_flowId": "69e83e7a75f7f8c14a12916e",
      "numRuns": 2,
      "numPages": 8,
      "numSuccess": 276,
      "numError": 0,
      "numIgnore": 0,
      "numOpenError": 0,
      "numResolvedByAuto": 0,
      "numResolvedByUser": 0,
      "avgRuntime": 20904.5,
      "lastExecutedAt": "2026-04-22T03:27:00.491Z",
      "flow": {
        "_id": "69e83e7a75f7f8c14a12916e",
        "name": "New flow"
      }
    }
  ]
}

Batch-fetch job families

post
/v1/jobs/family

Returns job families for an array of job ids, in one request. Each item in the response array has the same shape as a single GET /v1/jobs/{_id}/family call (a parent job with inlined children).

Size limit: 1000 ids per request. The server rejects requests with more than 1000 entries with HTTP 403 (not 400) and {code: "invalid_request", message: "Number of objects in the request exceeds maximum allowed limit 1000"}. The Celigo UI chunks at 50 for its own UX reasons, but the API ceiling is 1000.

Mixed-id behavior (asymmetric):

  • Valid + unknown 24-hex ids in the same array → 200 with only the resolved entries; unknown ids are silently dropped (no errors[] alongside).

  • All ids unknown → 404 with {errors: [{code: "invalid_ref", source: "internal", message: "Job not found: <id>"}]}.

  • Any id that isn't a 24-char hex string anywhere in the array → 400 invalid_ref "Please provide a valid _id." — the whole request fails.

  • Duplicate ids are deduped server-side (same id ×N → one entry).

  • Empty array [] or non-array body (e.g. {}) → 400 invalid_request "Request body should be an ObjectID array.".

  • Missing Content-Type: application/json415 {message: "Content-Type should equal application/json"}.

The response array has no guaranteed ordering; match items by _id rather than by index. Unknown ids are silently dropped -- callers that need to detect missing ids must diff the request and response id sets.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Bodystring · objectId[]
string · objectId[]Optional

Array of job ids to fetch family information for (max 1000 ids per request).

Responses
200

An array of job families, one per resolved id (unknown ids silently dropped).

application/json

Job plus any child jobs (job family view).

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
typestring · enumRead-onlyRequired

Job type.

Possible values:
statusstring · enumRead-onlyRequired

Current job status.

Possible values:
_integrationIdstring · objectIdRead-onlyOptional

Integration id this job belongs to (if applicable).

Example: 6842261335b64c0bcb308e4f
_flowIdstring · objectIdRead-onlyOptional

Flow id this job belongs to (if applicable).

Example: 69f54d6b7009ea11abad707a
_exportIdstring · objectIdRead-onlyOptional

Export id. Present on child export jobs and also on parent flow jobs (where it references the first page-generator export).

Example: 69f54d6a3469e3f5597848a1
_importIdstring · objectIdRead-onlyOptional

Import id for import child jobs (if applicable).

Example: 69e9953d7a8373d88147b5ec
_expOrImpIdstring · objectIdRead-onlyOptional

The export or import resource ID for this child job. Present on child jobs (type: export or type: import) — check type to determine whether this references an export or import resource.

Example: 69f54d6c1e7f3a22cc7848b2
_retryOfJobIdstring · objectIdRead-onlyOptional

If this is a retry job, the original job id being retried.

Example: 69e9820a12e2a80e73166a8a
_flowJobIdstring · objectIdRead-onlyOptional

Parent flow job id (for child jobs).

Example: 69f54d6f47185f8c7a500597
_userIdstring · objectIdRead-onlyOptional

Owner user id for the job.

_parentJobIdstring · objectIdRead-onlyOptional

Parent job id (used for branched flows / hierarchy).

Example: 69f54d6f47185f8c7a500597
_bulkJobIdstring · objectIdRead-onlyOptional

Bulk retry parent job id (if applicable).

Example: 69e981ee18808f3e5ed1b2fd
startedAtstring · date-timeRead-onlyOptional

When execution started.

Example: 2026-05-02T01:03:43.640Z
endedAtstring · date-timeRead-onlyOptional

When execution ended.

Example: 2026-05-02T01:03:51.757Z
resolvedAtstring · date-timeRead-onlyOptional

When errors for the job were fully resolved (if applicable).

Example: 2026-05-02T02:15:00.000Z
lastExecutedAtstring · date-timeRead-onlyOptional

Last time the job executed work (may differ from createdAt/startedAt).

Example: 2026-05-02T01:03:51.757Z
purgeAtstring · date-timeRead-onlyOptional

When the job should be purged from primary storage.

Example: 2026-06-01T01:03:43.577Z
clickhousePurgeAtstring · date-timeRead-onlyOptional

When the job's analytics data expires.

Example: 2026-06-01T01:03:43.577Z
triggeredBystringRead-onlyOptional

Who/what triggered the job (free-form string).

Example: scheduler
canceledBystringRead-onlyOptional

Who/what requested cancellation (free-form string).

Example: user
flowExecutionGroupIdstringRead-onlyOptional

Groups multiple related jobs for a single flow execution.

Example: 70f3bd04a01142b29031e36ccff9242b
numErrorintegerRead-onlyOptional

Total number of errors produced by the job (including resolved ones). Use numOpenError for the count of currently unresolved errors.

Example: 10
numOpenErrorintegerRead-onlyOptional

Number of unresolved errors (equivalent to numError - numResolved). This is the value dashboards surface as "errors needing attention."

Example: 10
numResolvedintegerRead-onlyOptional

Number of resolved errors.

numResolvedByAdaptorintegerRead-onlyOptional

Number of errors resolved by the adaptor.

numSuccessintegerRead-onlyOptional

Number of successful records/pages.

Example: 10
numIgnoreintegerRead-onlyOptional

Number of ignored records/pages.

numExportintegerRead-onlyOptional

Legacy field used by retry logic. May be deprecated.

numPagesGeneratedintegerRead-onlyOptional

Number of pages generated by an export/page generator.

Example: 10
doneExportingbooleanRead-onlyOptional

When true, all export pages have been generated.

numPagesProcessedintegerRead-onlyOptional

Number of pages processed by downstream imports.

Example: 10
oIndexintegerRead-onlyOptional

Branch/router index for branched flows (if applicable).

retriablebooleanRead-onlyOptional

When true, this job is eligible for retry.

logModestringRead-onlyOptional

Effective logging mode for this job, resolved from the flow's logging.mode and the account-level logging preference. Common values: basic (default), off, on, debug.

Example: basic
__lastPageGeneratorJobbooleanRead-onlyOptional

When true, indicates the last page-generator job in the sequence. Internal use only.

post/v1/jobs/family
POST /v1/jobs/family HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 55

[
  "69e981ee18808f3e5ed1b2fd",
  "69e9820a12e2a80e73166a8a"
]
[
  {
    "_id": "69e981ee18808f3e5ed1b2fd",
    "type": "flow",
    "status": "completed",
    "_flowId": "69a9aa5c54e3d9bd11b86d82",
    "createdAt": "2026-04-23T02:51:39.812Z",
    "lastModified": "2026-04-23T02:52:10.115Z",
    "startedAt": "2026-04-23T02:51:40.000Z",
    "endedAt": "2026-04-23T02:52:10.000Z",
    "numSuccess": 42,
    "numError": 0,
    "numIgnore": 1,
    "children": []
  },
  {
    "_id": "69e9820a12e2a80e73166a8a",
    "type": "flow",
    "status": "failed",
    "_integrationId": "6842261335b64c0bcb308e4f",
    "_flowId": "69f54d6b7009ea11abad707a",
    "_exportId": "69f54d6a3469e3f5597848a1",
    "createdAt": "2026-04-20T14:22:17.804Z",
    "lastModified": "2026-04-20T14:22:25.598Z",
    "startedAt": "2026-04-20T14:22:18.000Z",
    "endedAt": "2026-04-20T14:22:25.412Z",
    "numSuccess": 0,
    "numError": 5,
    "numOpenError": 5,
    "numResolved": 0,
    "numIgnore": 0,
    "children": []
  }
]

Get a job

get
/v1/jobs/{_id}

Returns a single job record. Works for both parent jobs (type=flow, retry, bulk_retry) and child jobs (type=export, type=import). For the full parent+children view of a flow run, use GET /v1/jobs/{_id}/family instead. For a multi-job lookup, use POST /v1/jobs/family.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Job id.

Example: 69f54d6f47185f8c7a500597
Responses
200

The job record.

application/json

A job represents one execution of a flow/export/import (or a retry) in integrator.io. Jobs are read-only records created by the platform when executions occur.

Parent jobs (type: flow) carry aggregate counters; child jobs (type: export or import) carry per-step counters -- do not sum both to avoid double-counting. _exportId on a parent flow job references the page-generator export, not all exports in the flow.

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
typestring · enumRead-onlyRequired

Job type.

Possible values:
statusstring · enumRead-onlyRequired

Current job status.

Possible values:
_integrationIdstring · objectIdRead-onlyOptional

Integration id this job belongs to (if applicable).

Example: 6842261335b64c0bcb308e4f
_flowIdstring · objectIdRead-onlyOptional

Flow id this job belongs to (if applicable).

Example: 69f54d6b7009ea11abad707a
_exportIdstring · objectIdRead-onlyOptional

Export id. Present on child export jobs and also on parent flow jobs (where it references the first page-generator export).

Example: 69f54d6a3469e3f5597848a1
_importIdstring · objectIdRead-onlyOptional

Import id for import child jobs (if applicable).

Example: 69e9953d7a8373d88147b5ec
_expOrImpIdstring · objectIdRead-onlyOptional

The export or import resource ID for this child job. Present on child jobs (type: export or type: import) — check type to determine whether this references an export or import resource.

Example: 69f54d6c1e7f3a22cc7848b2
_retryOfJobIdstring · objectIdRead-onlyOptional

If this is a retry job, the original job id being retried.

Example: 69e9820a12e2a80e73166a8a
_flowJobIdstring · objectIdRead-onlyOptional

Parent flow job id (for child jobs).

Example: 69f54d6f47185f8c7a500597
_userIdstring · objectIdRead-onlyOptional

Owner user id for the job.

_parentJobIdstring · objectIdRead-onlyOptional

Parent job id (used for branched flows / hierarchy).

Example: 69f54d6f47185f8c7a500597
_bulkJobIdstring · objectIdRead-onlyOptional

Bulk retry parent job id (if applicable).

Example: 69e981ee18808f3e5ed1b2fd
startedAtstring · date-timeRead-onlyOptional

When execution started.

Example: 2026-05-02T01:03:43.640Z
endedAtstring · date-timeRead-onlyOptional

When execution ended.

Example: 2026-05-02T01:03:51.757Z
resolvedAtstring · date-timeRead-onlyOptional

When errors for the job were fully resolved (if applicable).

Example: 2026-05-02T02:15:00.000Z
lastExecutedAtstring · date-timeRead-onlyOptional

Last time the job executed work (may differ from createdAt/startedAt).

Example: 2026-05-02T01:03:51.757Z
purgeAtstring · date-timeRead-onlyOptional

When the job should be purged from primary storage.

Example: 2026-06-01T01:03:43.577Z
clickhousePurgeAtstring · date-timeRead-onlyOptional

When the job's analytics data expires.

Example: 2026-06-01T01:03:43.577Z
triggeredBystringRead-onlyOptional

Who/what triggered the job (free-form string).

Example: scheduler
canceledBystringRead-onlyOptional

Who/what requested cancellation (free-form string).

Example: user
flowExecutionGroupIdstringRead-onlyOptional

Groups multiple related jobs for a single flow execution.

Example: 70f3bd04a01142b29031e36ccff9242b
numErrorintegerRead-onlyOptional

Total number of errors produced by the job (including resolved ones). Use numOpenError for the count of currently unresolved errors.

Example: 10
numOpenErrorintegerRead-onlyOptional

Number of unresolved errors (equivalent to numError - numResolved). This is the value dashboards surface as "errors needing attention."

Example: 10
numResolvedintegerRead-onlyOptional

Number of resolved errors.

numResolvedByAdaptorintegerRead-onlyOptional

Number of errors resolved by the adaptor.

numSuccessintegerRead-onlyOptional

Number of successful records/pages.

Example: 10
numIgnoreintegerRead-onlyOptional

Number of ignored records/pages.

numExportintegerRead-onlyOptional

Legacy field used by retry logic. May be deprecated.

numPagesGeneratedintegerRead-onlyOptional

Number of pages generated by an export/page generator.

Example: 10
doneExportingbooleanRead-onlyOptional

When true, all export pages have been generated.

numPagesProcessedintegerRead-onlyOptional

Number of pages processed by downstream imports.

Example: 10
oIndexintegerRead-onlyOptional

Branch/router index for branched flows (if applicable).

retriablebooleanRead-onlyOptional

When true, this job is eligible for retry.

logModestringRead-onlyOptional

Effective logging mode for this job, resolved from the flow's logging.mode and the account-level logging preference. Common values: basic (default), off, on, debug.

Example: basic
__lastPageGeneratorJobbooleanRead-onlyOptional

When true, indicates the last page-generator job in the sequence. Internal use only.

get/v1/jobs/{_id}
GET /v1/jobs/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "_id": "69f54d6f47185f8c7a500597",
  "type": "flow",
  "status": "completed",
  "_integrationId": "6842261335b64c0bcb308e4f",
  "_flowId": "69f54d6b7009ea11abad707a",
  "_exportId": "69f54d6a3469e3f5597848a1",
  "startedAt": "2026-05-02T01:03:43.640Z",
  "endedAt": "2026-05-02T01:03:51.757Z",
  "createdAt": "2026-05-02T01:03:43.640Z",
  "lastModified": "2026-05-02T01:03:51.757Z",
  "lastExecutedAt": "2026-05-02T01:03:51.757Z",
  "numSuccess": 10,
  "numError": 10,
  "numOpenError": 10,
  "numResolved": 0,
  "numIgnore": 0,
  "numExport": 0,
  "numPagesGenerated": 10,
  "numPagesProcessed": 10,
  "doneExporting": false,
  "logMode": "basic",
  "flowExecutionGroupId": "70f3bd04a01142b29031e36ccff9242b",
  "purgeAt": "2026-06-01T01:03:43.577Z",
  "clickhousePurgeAt": "2026-06-01T01:03:43.577Z"
}

Get a job and its children

get
/v1/jobs/{_id}/family

Returns a single job record (as parent) with all of its child jobs inlined under children.

A "job family" maps to one flow execution: the parent is a type: "flow" job and the children are the export / import / retry jobs that ran as part of it. For non-flow jobs (a standalone export run, or a retry), children may be empty.

For fetching many families at once, batch via POST /v1/jobs/family. The parent's counters may not include bulk-retry jobs spawned after the initial run -- aggregate across children for an accurate per-run summary.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Job id. Typically a parent flow job id, but any job id is accepted.

Example: 69f54d6f47185f8c7a500597
Responses
200

Job family (parent with inlined children).

application/json

Job plus any child jobs (job family view).

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
typestring · enumRead-onlyRequired

Job type.

Possible values:
statusstring · enumRead-onlyRequired

Current job status.

Possible values:
_integrationIdstring · objectIdRead-onlyOptional

Integration id this job belongs to (if applicable).

Example: 6842261335b64c0bcb308e4f
_flowIdstring · objectIdRead-onlyOptional

Flow id this job belongs to (if applicable).

Example: 69f54d6b7009ea11abad707a
_exportIdstring · objectIdRead-onlyOptional

Export id. Present on child export jobs and also on parent flow jobs (where it references the first page-generator export).

Example: 69f54d6a3469e3f5597848a1
_importIdstring · objectIdRead-onlyOptional

Import id for import child jobs (if applicable).

Example: 69e9953d7a8373d88147b5ec
_expOrImpIdstring · objectIdRead-onlyOptional

The export or import resource ID for this child job. Present on child jobs (type: export or type: import) — check type to determine whether this references an export or import resource.

Example: 69f54d6c1e7f3a22cc7848b2
_retryOfJobIdstring · objectIdRead-onlyOptional

If this is a retry job, the original job id being retried.

Example: 69e9820a12e2a80e73166a8a
_flowJobIdstring · objectIdRead-onlyOptional

Parent flow job id (for child jobs).

Example: 69f54d6f47185f8c7a500597
_userIdstring · objectIdRead-onlyOptional

Owner user id for the job.

_parentJobIdstring · objectIdRead-onlyOptional

Parent job id (used for branched flows / hierarchy).

Example: 69f54d6f47185f8c7a500597
_bulkJobIdstring · objectIdRead-onlyOptional

Bulk retry parent job id (if applicable).

Example: 69e981ee18808f3e5ed1b2fd
startedAtstring · date-timeRead-onlyOptional

When execution started.

Example: 2026-05-02T01:03:43.640Z
endedAtstring · date-timeRead-onlyOptional

When execution ended.

Example: 2026-05-02T01:03:51.757Z
resolvedAtstring · date-timeRead-onlyOptional

When errors for the job were fully resolved (if applicable).

Example: 2026-05-02T02:15:00.000Z
lastExecutedAtstring · date-timeRead-onlyOptional

Last time the job executed work (may differ from createdAt/startedAt).

Example: 2026-05-02T01:03:51.757Z
purgeAtstring · date-timeRead-onlyOptional

When the job should be purged from primary storage.

Example: 2026-06-01T01:03:43.577Z
clickhousePurgeAtstring · date-timeRead-onlyOptional

When the job's analytics data expires.

Example: 2026-06-01T01:03:43.577Z
triggeredBystringRead-onlyOptional

Who/what triggered the job (free-form string).

Example: scheduler
canceledBystringRead-onlyOptional

Who/what requested cancellation (free-form string).

Example: user
flowExecutionGroupIdstringRead-onlyOptional

Groups multiple related jobs for a single flow execution.

Example: 70f3bd04a01142b29031e36ccff9242b
numErrorintegerRead-onlyOptional

Total number of errors produced by the job (including resolved ones). Use numOpenError for the count of currently unresolved errors.

Example: 10
numOpenErrorintegerRead-onlyOptional

Number of unresolved errors (equivalent to numError - numResolved). This is the value dashboards surface as "errors needing attention."

Example: 10
numResolvedintegerRead-onlyOptional

Number of resolved errors.

numResolvedByAdaptorintegerRead-onlyOptional

Number of errors resolved by the adaptor.

numSuccessintegerRead-onlyOptional

Number of successful records/pages.

Example: 10
numIgnoreintegerRead-onlyOptional

Number of ignored records/pages.

numExportintegerRead-onlyOptional

Legacy field used by retry logic. May be deprecated.

numPagesGeneratedintegerRead-onlyOptional

Number of pages generated by an export/page generator.

Example: 10
doneExportingbooleanRead-onlyOptional

When true, all export pages have been generated.

numPagesProcessedintegerRead-onlyOptional

Number of pages processed by downstream imports.

Example: 10
oIndexintegerRead-onlyOptional

Branch/router index for branched flows (if applicable).

retriablebooleanRead-onlyOptional

When true, this job is eligible for retry.

logModestringRead-onlyOptional

Effective logging mode for this job, resolved from the flow's logging.mode and the account-level logging preference. Common values: basic (default), off, on, debug.

Example: basic
__lastPageGeneratorJobbooleanRead-onlyOptional

When true, indicates the last page-generator job in the sequence. Internal use only.

get/v1/jobs/{_id}/family
GET /v1/jobs/{_id}/family HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "_id": "69f54d6f47185f8c7a500597",
  "type": "flow",
  "status": "completed",
  "_integrationId": "6842261335b64c0bcb308e4f",
  "_flowId": "69f54d6b7009ea11abad707a",
  "_exportId": "69f54d6a3469e3f5597848a1",
  "startedAt": "2026-05-02T01:03:43.640Z",
  "endedAt": "2026-05-02T01:03:51.757Z",
  "createdAt": "2026-05-02T01:03:43.640Z",
  "lastModified": "2026-05-02T01:03:51.757Z",
  "lastExecutedAt": "2026-05-02T01:03:51.757Z",
  "numSuccess": 10,
  "numError": 10,
  "numOpenError": 10,
  "numResolved": 0,
  "numIgnore": 0,
  "numExport": 0,
  "numPagesGenerated": 10,
  "numPagesProcessed": 10,
  "doneExporting": false,
  "logMode": "basic",
  "flowExecutionGroupId": "70f3bd04a01142b29031e36ccff9242b",
  "purgeAt": "2026-06-01T01:03:43.577Z",
  "clickhousePurgeAt": "2026-06-01T01:03:43.577Z",
  "children": [
    {
      "_id": "69f54d6f47185f8c7a5005e9",
      "type": "export",
      "status": "completed",
      "_parentJobId": "69f54d6f47185f8c7a500597",
      "_expOrImpId": "69f54d6a3469e3f5597848a1",
      "startedAt": "2026-05-02T01:03:43.813Z",
      "endedAt": "2026-05-02T01:03:49.930Z",
      "createdAt": "2026-05-02T01:03:43.813Z",
      "lastModified": "2026-05-02T01:03:49.930Z",
      "lastExecutedAt": "2026-05-02T01:03:49.930Z",
      "numSuccess": 10,
      "numError": 0,
      "numOpenError": 0,
      "numResolved": 0,
      "numIgnore": 0,
      "numExport": 0,
      "numPagesGenerated": 10,
      "numPagesProcessed": 0,
      "logMode": "basic",
      "purgeAt": "2026-06-01T01:03:43.577Z",
      "clickhousePurgeAt": "2026-06-01T01:03:43.577Z"
    },
    {
      "_id": "69f54d6f47185f8c7a500611",
      "type": "import",
      "status": "completed",
      "_parentJobId": "69f54d6f47185f8c7a500597",
      "_expOrImpId": "69f54d6c1e7f3a22cc7848b2",
      "startedAt": "2026-05-02T01:03:43.948Z",
      "endedAt": "2026-05-02T01:03:51.736Z",
      "createdAt": "2026-05-02T01:03:43.948Z",
      "lastModified": "2026-05-02T01:03:51.736Z",
      "lastExecutedAt": "2026-05-02T01:03:51.735Z",
      "numSuccess": 0,
      "numError": 10,
      "numOpenError": 10,
      "numResolved": 0,
      "numIgnore": 0,
      "numExport": 0,
      "numPagesGenerated": 0,
      "numPagesProcessed": 10,
      "logMode": "basic",
      "purgeAt": "2026-06-01T01:03:43.577Z",
      "clickhousePurgeAt": "2026-06-01T01:03:43.577Z"
    }
  ]
}

Cancel a job

put
/v1/jobs/{_id}/cancel

Requests cancellation of a running or queued job. The job's status transitions to canceling and, once the platform has stopped in-flight work, to canceled. This is not synchronous — the response returns the updated job record with status: "canceling"; consumers should poll (e.g. GET /v1/jobs/{_id}) to observe the final canceled state.

Only jobs that are still in progress (queued, running, retrying) can be canceled. Canceling a job that is already terminal returns an error.

Cancel at the flow-run (parent) level rather than individual export/import children -- child cancellations can leave the parent in an inconsistent state.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Job id to cancel.

Example: 69e9958f815ae7eae3d9146b
Responses
200

Updated job record with status: "canceling".

application/json

A job represents one execution of a flow/export/import (or a retry) in integrator.io. Jobs are read-only records created by the platform when executions occur.

Parent jobs (type: flow) carry aggregate counters; child jobs (type: export or import) carry per-step counters -- do not sum both to avoid double-counting. _exportId on a parent flow job references the page-generator export, not all exports in the flow.

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
typestring · enumRead-onlyRequired

Job type.

Possible values:
statusstring · enumRead-onlyRequired

Current job status.

Possible values:
_integrationIdstring · objectIdRead-onlyOptional

Integration id this job belongs to (if applicable).

Example: 6842261335b64c0bcb308e4f
_flowIdstring · objectIdRead-onlyOptional

Flow id this job belongs to (if applicable).

Example: 69f54d6b7009ea11abad707a
_exportIdstring · objectIdRead-onlyOptional

Export id. Present on child export jobs and also on parent flow jobs (where it references the first page-generator export).

Example: 69f54d6a3469e3f5597848a1
_importIdstring · objectIdRead-onlyOptional

Import id for import child jobs (if applicable).

Example: 69e9953d7a8373d88147b5ec
_expOrImpIdstring · objectIdRead-onlyOptional

The export or import resource ID for this child job. Present on child jobs (type: export or type: import) — check type to determine whether this references an export or import resource.

Example: 69f54d6c1e7f3a22cc7848b2
_retryOfJobIdstring · objectIdRead-onlyOptional

If this is a retry job, the original job id being retried.

Example: 69e9820a12e2a80e73166a8a
_flowJobIdstring · objectIdRead-onlyOptional

Parent flow job id (for child jobs).

Example: 69f54d6f47185f8c7a500597
_userIdstring · objectIdRead-onlyOptional

Owner user id for the job.

_parentJobIdstring · objectIdRead-onlyOptional

Parent job id (used for branched flows / hierarchy).

Example: 69f54d6f47185f8c7a500597
_bulkJobIdstring · objectIdRead-onlyOptional

Bulk retry parent job id (if applicable).

Example: 69e981ee18808f3e5ed1b2fd
startedAtstring · date-timeRead-onlyOptional

When execution started.

Example: 2026-05-02T01:03:43.640Z
endedAtstring · date-timeRead-onlyOptional

When execution ended.

Example: 2026-05-02T01:03:51.757Z
resolvedAtstring · date-timeRead-onlyOptional

When errors for the job were fully resolved (if applicable).

Example: 2026-05-02T02:15:00.000Z
lastExecutedAtstring · date-timeRead-onlyOptional

Last time the job executed work (may differ from createdAt/startedAt).

Example: 2026-05-02T01:03:51.757Z
purgeAtstring · date-timeRead-onlyOptional

When the job should be purged from primary storage.

Example: 2026-06-01T01:03:43.577Z
clickhousePurgeAtstring · date-timeRead-onlyOptional

When the job's analytics data expires.

Example: 2026-06-01T01:03:43.577Z
triggeredBystringRead-onlyOptional

Who/what triggered the job (free-form string).

Example: scheduler
canceledBystringRead-onlyOptional

Who/what requested cancellation (free-form string).

Example: user
flowExecutionGroupIdstringRead-onlyOptional

Groups multiple related jobs for a single flow execution.

Example: 70f3bd04a01142b29031e36ccff9242b
numErrorintegerRead-onlyOptional

Total number of errors produced by the job (including resolved ones). Use numOpenError for the count of currently unresolved errors.

Example: 10
numOpenErrorintegerRead-onlyOptional

Number of unresolved errors (equivalent to numError - numResolved). This is the value dashboards surface as "errors needing attention."

Example: 10
numResolvedintegerRead-onlyOptional

Number of resolved errors.

numResolvedByAdaptorintegerRead-onlyOptional

Number of errors resolved by the adaptor.

numSuccessintegerRead-onlyOptional

Number of successful records/pages.

Example: 10
numIgnoreintegerRead-onlyOptional

Number of ignored records/pages.

numExportintegerRead-onlyOptional

Legacy field used by retry logic. May be deprecated.

numPagesGeneratedintegerRead-onlyOptional

Number of pages generated by an export/page generator.

Example: 10
doneExportingbooleanRead-onlyOptional

When true, all export pages have been generated.

numPagesProcessedintegerRead-onlyOptional

Number of pages processed by downstream imports.

Example: 10
oIndexintegerRead-onlyOptional

Branch/router index for branched flows (if applicable).

retriablebooleanRead-onlyOptional

When true, this job is eligible for retry.

logModestringRead-onlyOptional

Effective logging mode for this job, resolved from the flow's logging.mode and the account-level logging preference. Common values: basic (default), off, on, debug.

Example: basic
__lastPageGeneratorJobbooleanRead-onlyOptional

When true, indicates the last page-generator job in the sequence. Internal use only.

put/v1/jobs/{_id}/cancel
PUT /v1/jobs/{_id}/cancel HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "_id": "69e9958f815ae7eae3d9146b",
  "type": "retry",
  "_importId": "69e9953d7a8373d88147b5ec",
  "_flowId": "69e99544f3a2ac489d0f7953",
  "status": "canceling",
  "numSuccess": 0,
  "numError": 0,
  "numResolved": 0,
  "numOpenError": 0,
  "createdAt": "2026-04-23T03:44:15.515Z",
  "lastModified": "2026-04-23T03:45:02.118Z"
}

Get signed URL(s) to download job files

post
/v1/jobs/{_id}/files/signedURL

Returns short-lived S3 pre-signed URLs for downloading files produced by the job (e.g. the rows exported to a CSV, an error-record dump, or a page-processor artifact). The URLs are typically valid for ~15 minutes.

If fileIds is omitted in the request body, all of the job's current file artifacts are returned. If provided, only the matching files are included.

Inspect the job's files[] array first (via GET /v1/jobs/{_id}) to discover available file IDs. Jobs with no files (common for import child jobs or jobs past purgeAt) return 204 No Content. File ids are registered per job: if none of the requested fileIds are registered to this job (e.g. the file id belongs to a different job's run), the endpoint also returns 204 No Content with an empty body rather than an error. The URLs expire after approximately 15 minutes -- fetch immediately, do not persist.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Job id whose files should be downloaded.

Example: 69f54d6f47185f8c7a500597
Body

Request body for POST /v1/jobs/{_id}/files/signedURL. Provide fileIds to request signed URLs for specific files.

fileIdsstring[]Optional

Optional list of job file ids to download.

Responses
201

One or more signed URLs.

application/json

Signed URL response for downloading job files.

signedURLstring · nullableOptional

A single signed URL. Requests that pass fileIds return the signedURLs array instead, even for a single file — check both fields.

Example: https://integrator-templates.s3.us-east-1.amazonaws.com/694b97c4f4f1f4a1b9d9e001.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Credential=AKIAEXAMPLE123%2F20260613%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260613T120000Z&X-Amz-SignedHeaders=host&X-Amz-Signature=4f9b2c1e8a3d7f0b5c6e9a2d4f8b1c3e7a0d5f2b9c4e6a8d1f3b7c0e5a9d2f4b
signedURLsstring[]Optional

Signed URLs for the returned files, one per file. Returned as an array even when a single file is requested via fileIds.

post/v1/jobs/{_id}/files/signedURL
POST /v1/jobs/{_id}/files/signedURL HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "signedURLs": [
    "https://integrator-templates.s3.us-east-1.amazonaws.com/694b97c4f4f1f4a1b9d9e001.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Signature=..."
  ]
}

Purge a job's stored files

delete
/v1/jobs/{_id}/files

Deletes all file artifacts associated with the job (exported rows, error-record dumps, page-processor artifacts, etc.) from underlying storage. After a successful call, GET /v1/jobs/{_id} will show an empty files[] array and POST /v1/jobs/{_id}/files/signedURL will return 204 No Content.

The job record itself is retained -- only the files are purged. This is irreversible. The platform also purges files automatically at purgeAt / clickhousePurgeAt; manual purge is only needed for storage-quota management or compliance workflows.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Job id whose files should be purged.

Example: 69f54d6f47185f8c7a500597
Responses
204

Files purged successfully.

No content

delete/v1/jobs/{_id}/files
DELETE /v1/jobs/{_id}/files HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Get a signed URL for job diagnostics

get
/v1/jobs/{_id}/diagnostics

Returns a short-lived S3 pre-signed URL pointing to a diagnostic archive (.zip) for the given job. The archive contains server-side traces/logs that Celigo support uses to debug execution failures.

The URL is typically valid for ~15 minutes (enforced by S3). Consumers should fetch the archive immediately rather than storing the URL.

This is distinct from flow execution logs -- use GET /v1/flows/{_id}/jobs/{_jobId}/logs for step-level execution logs. Jobs with no diagnostics (very recent, or past purgeAt) return 204.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Job id.

Example: 69e981ee18808f3e5ed1b2fd
Responses
200

Signed URL for the diagnostics archive.

application/json

Signed URL response for downloading diagnostics for a job.

signedURLstring · nullableOptional

A single signed URL. Requests that pass fileIds return the signedURLs array instead, even for a single file — check both fields.

Example: https://integrator-templates.s3.us-east-1.amazonaws.com/694b97c4f4f1f4a1b9d9e001.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Credential=AKIAEXAMPLE123%2F20260613%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260613T120000Z&X-Amz-SignedHeaders=host&X-Amz-Signature=4f9b2c1e8a3d7f0b5c6e9a2d4f8b1c3e7a0d5f2b9c4e6a8d1f3b7c0e5a9d2f4b
signedURLsstring[]Optional

Signed URLs for the returned files, one per file. Returned as an array even when a single file is requested via fileIds.

get/v1/jobs/{_id}/diagnostics
GET /v1/jobs/{_id}/diagnostics HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "signedURL": "https://integrator-templates.s3.us-east-1.amazonaws.com/diagnostics-69e981ee18808f3e5ed1b2fd.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Signature=..."
}

Get the most recent job(s) for a flow

get
/v1/flows/{_id}/jobs/latest

Returns the most recent job record(s) for the given flow. Typically one entry (the latest flow run), though the platform may include related retry jobs depending on account configuration. For a richer parent+children view, feed the returned _id into GET /v1/jobs/{_id}/family.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Flow id.

Example: 69f54d6b7009ea11abad707a
Query parameters
includestringOptional

Comma-separated list of fields to project into each returned record. Triggers summary projection: the response contains a minimal identity set (_id, name, plus resource-specific fields) with the requested fields added on top. Supports dot notation for nested fields. Mutually exclusive with exclude.

Example: _integrationId,disabled,lastModified
excludestringOptional

Comma-separated list of fields to strip from the default response. Unlike include, does not trigger summary projection — returns the full record with the named fields removed. Protected identity fields (e.g. name) cannot be stripped. Mutually exclusive with include.

Example: createdAt,lastModified
Responses
200

Most recent job(s) for the flow. May be a single-element array.

application/json

A job represents one execution of a flow/export/import (or a retry) in integrator.io. Jobs are read-only records created by the platform when executions occur.

Parent jobs (type: flow) carry aggregate counters; child jobs (type: export or import) carry per-step counters -- do not sum both to avoid double-counting. _exportId on a parent flow job references the page-generator export, not all exports in the flow.

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
typestring · enumRead-onlyRequired

Job type.

Possible values:
statusstring · enumRead-onlyRequired

Current job status.

Possible values:
_integrationIdstring · objectIdRead-onlyOptional

Integration id this job belongs to (if applicable).

Example: 6842261335b64c0bcb308e4f
_flowIdstring · objectIdRead-onlyOptional

Flow id this job belongs to (if applicable).

Example: 69f54d6b7009ea11abad707a
_exportIdstring · objectIdRead-onlyOptional

Export id. Present on child export jobs and also on parent flow jobs (where it references the first page-generator export).

Example: 69f54d6a3469e3f5597848a1
_importIdstring · objectIdRead-onlyOptional

Import id for import child jobs (if applicable).

Example: 69e9953d7a8373d88147b5ec
_expOrImpIdstring · objectIdRead-onlyOptional

The export or import resource ID for this child job. Present on child jobs (type: export or type: import) — check type to determine whether this references an export or import resource.

Example: 69f54d6c1e7f3a22cc7848b2
_retryOfJobIdstring · objectIdRead-onlyOptional

If this is a retry job, the original job id being retried.

Example: 69e9820a12e2a80e73166a8a
_flowJobIdstring · objectIdRead-onlyOptional

Parent flow job id (for child jobs).

Example: 69f54d6f47185f8c7a500597
_userIdstring · objectIdRead-onlyOptional

Owner user id for the job.

_parentJobIdstring · objectIdRead-onlyOptional

Parent job id (used for branched flows / hierarchy).

Example: 69f54d6f47185f8c7a500597
_bulkJobIdstring · objectIdRead-onlyOptional

Bulk retry parent job id (if applicable).

Example: 69e981ee18808f3e5ed1b2fd
startedAtstring · date-timeRead-onlyOptional

When execution started.

Example: 2026-05-02T01:03:43.640Z
endedAtstring · date-timeRead-onlyOptional

When execution ended.

Example: 2026-05-02T01:03:51.757Z
resolvedAtstring · date-timeRead-onlyOptional

When errors for the job were fully resolved (if applicable).

Example: 2026-05-02T02:15:00.000Z
lastExecutedAtstring · date-timeRead-onlyOptional

Last time the job executed work (may differ from createdAt/startedAt).

Example: 2026-05-02T01:03:51.757Z
purgeAtstring · date-timeRead-onlyOptional

When the job should be purged from primary storage.

Example: 2026-06-01T01:03:43.577Z
clickhousePurgeAtstring · date-timeRead-onlyOptional

When the job's analytics data expires.

Example: 2026-06-01T01:03:43.577Z
triggeredBystringRead-onlyOptional

Who/what triggered the job (free-form string).

Example: scheduler
canceledBystringRead-onlyOptional

Who/what requested cancellation (free-form string).

Example: user
flowExecutionGroupIdstringRead-onlyOptional

Groups multiple related jobs for a single flow execution.

Example: 70f3bd04a01142b29031e36ccff9242b
numErrorintegerRead-onlyOptional

Total number of errors produced by the job (including resolved ones). Use numOpenError for the count of currently unresolved errors.

Example: 10
numOpenErrorintegerRead-onlyOptional

Number of unresolved errors (equivalent to numError - numResolved). This is the value dashboards surface as "errors needing attention."

Example: 10
numResolvedintegerRead-onlyOptional

Number of resolved errors.

numResolvedByAdaptorintegerRead-onlyOptional

Number of errors resolved by the adaptor.

numSuccessintegerRead-onlyOptional

Number of successful records/pages.

Example: 10
numIgnoreintegerRead-onlyOptional

Number of ignored records/pages.

numExportintegerRead-onlyOptional

Legacy field used by retry logic. May be deprecated.

numPagesGeneratedintegerRead-onlyOptional

Number of pages generated by an export/page generator.

Example: 10
doneExportingbooleanRead-onlyOptional

When true, all export pages have been generated.

numPagesProcessedintegerRead-onlyOptional

Number of pages processed by downstream imports.

Example: 10
oIndexintegerRead-onlyOptional

Branch/router index for branched flows (if applicable).

retriablebooleanRead-onlyOptional

When true, this job is eligible for retry.

logModestringRead-onlyOptional

Effective logging mode for this job, resolved from the flow's logging.mode and the account-level logging preference. Common values: basic (default), off, on, debug.

Example: basic
__lastPageGeneratorJobbooleanRead-onlyOptional

When true, indicates the last page-generator job in the sequence. Internal use only.

get/v1/flows/{_id}/jobs/latest
GET /v1/flows/{_id}/jobs/latest HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "_id": "69f54d6f47185f8c7a500597",
    "type": "flow",
    "status": "completed",
    "_integrationId": "6842261335b64c0bcb308e4f",
    "_flowId": "69f54d6b7009ea11abad707a",
    "_exportId": "69f54d6a3469e3f5597848a1",
    "startedAt": "2026-05-02T01:03:43.640Z",
    "endedAt": "2026-05-02T01:03:51.757Z",
    "createdAt": "2026-05-02T01:03:43.640Z",
    "lastModified": "2026-05-02T01:03:51.757Z",
    "lastExecutedAt": "2026-05-02T01:03:51.757Z",
    "numSuccess": 10,
    "numError": 0,
    "numOpenError": 0,
    "numResolved": 0,
    "numIgnore": 0,
    "numPagesGenerated": 10,
    "numPagesProcessed": 10,
    "doneExporting": true,
    "logMode": "basic",
    "flowExecutionGroupId": "70f3bd04a01142b29031e36ccff9242b",
    "purgeAt": "2026-06-01T01:03:43.577Z"
  }
]

Get the most recent job(s) for an integration

get
/v1/integrations/{_id}/jobs/latest

Returns the most recent job record(s) across all flows in the given integration. Useful for a top-level status check on an integration. The result is not filtered by status -- inspect each entry's status to distinguish success from failure.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Integration id.

Example: 6842261335b64c0bcb308e4f
Responses
200

Most recent job(s) for the integration.

application/json

A job represents one execution of a flow/export/import (or a retry) in integrator.io. Jobs are read-only records created by the platform when executions occur.

Parent jobs (type: flow) carry aggregate counters; child jobs (type: export or import) carry per-step counters -- do not sum both to avoid double-counting. _exportId on a parent flow job references the page-generator export, not all exports in the flow.

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
typestring · enumRead-onlyRequired

Job type.

Possible values:
statusstring · enumRead-onlyRequired

Current job status.

Possible values:
_integrationIdstring · objectIdRead-onlyOptional

Integration id this job belongs to (if applicable).

Example: 6842261335b64c0bcb308e4f
_flowIdstring · objectIdRead-onlyOptional

Flow id this job belongs to (if applicable).

Example: 69f54d6b7009ea11abad707a
_exportIdstring · objectIdRead-onlyOptional

Export id. Present on child export jobs and also on parent flow jobs (where it references the first page-generator export).

Example: 69f54d6a3469e3f5597848a1
_importIdstring · objectIdRead-onlyOptional

Import id for import child jobs (if applicable).

Example: 69e9953d7a8373d88147b5ec
_expOrImpIdstring · objectIdRead-onlyOptional

The export or import resource ID for this child job. Present on child jobs (type: export or type: import) — check type to determine whether this references an export or import resource.

Example: 69f54d6c1e7f3a22cc7848b2
_retryOfJobIdstring · objectIdRead-onlyOptional

If this is a retry job, the original job id being retried.

Example: 69e9820a12e2a80e73166a8a
_flowJobIdstring · objectIdRead-onlyOptional

Parent flow job id (for child jobs).

Example: 69f54d6f47185f8c7a500597
_userIdstring · objectIdRead-onlyOptional

Owner user id for the job.

_parentJobIdstring · objectIdRead-onlyOptional

Parent job id (used for branched flows / hierarchy).

Example: 69f54d6f47185f8c7a500597
_bulkJobIdstring · objectIdRead-onlyOptional

Bulk retry parent job id (if applicable).

Example: 69e981ee18808f3e5ed1b2fd
startedAtstring · date-timeRead-onlyOptional

When execution started.

Example: 2026-05-02T01:03:43.640Z
endedAtstring · date-timeRead-onlyOptional

When execution ended.

Example: 2026-05-02T01:03:51.757Z
resolvedAtstring · date-timeRead-onlyOptional

When errors for the job were fully resolved (if applicable).

Example: 2026-05-02T02:15:00.000Z
lastExecutedAtstring · date-timeRead-onlyOptional

Last time the job executed work (may differ from createdAt/startedAt).

Example: 2026-05-02T01:03:51.757Z
purgeAtstring · date-timeRead-onlyOptional

When the job should be purged from primary storage.

Example: 2026-06-01T01:03:43.577Z
clickhousePurgeAtstring · date-timeRead-onlyOptional

When the job's analytics data expires.

Example: 2026-06-01T01:03:43.577Z
triggeredBystringRead-onlyOptional

Who/what triggered the job (free-form string).

Example: scheduler
canceledBystringRead-onlyOptional

Who/what requested cancellation (free-form string).

Example: user
flowExecutionGroupIdstringRead-onlyOptional

Groups multiple related jobs for a single flow execution.

Example: 70f3bd04a01142b29031e36ccff9242b
numErrorintegerRead-onlyOptional

Total number of errors produced by the job (including resolved ones). Use numOpenError for the count of currently unresolved errors.

Example: 10
numOpenErrorintegerRead-onlyOptional

Number of unresolved errors (equivalent to numError - numResolved). This is the value dashboards surface as "errors needing attention."

Example: 10
numResolvedintegerRead-onlyOptional

Number of resolved errors.

numResolvedByAdaptorintegerRead-onlyOptional

Number of errors resolved by the adaptor.

numSuccessintegerRead-onlyOptional

Number of successful records/pages.

Example: 10
numIgnoreintegerRead-onlyOptional

Number of ignored records/pages.

numExportintegerRead-onlyOptional

Legacy field used by retry logic. May be deprecated.

numPagesGeneratedintegerRead-onlyOptional

Number of pages generated by an export/page generator.

Example: 10
doneExportingbooleanRead-onlyOptional

When true, all export pages have been generated.

numPagesProcessedintegerRead-onlyOptional

Number of pages processed by downstream imports.

Example: 10
oIndexintegerRead-onlyOptional

Branch/router index for branched flows (if applicable).

retriablebooleanRead-onlyOptional

When true, this job is eligible for retry.

logModestringRead-onlyOptional

Effective logging mode for this job, resolved from the flow's logging.mode and the account-level logging preference. Common values: basic (default), off, on, debug.

Example: basic
__lastPageGeneratorJobbooleanRead-onlyOptional

When true, indicates the last page-generator job in the sequence. Internal use only.

get/v1/integrations/{_id}/jobs/latest
GET /v1/integrations/{_id}/jobs/latest HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "_id": "69f54d6f47185f8c7a500597",
    "type": "flow",
    "status": "completed",
    "_integrationId": "6842261335b64c0bcb308e4f",
    "_flowId": "69f54d6b7009ea11abad707a",
    "_exportId": "69f54d6a3469e3f5597848a1",
    "startedAt": "2026-05-02T01:03:43.640Z",
    "endedAt": "2026-05-02T01:03:51.757Z",
    "createdAt": "2026-05-02T01:03:43.640Z",
    "lastModified": "2026-05-02T01:03:51.757Z",
    "numSuccess": 10,
    "numError": 0,
    "numOpenError": 0,
    "numResolved": 0,
    "numIgnore": 0,
    "logMode": "basic"
  },
  {
    "_id": "69e9820a12e2a80e73166a8a",
    "type": "flow",
    "status": "failed",
    "_integrationId": "6842261335b64c0bcb308e4f",
    "_flowId": "69e83e7a75f7f8c14a12916e",
    "_exportId": "69e83e7a75f7f8c14a129170",
    "startedAt": "2026-04-20T14:22:18.000Z",
    "endedAt": "2026-04-20T14:22:25.412Z",
    "createdAt": "2026-04-20T14:22:18.000Z",
    "lastModified": "2026-04-20T14:22:25.412Z",
    "numSuccess": 0,
    "numError": 5,
    "numOpenError": 5,
    "numResolved": 0,
    "numIgnore": 0,
    "logMode": "basic"
  }
]

Last updated

Was this helpful?