Jina AI Embeddings API

Generate high-quality embeddings from text, images, or code using Jina AI's state-of-the-art embedding models.

OpenAPI Specification

jina-ai-embeddings-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Jina AI Embeddings API
  description: >-
    Generate high-quality multimodal embeddings for text, image, and code inputs
    using Jina AI's state-of-the-art embedding models. Supports synchronous
    embedding requests and batch jobs for large workloads.
  version: '1.0'
  contact:
    name: Jina AI
    url: https://jina.ai
servers:
  - url: https://api.jina.ai/v1
    description: Jina AI production API
security:
  - BearerAuth: []
tags:
  - name: Embeddings
    description: Synchronous embedding generation
  - name: Batch
    description: Asynchronous batch embedding jobs
paths:
  /embeddings:
    post:
      tags:
        - Embeddings
      summary: Create embeddings
      description: Generate vector embeddings for one or more text, image, or code inputs.
      operationId: createEmbeddings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmbeddingRequest'
      responses:
        '200':
          description: Embeddings successfully generated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmbeddingResponse'
        '401':
          description: Unauthorized
        '429':
          description: Rate limit exceeded
  /batch/embeddings:
    post:
      tags:
        - Batch
      summary: Submit batch embedding job
      description: Submit a batch job to embed a large set of inputs asynchronously.
      operationId: submitBatchEmbeddings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchEmbeddingRequest'
      responses:
        '202':
          description: Batch job accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchJob'
  /batch/{batch_id}:
    get:
      tags:
        - Batch
      summary: Get batch job status
      operationId: getBatchJob
      parameters:
        - name: batch_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Batch job status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchJob'
    delete:
      tags:
        - Batch
      summary: Cancel batch job
      operationId: cancelBatchJob
      parameters:
        - name: batch_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Batch job cancelled
  /batch/{batch_id}/output:
    get:
      tags:
        - Batch
      summary: Download batch job output
      operationId: getBatchOutput
      parameters:
        - name: batch_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Batch output stream
  /batch/{batch_id}/errors:
    get:
      tags:
        - Batch
      summary: Retrieve batch job errors
      operationId: getBatchErrors
      parameters:
        - name: batch_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Batch errors stream
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
  schemas:
    EmbeddingRequest:
      type: object
      required:
        - model
        - input
      properties:
        model:
          type: string
          description: Embedding model identifier
          example: jina-embeddings-v4
          enum:
            - jina-embeddings-v5-text-small
            - jina-embeddings-v5-text-nano
            - jina-embeddings-v4
            - jina-embeddings-v3
            - jina-clip-v2
        input:
          type: array
          description: Inputs to embed (text strings or image references)
          items:
            type: string
        task:
          type: string
          description: Downstream task to optimize the embedding for
          enum:
            - retrieval.query
            - retrieval.passage
            - text-matching
            - classification
            - clustering
        dimensions:
          type: integer
          description: Optional truncation length for output vectors
        normalized:
          type: boolean
          description: Whether to L2-normalize the output vectors
        embedding_type:
          type: string
          enum: [float, base64, binary, ubinary]
    EmbeddingResponse:
      type: object
      properties:
        model:
          type: string
        object:
          type: string
          example: list
        usage:
          $ref: '#/components/schemas/Usage'
        data:
          type: array
          items:
            $ref: '#/components/schemas/EmbeddingObject'
    EmbeddingObject:
      type: object
      properties:
        object:
          type: string
          example: embedding
        index:
          type: integer
        embedding:
          type: array
          items:
            type: number
            format: float
    Usage:
      type: object
      properties:
        total_tokens:
          type: integer
        prompt_tokens:
          type: integer
    BatchEmbeddingRequest:
      type: object
      required:
        - model
        - input_file_id
      properties:
        model:
          type: string
        input_file_id:
          type: string
          description: Identifier of an uploaded input file
        endpoint:
          type: string
          example: /v1/embeddings
        completion_window:
          type: string
          example: 24h
    BatchJob:
      type: object
      properties:
        id:
          type: string
        status:
          type: string
          enum: [validating, in_progress, completed, failed, cancelling, cancelled]
        created_at:
          type: integer
        endpoint:
          type: string
        request_counts:
          type: object
          properties:
            total:
              type: integer
            completed:
              type: integer
            failed:
              type: integer