Skip to main content

Schedules

Create and manage automated ingestion schedules. A schedule runs an ingestion job on a cron expression, automatically syncing data from a source into a dataset. All schedule endpoints live under the unprefixed /ingestion/schedules namespace.

info

All schedule, source, and dataset IDs are UUIDs.

Unprefixed paths

Use the unprefixed /ingestion/schedules/... paths. The legacy /v1/ingestion/schedules/... prefix is deprecated, and /api/v1/... is not routed (404).


Schedule Object

FieldTypeDescription
idUUIDUnique schedule identifier
org_idUUIDOwning organization
source_idUUIDSource to ingest from
dataset_idUUIDTarget dataset
pipeline_idUUID | nullProcessing pipeline (defaults to the org default)
cronstringCron expression
timezonestringIANA timezone the cron is evaluated in
enabledbooleanWhether the schedule is active
next_run_atstring | nullISO 8601 timestamp of the next run
last_run_atstring | nullISO 8601 timestamp of the last run
resume_stateobjectIncremental-sync resume state
metadataobjectArbitrary client metadata
created_atstringISO 8601 timestamp
updated_atstringISO 8601 timestamp

List Schedules

GET /ingestion/schedules

Query Parameters

NameTypeRequiredDescription
limitintegerMax results to return. Defaults to 50, max 200
offsetintegerPagination offset. Defaults to 0
curl "https://api.vectoramp.com/ingestion/schedules?limit=50&offset=0" \
-H "X-API-Key: vsk_<64hex>"

Get Schedule

GET /ingestion/schedules/:scheduleId

ParameterTypeInDescription
scheduleIdUUIDpathSchedule identifier

Returns a single schedule object.

curl https://api.vectoramp.com/ingestion/schedules/b2c3d4e5-f6a7-8901-bcde-f12345678901 \
-H "X-API-Key: vsk_<64hex>"

Create Schedule

POST /ingestion/schedules

Request Body

NameTypeRequiredDefaultDescription
source_idUUIDSource to ingest from
dataset_idUUIDTarget dataset
cronstringCron expression (e.g. 0 */6 * * *)
pipeline_idUUIDorg defaultProcessing pipeline
timezonestringUTCIANA timezone the cron is evaluated in
enabledbooleantrueEnable the schedule on creation
metadataobject{}Arbitrary metadata
resume_stateobject{}Initial incremental-sync resume state
curl -X POST https://api.vectoramp.com/ingestion/schedules \
-H "X-API-Key: vsk_<64hex>" \
-H "Content-Type: application/json" \
-d '{
"source_id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"dataset_id": "550e8400-e29b-41d4-a716-446655440000",
"cron": "0 */6 * * *",
"timezone": "America/New_York"
}'

Update Schedule

PATCH /ingestion/schedules/:scheduleId

All fields are optional; send only the fields you want to change.

Request Body

NameTypeRequiredDescription
cronstringUpdated cron expression
timezonestringUpdated timezone
enabledbooleanEnable or disable the schedule
metadataobjectUpdated metadata
resume_stateobjectResume state for incremental syncs
curl -X PATCH https://api.vectoramp.com/ingestion/schedules/b2c3d4e5-f6a7-8901-bcde-f12345678901 \
-H "X-API-Key: vsk_<64hex>" \
-H "Content-Type: application/json" \
-d '{"enabled": false}'

Returns the updated schedule object.


Delete Schedule

DELETE /ingestion/schedules/:scheduleId

Permanently deletes the schedule. Returns 204 No Content. Existing jobs that the schedule already started are not affected.

curl -X DELETE https://api.vectoramp.com/ingestion/schedules/b2c3d4e5-f6a7-8901-bcde-f12345678901 \
-H "X-API-Key: vsk_<64hex>"

Trigger Schedule

POST /ingestion/schedules/:scheduleId/trigger

Manually trigger a schedule to run immediately, regardless of the cron expression. This starts a new ingestion job.

curl -X POST https://api.vectoramp.com/ingestion/schedules/b2c3d4e5-f6a7-8901-bcde-f12345678901/trigger \
-H "X-API-Key: vsk_<64hex>"