Upload a file to ingest as a job
const url = 'http://localhost:11044/api/v1/documents/ingests';const form = new FormData();form.append('file', 'file');
const options = {method: 'POST', headers: {'X-Embabel-Api-Key': '<X-Embabel-Api-Key>'}};
options.body = form;
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:11044/api/v1/documents/ingests \ --header 'Content-Type: multipart/form-data' \ --header 'X-Embabel-Api-Key: <X-Embabel-Api-Key>' \ --form file=@fileAnswers 202 once the file is received, with a job to follow at GET /documents/ingests/{id}, rather than holding the request until the document is written.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Domain of the organisation the file is really from, recorded as its publisher (the upload dialog’s From field); omitted or blank records none
Tags to stamp on the document and its chunks, as repeated tags fields or one comma-separated value; trimmed, blanks dropped, duplicates collapsed. Omitted leaves the document untagged
Request Body
Section titled “Request Body”object
The file to ingest (PDF, text, HTML and other formats the converter reads), spooled to disk before the 202 so the job survives a restart. Its original filename names the job and the document; a part with no filename is called upload
Responses
Section titled “Responses”Accepted; the job, queued
One document ingest job as its owner sees it: its stage, embedding progress, and how it ended. Answered by POST /documents/ingests, POST /documents/ingests/url, POST /documents/embed-missing and GET /documents/ingests/{id}
object
Chunks the stored document was cut into; null until the job succeeds, and when the store does not say
Chunks of the stored document with no embedding, which never match a semantic search; null until the job succeeds, and when the store does not say. POST /documents/embed-missing can embed them
Why the job failed, in words; null unless state is failed
Job id, a UUID; the {id} of GET /documents/ingests/{id}
What the job is called: the uploaded file’s name, the URL being ingested, or for an embed-missing job the document’s title (its URI when it has none)
Chunks embedded so far, of how many; null until the job starts embedding
object
Chunks embedded so far; never more than total
Chunks to embed: an estimate from the document’s text while the job runs, corrected to the true count when it succeeds; raised rather than exceeded when the document cuts into more
Times the appliance restarted while the job was unfinished and picked it up again under the same id; 0 for a job that ran straight through
When the job was submitted, ISO-8601 instant
Stage the job is at: queued, waiting_for_memory, converting, writing, embedding, succeeded or failed; the last two are final
Title of the stored document; null until the job succeeds, and when the document has none
When the job last changed stage or embedded a batch of chunks, ISO-8601 instant; a value that stops moving while the job is unfinished suggests it is stuck
URI of the stored document; null until the job succeeds
Nothing can embed; not started
A 409 from an ingest-job endpoint: this appliance has no embedding model yet, so nothing was spooled or started. Not set up, rather than broken
object
The embedding status this was decided from: configured, model, dimensions and reason
object
Why, in the operator’s words, naming the command that sets an embedding model
Always unavailable

