Skip to content
ajan.io

Docs menu

On this page

OpenAI Embeddings

Creates embeddings for text using OpenAI's embedding models

Creates embeddings for text using OpenAI's embedding models. This endpoint follows the OpenAI API specification and the requests are sent to the Azure OpenAI endpoint.

Before You Start

  • API key: To use the API, ask your workspace admin for a workspace API key with the Embedding API scope. Personal API keys only include the Completion API scope and cannot call this endpoint.

Base URL

https://api.ajan.io/openai/{region}/v1/embeddings

Parameters

All parameters from the OpenAI Embeddings endpoint are supported according to the OpenAI specifications, with the following exceptions:

  • model: Currently only the text-embedding-ada-002 model is supported.
  • encoding_format: Supports both float and base64 formats.

Rate limits

The default limits are 500 RPM (requests per minute) and 150,000 TPM (tokens per minute).

  • RPM is enforced per workspace, model, and API key.
  • TPM is shared by all API keys using the same model in a workspace.
  • On dedicated deployments, admins can configure custom limits per model in Settings > Workspace > Products > API.

If you exceed your rate limit, you will receive a 429 Too Many Requests response.

Using OpenAI-compatible libraries

As the request and response format is the same as the OpenAI API, you can use popular libraries like the OpenAI Python library or the Vercel AI SDK to use the ajan API.

Example using the OpenAI Python library

python
from openai import OpenAI
client = OpenAI(
  base_url="https://api.ajan.io/openai/eu/v1",
  api_key="<YOUR_AJAN_API_KEY>"
)

embedding = client.embeddings.create(
  model="text-embedding-ada-002",
  input="The quick brown fox jumps over the lazy dog",
  encoding_format="float"
)

print(embedding.data[0].embedding)

Example using the Vercel AI SDK in Node.js

typescript
import { createOpenAI } from "@ai-sdk/openai";

const ajanProvider = createOpenAI({
  baseURL: "https://api.ajan.io/openai/eu/v1",
  apiKey: "<YOUR_AJAN_API_KEY>",
});

const response = await ajanProvider.embeddings.create({
  model: "text-embedding-ada-002",
  input: "The quick brown fox jumps over the lazy dog",
  encoding_format: "float",
});

console.log(response.data[0].embedding);

OpenAPI

openapi: 3.0.0
info:
  title: ajan API
  version: 3.0.0
servers:
  - url: https://api.ajan.io
    description: Production
security:
  - bearerAuth: []
paths:
  /openai/{region}/v1/embeddings:
    post:
      tags:
        - Embeddings
      summary: Creates embeddings for the given input text.
      parameters:
        - name: region
          in: path
          required: true
          description: The region of the API to use.
          schema:
            type: string
            enum:
              - eu
              - us
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEmbeddingRequest'
            example:
              model: text-embedding-ada-002
              input: The quick brown fox jumps over the lazy dog
              encoding_format: float
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateEmbeddingResponse'
              example:
                data:
                  - embedding:
                      - 0.0023064255
                      - -0.009327292
                      - ...
                    index: 0
                    object: embedding
                model: text-embedding-ada-002
                object: list
                usage:
                  prompt_tokens: 9
                  total_tokens: 9
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    oneOf:
                      - example: No embedding models available for the ${region} region
                description: >-
                  Error message indicating either no models are available in the
                  region or the requested model is not available
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The provided API key is invalid.
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Rate limit for public API exceeded
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Internal Server Error
      security:
        - bearerAuth: []
components:
  schemas:
    CreateEmbeddingRequest:
      type: object
      properties:
        input:
          description: >-
            Input text to get embeddings for, encoded as a string or array of
            tokens. To get embeddings for multiple inputs in a single request,
            pass an array of strings or array of tokens, e.g. `["text1",
            "text2"]`. Each input must not exceed 8192 tokens in length.
          oneOf:
            - type: string
            - items:
                type: string
              type: array
            - type: array
              items:
                type: number
            - type: array
              items:
                type: array
                items:
                  type: number
        model:
          description: >-
            ID of the model to use. You can use the [List
            models](https://platform.openai.com/docs/api-reference/models/list)
            API to see all of your available models, or see OpenAI's [Model
            overview](https://platform.openai.com/docs/models/overview) for
            descriptions of them.
          oneOf:
            - type: string
            - type: string
              enum:
                - text-embedding-ada-002
                - text-embedding-3-small
                - text-embedding-3-large
        encoding_format:
          description: >-
            The format to return the embeddings in. Can be either `float` or
            `base64`.
          type: string
          enum:
            - float
            - base64
          default: float
        dimensions:
          description: >-
            The number of dimensions the resulting output embeddings should
            have. Only supported in `text-embedding-3` and later models.
          type: integer
          minimum: 1
        user:
          description: >-
            A unique identifier representing your end-user, which can help
            OpenAI to monitor and detect abuse.
          type: string
      required:
        - model
        - input
    CreateEmbeddingResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Embedding'
          description: The list of embeddings generated by the model.
        model:
          type: string
          description: The name of the model used to generate the embedding.
        object:
          type: string
          enum:
            - list
          description: The object type, which is always "list".
        usage:
          type: object
          properties:
            prompt_tokens:
              type: integer
              description: The number of tokens used for the prompt(s).
            total_tokens:
              type: integer
              description: The total number of tokens used by the request.
          required:
            - prompt_tokens
            - total_tokens
      required:
        - data
        - model
        - object
        - usage
    Embedding:
      type: object
      properties:
        index:
          type: integer
          description: The index of the embedding in the list of embeddings.
        embedding:
          type: array
          items:
            type: number
          description: >-
            The embedding vector, which is a list of floats. The length of
            vector depends on the model as listed in the [embedding
            guide](https://platform.openai.com/docs/guides/embeddings).
        object:
          type: string
          enum:
            - embedding
          description: The object type, which is always "embedding".
      required:
        - index
        - embedding
        - object
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key as Bearer token. Format "Bearer YOUR_API_KEY"