Starting the Ingest Process

Discover how to create documents from uploaded files and initiate the ingestion process using the Vulgate API.

Creating a document and initiating an ingest job

To create a new document from the uploaded file(s) and initiate a job, make a request to the following endpoint:

POST /api/jobs

Request schema

The request body must include either files or document_id:

FieldTypeDefaultDescription
filesarrayConditional*Array of file objects with id (string). Required if document_id is not provided.
document_idstring (UUID)Conditional*UUID of an existing document. Required if files is not provided.
teamstringTeam identifier
modelstringModel to use for processing
pipelineobjectIngest pipeline configuration
ingest_modestringMode for ingestion
scopeobjectDocument scope configuration
audio_optionsobjectAudio processing options
audio_options.transcriptionbooleanEnable audio transcription
audio_options.music_analysisbooleanEnable music analysis

The created document’s document_format is set automatically on the server from the first uploaded file’s content type; this field is not part of the request body.

* Either files or document_id must be provided, but not both.

The response contains the created document_id and job_id:

{ "document_id": "doc-xyz789", "job_id": "job-abc123" }

Finalizing the document

Creating a job starts processing. Once the job reaches the processed status, finalize the document to generate its searchable parts (embeddings) and publish it:

POST /api/jobs/{job_id}/complete

Until this step runs, the document stays unpublished with no parts and is not returned by search. The request body is optional; include metadata fields (the same ones accepted by PATCH /api/documents/{document_id}) to set them at finalize time.

Response

{ "data": { "id": "doc-xyz789" }, "error": null }

The full ingest sequence is therefore: upload → POST /api/jobs → wait for processedPOST /api/jobs/{job_id}/complete.