Skip to main content
GET
List a table's recent imports

Authorizations

X-API-Key
string
header
required

Path Parameters

table_id
string<uuid>
required

Query Parameters

limit
integer
default:10

Most runs to return.

Required range: 1 <= x <= 50
status
enum<string> | null

Only runs with this outcome. Where one import run has got to.

The terminal states are absorbing: a run never leaves them. There is no PENDING here — unlike a CSV upload, which sits parsed and uncommitted until the user says go, a source run is only ever created at the moment something decides to run it.

CANCELLING is a request, not an outcome. Stopping an import is a database status flip the workflow observes between pages, never a Temporal terminate: a terminate could land mid-page and leave rows half-written with nothing to settle the run, which is exactly the stuck state that blocks every future refresh of the table.

Available options:
running,
cancelling,
cancelled,
succeeded,
failed

Response

Successful Response

error
string | null
required
finished_at
string<date-time> | null
required
id
string<uuid>
required
identity_field
string | null
required

The field records were matched on during this run. Null for a run from before this was recorded; read the source's current identity_field instead in that case.

is_full_relist
boolean
required

Whether this run asked the provider for everything.

rows_created
integer
required
rows_deleted
integer
required
rows_skipped
integer
required

Records the run read and left out, broken down by the two counts below. Stopping at the row limit is not a skip; see stopped_at_row_limit.

rows_skipped_duplicate
integer
required

Of those, records whose match value an earlier, different record in the same page already had; only the first was added.

rows_skipped_no_identity
integer
required

Of those, records that came back with no value for the field rows are matched on, so there was no row for them to be.

rows_updated
integer
required
source_id
string<uuid>
required
started_at
string<date-time>
required
status
enum<string>
required

Where one import run has got to.

The terminal states are absorbing: a run never leaves them. There is no PENDING here — unlike a CSV upload, which sits parsed and uncommitted until the user says go, a source run is only ever created at the moment something decides to run it.

CANCELLING is a request, not an outcome. Stopping an import is a database status flip the workflow observes between pages, never a Temporal terminate: a terminate could land mid-page and leave rows half-written with nothing to settle the run, which is exactly the stuck state that blocks every future refresh of the table.

Available options:
running,
cancelling,
cancelled,
succeeded,
failed
stopped_at_row_limit
integer | null
required

The row limit this run stopped at with records still unread in the tool; null when it read everything it was asked for. Raising the source's row_limit brings the rest in.

sweep_deletions
boolean
required

Whether this run was asked to delete rows whose records are gone from the tool. A run that stopped at a row limit (stopped_at_row_limit) deletes nothing, because it has not read the whole tool.

table_id
string<uuid>
required
trigger
enum<string>
required

What asked for a run.

Available options:
initial,
manual,
scheduled
error_code
string | null

Classified cause of the failure: unauthorized, rate_limited, server_unavailable, network_error, not_found, pagination_error, bad_request. NULL when the run did not fail.

needs_reconnect
boolean
default:false

Whether fixing this means reconnecting the integration. Only true for a credentials failure, so the prompt keeps its meaning.