Start Batch Embedding Job

jina.create_batch_embedding
ActionAI & modelsconnection required

Calls the Jina AI API with the connection's credentials.

Submit an asynchronous batch embedding job for a large corpus and return the job id and its starting status, not the vectors.

Connection

Required
Yes — the node will not save without one
Auth type
Bearer token
Providers
Jina AI
Secret shape
the API key, or {"api_key": "…"}
Config it needs
base_url, default_embedding_model, default_reranker_model
Resolved by
config.connection_id, else node.connection_id

Configuration

7 fields, none required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
model
Batch embedding model, for example jina-embeddings-v5-text-nano. Falls back to the connection's default.
stringNo——jina-embeddings-v5-text-nano
input
Inline JSONL lines, one object per item, for example {"custom_id": "doc-1", "input": "…"}.
arrayNo—≥ 1 characters; array of object[{"custom_id":"doc-1","input":"the quick brown fox"}]
input_url
URL of a JSONL input file (GCS, S3 or HTTP) to embed instead of inline input.
stringNo———
task
Downstream task the vectors are optimised for.
stringNo—one of "retrieval.query", "retrieval.passage", "text-matching", "clustering", "classification"—
dimensions
Truncate each vector to this many dimensions; the batch API caps this at 1024.
numberNo—1–1024—
normalized
Return L2-normalised unit vectors.
booleanNo———
webhook_url
URL Jina POSTs to when the job finishes.
stringNo—url format—
  • At least one of input, input_url must be set.

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "input": [
    {
      "custom_id": "doc-1",
      "input": "the quick brown fox"
    }
  ],
  "model": "jina-embeddings-v5-text-nano"
}

Output

One shape.

result

FieldTypeExample
batch_id
Identifier of the batch job.
string—
status
Job state: pending, processing, completed, failed, expired or cancelled.
string—
finished
True once the job has reached a terminal state.
boolean—
succeeded
True only when the job finished as 'completed'.
boolean—
model
The embedding model the job runs.
string—
created_at
When the job was created.
string—
completed_at
When the job finished, if it has.
string—
expires_at
When the output URL stops working.
string—
output_url
Signed URL of the output JSONL, once completed.
string—
error_file_url
URL of the per-line error JSONL, when lines failed.
string—
error
Why the job failed, when it did.
string—
total
Input lines submitted.
number—
completed
Input lines embedded successfully.
number—
failed
Input lines that failed.
number—
total_tokens
Tokens billed across the job.
number—
{
  "batch_id": "",
  "completed": 0,
  "completed_at": "",
  "created_at": "",
  "error": "",
  "error_file_url": "",
  "expires_at": "",
  "failed": 0,
  "finished": false,
  "model": "",
  "output_url": "",
  "status": "",
  "succeeded": false,
  "total": 0,
  "total_tokens": 0
}

See Start Batch Embedding Job run in a workflow.

In a technical demo we add the Jina AI connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.