Skip to main content

Jobs

Monitor and manage ingestion jobs. A job is created when data is ingested into a dataset from a configured source — either by starting a job directly, triggering a schedule, or uploading files. All job endpoints live under the unprefixed /ingestion/jobs namespace.

info

All job and dataset IDs are UUIDs.

Unprefixed paths

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


Start an Ingestion Job

POST /ingestion/jobs

Start a new ingestion job that reads from a registered source and writes into a dataset. To register a source first, see Sources.

Request Body

NameTypeRequiredDescription
source_idUUIDRegistered source to ingest from
dataset_idUUIDTarget dataset
pipeline_idUUIDProcessing pipeline. Defaults to the org's default pipeline when omitted
curl -X POST https://api.vectoramp.com/ingestion/jobs \
-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"
}'

Job Object

FieldTypeDescription
job_idUUIDUnique job identifier
statusstringOne of pending, running, completed, failed, cancelled
messagestringHuman-readable status message
documents_processedintegerDocuments processed so far
vectors_insertedintegerVectors inserted so far
processing_time_secondsfloatElapsed processing time
started_atstringISO 8601 start timestamp
completed_atstring | nullISO 8601 completion timestamp (null until finished)
progress_percentagefloatCompletion percentage (0.0100.0)
current_stepstring | nullCurrent pipeline step label
error_detailsobject | nullError detail object when the job failed

List Jobs

GET /ingestion/jobs

Query Parameters

NameTypeRequiredDescription
dataset_idUUIDFilter by dataset
limitintegerMax results. Defaults to 50, max 200
offsetintegerPagination offset. Defaults to 0
curl "https://api.vectoramp.com/ingestion/jobs?dataset_id=550e8400-e29b-41d4-a716-446655440000&limit=10" \
-H "X-API-Key: vsk_<64hex>"

Get Job

GET /ingestion/jobs/:jobId

ParameterTypeInDescription
jobIdUUIDpathJob identifier

Returns a single job object. Poll this endpoint to track progress until status is completed or failed.

curl https://api.vectoramp.com/ingestion/jobs/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "X-API-Key: vsk_<64hex>"

Retry Job

POST /ingestion/jobs/:jobId/retry

Creates a fresh full-rerun job from an eligible failed or cancelled job (or a job where every file failed). Returns the new job object. A job that completed successfully is not eligible and returns 400.

ParameterTypeInDescription
jobIdUUIDpathJob identifier to retry
curl -X POST https://api.vectoramp.com/ingestion/jobs/a1b2c3d4-e5f6-7890-abcd-ef1234567890/retry \
-H "X-API-Key: vsk_<64hex>"

List Job Files

GET /ingestion/jobs/:jobId/files

Returns a per-file audit of everything the job processed, with status, chunk/embedding/vector counts, and error details.

Query Parameters

NameTypeRequiredDescription
statusstringFilter by file status: pending, processing, completed, failed, skipped
limitintegerMax results. Defaults to 50, max 200
offsetintegerPagination offset. Defaults to 0
curl "https://api.vectoramp.com/ingestion/jobs/a1b2c3d4-e5f6-7890-abcd-ef1234567890/files?status=failed&limit=20" \
-H "X-API-Key: vsk_<64hex>"

Get Job Statistics

GET /ingestion/jobs/:jobId/statistics

Returns aggregate statistics for the job: file counts, byte totals, chunk/embedding/vector counts, processing times, and breakdowns by error and file type. Returns null if no audit data has been recorded yet.

curl https://api.vectoramp.com/ingestion/jobs/a1b2c3d4-e5f6-7890-abcd-ef1234567890/statistics \
-H "X-API-Key: vsk_<64hex>"
Cancelling jobs

There is no reliable public route for cancelling an in-flight job. Stop future runs by disabling or deleting the schedule that started the job, and use Retry Job to re-run a failed or cancelled job.