Dedalus Labs V1 API

The V1 API from Dedalus Labs — 12 operation(s) for v1.

OpenAPI Specification

dedaluslabs-v1-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Dedalus Audio V1 API
  description: 'MCP gateway for AI agents. Mix-and-match any model with any tool from our marketplace.


    ## Authentication

    Use Bearer token or X-API-Key header authentication:

    ```

    Authorization: Bearer your-api-key-here

    ```

    ```

    x-api-key: your-api-key-here

    ```


    ## Available Endpoints

    - **GET /v1/models**: list available models

    - **POST /v1/chat/completions**: Chat completions with MCP tools

    - **GET /health**: Service health check'
  version: 0.0.1
servers:
- url: https://api.dedaluslabs.ai
  description: Official Dedalus API
tags:
- name: V1
paths:
  /v1/models:
    get:
      tags:
      - V1
      summary: List Models
      description: "List available models.\n\nRetrieve the complete list of models available to your organization, including\nmodels from OpenAI, Anthropic, Google, xAI, Mistral, Fireworks, and DeepSeek.\n\nReturns:\n    ListModelsResponse: List of available models across all supported providers"
      operationId: list_models_v1_models_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListModelsResponse'
      security:
      - Bearer: []
      x-codeSamples:
      - lang: typescript
        label: Typescript
        source: 'const client = new Dedalus();


          const result = await client.models.list();'
      - lang: python
        label: Python
        source: 'client = Dedalus()


          result = client.models.list()'
      - lang: go
        label: Go
        source: 'client := dedalus.NewClient()


          result, err := client.Models.List(ctx context.Context)'
  /v1/models/{model_id}:
    get:
      tags:
      - V1
      summary: Retrieve Model
      description: "Retrieve a model.\n\nRetrieve detailed information about a specific model, including its capabilities,\nprovider, and supported features.\n\nArgs:\n    model_id: The ID of the model to retrieve (e.g., 'openai/gpt-4', 'anthropic/claude-3-5-sonnet-20241022')\n    user: Authenticated user obtained from API key validation\n\nReturns:\n    Model: Information about the requested model\n\nRaises:\n    HTTPException:\n        - 401 if authentication fails\n        - 404 if model not found or not accessible with current API key\n        - 500 if internal error occurs\n\nRequires:\n    Valid API key with 'read' scope permission\n\nExample:\n    ```python\n    import dedalus_sdk\n\n    client = dedalus_sdk.Client(api_key=\"your-api-key\")\n    model = client.models.retrieve(\"openai/gpt-4\")\n\n    print(f\"Model: {model.id}\")\n    print(f\"Owner: {model.owned_by}\")\n    ```\n\n    Response:\n    ```json\n    {\n        \"id\": \"openai/gpt-4\",\n        \"object\": \"model\",\n        \"created\": 1687882411,\n        \"owned_by\": \"openai\"\n    }\n    ```"
      operationId: retrieve_model_v1_models__model_id__get
      security:
      - Bearer: []
      parameters:
      - name: model_id
        in: path
        required: true
        schema:
          type: string
          title: Model Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Model'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: typescript
        label: Typescript
        source: 'const client = new Dedalus();


          const result = await client.models.retrieve(modelID);'
      - lang: python
        label: Python
        source: 'client = Dedalus()


          result = client.models.retrieve(model_id)'
      - lang: go
        label: Go
        source: 'client := dedalus.NewClient()


          result, err := client.Models.Get(ctx, modelID string)'
  /v1/chat/completions:
    post:
      tags:
      - V1
      summary: Create Chat Completion
      description: "Create a chat completion.\n\nGenerates a model response for the given conversation and configuration.\nSupports OpenAI-compatible parameters and provider-specific extensions.\n\nHeaders:\n  - Authorization: bearer key for the calling account.\n  - X-Provider / X-Provider-Key: optional headers for using your own provider API key.\n\nBehavior:\n  - If multiple models are supplied, the first one is used, and the agent may hand off to another model.\n  - Tools may be invoked on the server or signaled for the client to run.\n  - Streaming responses emit incremental deltas; non-streaming returns a single object.\n  - Usage metrics are computed when available and returned in the response.\n\nResponses:\n  - 200 OK: JSON completion object with choices, message content, and usage.\n  - 400 Bad Request: validation error.\n  - 401 Unauthorized: authentication failed.\n  - 402 Payment Required or 429 Too Many Requests: quota, balance, or rate limit issue.\n  - 500 Internal Server Error: unexpected failure.\n\nBilling:\n  - Token usage metered by the selected model(s).\n  - Tool calls and MCP sessions may be billed separately.\n  - Streaming is settled after the stream ends via an async task.\n\nExample (non-streaming HTTP):\n  POST /v1/chat/completions\n  Content-Type: application/json\n  Authorization: Bearer <key>\n\n  {\n    \"model\": \"provider/model-name\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}]\n  }\n\n  200 OK\n  {\n    \"id\": \"cmpl_123\",\n    \"object\": \"chat.completion\",\n    \"choices\": [\n      {\"index\": 0, \"message\": {\"role\": \"assistant\", \"content\": \"Hi there!\"}, \"finish_reason\": \"stop\"}\n    ],\n    \"usage\": {\"prompt_tokens\": 3, \"completion_tokens\": 4, \"total_tokens\": 7}\n  }\n\nExample (streaming over SSE):\n  POST /v1/chat/completions\n  Accept: text/event-stream\n\n  data: {\"id\":\"cmpl_123\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Hi\"}}]}\n  data: {\"id\":\"cmpl_123\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" there!\"}}]}\n  data: [DONE]"
      operationId: create_chat_completion_v1_chat_completions_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
        required: true
      responses:
        '200':
          description: JSON or SSE stream of ChatCompletionChunk events
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletion'
            text/event-stream:
              schema:
                $ref: '#/components/schemas/ChatCompletionStreamResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - Bearer: []
      x-codeSamples:
      - lang: typescript
        label: Typescript
        source: 'const client = new Dedalus();


          const result = await client.chat.completions.create({ ...params });'
      - lang: python
        label: Python
        source: 'client = Dedalus()


          result = client.chat.completions.create(**params)'
      - lang: go
        label: Go
        source: 'client := dedalus.NewClient()


          result, err := client.Chat.Completions.New(ctx, body githubcomdedaluslabsdedalussdkgo.ChatCompletionNewParams)'
  /v1/embeddings:
    post:
      tags:
      - V1
      summary: Create Embeddings
      description: Create embeddings using the configured provider.
      operationId: create_embeddings_v1_embeddings_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmbeddingRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmbeddingResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - Bearer: []
      x-codeSamples:
      - lang: typescript
        label: Typescript
        source: 'const client = new Dedalus();


          const result = await client.embeddings.create({ ...params });'
      - lang: python
        label: Python
        source: 'client = Dedalus()


          result = client.embeddings.create(**params)'
      - lang: go
        label: Go
        source: 'client := dedalus.NewClient()


          result, err := client.Embeddings.New(ctx, body githubcomdedaluslabsdedalussdkgo.EmbeddingNewParams)'
  /v1/responses:
    post:
      tags:
      - V1
      summary: Create Response
      description: 'Create a response using the OpenAI Responses API.


        This endpoint routes directly to OpenAI''s Responses API.

        Only OpenAI models are supported.'
      operationId: create_response_v1_responses_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResponsesRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsesResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - Bearer: []
      x-codeSamples:
      - lang: python
        label: Python
        source: 'client = Dedalus()


          result = client.responses.create(**params)'
  /v1/audio/speech:
    post:
      tags:
      - V1
      summary: Create Speech
      description: 'Generate speech audio from text.


        Generates audio from the input text using text-to-speech models. Supports multiple

        voices and output formats including mp3, opus, aac, flac, wav, and pcm.


        Returns streaming audio data that can be saved to a file or streamed directly to users.'
      operationId: create_speech_v1_audio_speech_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpeechRequest'
        required: true
      responses:
        '200':
          description: Audio file stream
          content:
            audio/mpeg:
              schema:
                type: string
                format: binary
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - Bearer: []
      x-codeSamples:
      - lang: typescript
        label: Typescript
        source: 'const client = new Dedalus();


          const result = await client.audio.speech.create({ ...params });'
      - lang: python
        label: Python
        source: 'client = Dedalus()


          result = client.audio.speech.create(**params)'
      - lang: go
        label: Go
        source: 'client := dedalus.NewClient()


          result, err := client.Audio.Speech.New(ctx, body githubcomdedaluslabsdedalussdkgo.AudioSpeechNewParams)'
  /v1/audio/transcriptions:
    post:
      tags:
      - V1
      summary: Create Transcription
      description: "Transcribe audio into text.\n\nTranscribes audio files using OpenAI's Whisper model. Supports multiple audio formats\nincluding mp3, mp4, mpeg, mpga, m4a, wav, and webm. Maximum file size is 25 MB.\n\nArgs:\n    file: Audio file to transcribe (required)\n    model: Model ID to use (e.g., \"openai/whisper-1\")\n    language: ISO-639-1 language code (e.g., \"en\", \"es\") - improves accuracy\n    prompt: Optional text to guide the model's style\n    response_format: Format of the output (json, text, srt, verbose_json, vtt)\n    temperature: Sampling temperature between 0 and 1\n\nReturns:\n    Transcription object with the transcribed text"
      operationId: create_transcription_v1_audio_transcriptions_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_create_transcription_v1_audio_transcriptions_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/CreateTranscriptionResponseVerboseJson'
                - $ref: '#/components/schemas/CreateTranscriptionResponseJson'
                title: Response Create Transcription V1 Audio Transcriptions Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - Bearer: []
      x-codeSamples:
      - lang: typescript
        label: Typescript
        source: 'const client = new Dedalus();


          const result = await client.audio.transcriptions.create({ ...params });'
      - lang: python
        label: Python
        source: 'client = Dedalus()


          result = client.audio.transcriptions.create(**params)'
      - lang: go
        label: Go
        source: 'client := dedalus.NewClient()


          result, err := client.Audio.Transcriptions.New(ctx, body githubcomdedaluslabsdedalussdkgo.AudioTranscriptionNewParams)'
  /v1/audio/translations:
    post:
      tags:
      - V1
      summary: Create Translation
      description: "Translate audio into English.\n\nTranslates audio files in any supported language to English text using OpenAI's\nWhisper model. Supports the same audio formats as transcription. Maximum file size\nis 25 MB.\n\nArgs:\n    file: Audio file to translate (required)\n    model: Model ID to use (e.g., \"openai/whisper-1\")\n    prompt: Optional text to guide the model's style\n    response_format: Format of the output (json, text, srt, verbose_json, vtt)\n    temperature: Sampling temperature between 0 and 1\n\nReturns:\n    Translation object with the English translation"
      operationId: create_translation_v1_audio_translations_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_create_translation_v1_audio_translations_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/CreateTranslationResponseVerboseJson'
                - $ref: '#/components/schemas/CreateTranslationResponseJson'
                title: Response Create Translation V1 Audio Translations Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - Bearer: []
      x-codeSamples:
      - lang: typescript
        label: Typescript
        source: 'const client = new Dedalus();


          const result = await client.audio.translations.create({ ...params });'
      - lang: python
        label: Python
        source: 'client = Dedalus()


          result = client.audio.translations.create(**params)'
      - lang: go
        label: Go
        source: 'client := dedalus.NewClient()


          result, err := client.Audio.Translations.New(ctx, body githubcomdedaluslabsdedalussdkgo.AudioTranslationNewParams)'
  /v1/images/generations:
    post:
      tags:
      - V1
      summary: Create Image
      description: 'Generate images from text prompts.


        Pure image generation models only (DALL-E, GPT Image).

        For multimodal models like gemini-2.5-flash-image, use /v1/chat/completions.'
      operationId: create_image_v1_images_generations_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageGenerateRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImagesResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - Bearer: []
      x-codeSamples:
      - lang: typescript
        label: Typescript
        source: 'const client = new Dedalus();


          const result = await client.images.generate({ ...params });'
      - lang: python
        label: Python
        source: 'client = Dedalus()


          result = client.images.generate(**params)'
      - lang: go
        label: Go
        source: 'client := dedalus.NewClient()


          result, err := client.Images.Generate(ctx, body githubcomdedaluslabsdedalussdkgo.ImageGenerateParams)'
  /v1/images/edits:
    post:
      tags:
      - V1
      summary: Edit Image
      description: 'Edit images using inpainting.


        Supports dall-e-2 and gpt-image-1. Upload an image and optionally a mask

        to indicate which areas to regenerate based on the prompt.'
      operationId: edit_image_v1_images_edits_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_edit_image_v1_images_edits_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImagesResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - Bearer: []
      x-codeSamples:
      - lang: typescript
        label: Typescript
        source: 'const client = new Dedalus();


          const result = await client.images.edit({ ...params });'
      - lang: python
        label: Python
        source: 'client = Dedalus()


          result = client.images.edit(**params)'
      - lang: go
        label: Go
        source: 'client := dedalus.NewClient()


          result, err := client.Images.Edit(ctx, body githubcomdedaluslabsdedalussdkgo.ImageEditParams)'
  /v1/images/variations:
    post:
      tags:
      - V1
      summary: Create Variation
      description: 'Create variations of an image.


        DALL·E 2 only. Upload an image to generate variations.'
      operationId: create_variation_v1_images_variations_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_create_variation_v1_images_variations_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImagesResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - Bearer: []
      x-codeSamples:
      - lang: typescript
        label: Typescript
        source: 'const client = new Dedalus();


          const result = await client.images.createVariation({ ...params });'
      - lang: python
        label: Python
        source: 'client = Dedalus()


          result = client.images.create_variation(**params)'
      - lang: go
        label: Go
        source: 'client := dedalus.NewClient()


          result, err := client.Images.NewVariation(ctx, body githubcomdedaluslabsdedalussdkgo.ImageNewVariationParams)'
  /v1/ocr:
    post:
      tags:
      - V1
      summary: Process Ocr
      description: 'Process a document through Mistral OCR.


        Extracts text from PDFs and images, returning markdown-formatted content.'
      operationId: process_ocr_v1_ocr_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OCRRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OCRResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - Bearer: []
      x-codeSamples:
      - lang: python
        label: Python
        source: 'client = Dedalus()


          result = client.ocr.process(**params)'
components:
  schemas:
    ChatCompletionRequestMessageContentPartRefusal:
      properties:
        type:
          type: string
          const: refusal
          title: Type
          description: The type of the content part.
          x-order: 0
        refusal:
          type: string
          title: Refusal
          description: The refusal message generated by the model.
          x-order: 1
      type: object
      required:
      - type
      - refusal
      title: ChatCompletionRequestMessageContentPartRefusal
      description: 'Schema for ChatCompletionRequestMessageContentPartRefusal.


        Fields:

        - type (required): Literal["refusal"]

        - refusal (required): str'
    Credential:
      properties:
        connection_name:
          type: string
          title: Connection Name
          description: Connection name. Must match a connection in MCPServer.connections.
        values:
          additionalProperties:
            anyOf:
            - type: string
            - type: integer
            - type: boolean
          type: object
          title: Values
          description: Credential values. Keys are credential field names, values are the secrets.
      additionalProperties: false
      type: object
      required:
      - connection_name
      - values
      title: Credential
      description: 'Credential for MCP server authentication.


        Passed at endpoint level (e.g., chat.completions.create) and matched

        to MCP servers by connection name. Wire format matches dedalus_mcp.Credential.to_dict().'
    ChatCompletionResponseMessage:
      properties:
        content:
          anyOf:
          - type: string
          - type: 'null'
          title: Content
          description: The contents of the message.
          x-order: 0
        refusal:
          anyOf:
          - type: string
          - type: 'null'
          title: Refusal
          description: The refusal message generated by the model.
          x-order: 1
        tool_calls:
          items:
            oneOf:
            - $ref: '#/components/schemas/ChatCompletionMessageToolCall'
            - $ref: '#/components/schemas/ChatCompletionMessageCustomToolCall'
            discriminator:
              propertyName: type
              mapping:
                custom: '#/components/schemas/ChatCompletionMessageCustomToolCall'
                function: '#/components/schemas/ChatCompletionMessageToolCall'
          type: array
          title: Tool Calls
          description: The tool calls generated by the model, such as function calls.
          x-order: 2
        annotations:
          items:
            properties:
              type:
                type: string
                const: url_citation
                title: Type
                description: The type of the URL citation. Always `url_citation`.
                x-order: 0
              url_citation:
                properties:
                  end_index:
                    type: integer
                    title: End Index
                    description: The index of the last character of the URL citation in the message.
                    x-order: 0
                  start_index:
                    type: integer
                    title: Start Index
                    description: The index of the first character of the URL citation in the message.
                    x-order: 1
                  url:
                    type: string
                    title: Url
                    description: The URL of the web resource.
                    x-order: 2
                  title:
                    type: string
                    title: Title
                    description: The title of the web resource.
                    x-order: 3
                type: object
                required:
                - end_index
                - start_index
                - url
                - title
                description: 'A URL citation when using web search.


                  Fields:

                  - end_index (required): int

                  - start_index (required): int

                  - url (required): str

                  - title (required): str'
            type: object
            required:
            - type
            - url_citation
            description: 'A URL citation when using web search.


              Fields:

              - type (required): Literal["url_citation"]

              - url_citation (required): UrlCitation'
          type: array
          title: Annotations
          description: 'Annotations for the message, when applicable, as when using the

            [web search tool](/docs/guides/tools-web-search?api-mode=chat).'
          x-order: 3
        role:
          type: string
          const: assistant
          title: Role
          description: The role of the author of this message.
          x-order: 4
        function_call:
          properties:
            arguments:
              type: string
              title: Arguments
              description: The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function.
              x-order: 0
            name:
              type: string
              title: Name
              description: The name of the function to call.
              x-order: 1
          type: object
          required:
          - arguments
          - name
          description: 'Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model.


            Fields:

            - arguments (required): str

            - name (required): str'
        audio:
          anyOf:
          - properties:
              id:
                type: string
                title: Id
                description: Unique identifier for this audio response.
                x-order: 0
              expires_at:
                type: integer
                title: Expires At
                description: 'The Unix timestamp (in seconds) for when this audio response will

                  no longer be accessible on the server for use in multi-turn

                  conversations.'
                x-order: 1
              data:
                type: string
                title: Data
                description: 'Base64 encoded audio bytes generated by the model, in the format

                  specified in the request.'
                x-order: 2
              transcript:
                type: string
                title: Transcript
                description: Transcript of the audio generated by the model.
                x-order: 3
            type: object
            required:
            - id
            - expires_at
            - data
            - transcript
            description: 'If the audio output modality is requested, this object contains data

              about the audio response from the model. [Learn more](/docs/guides/audio).


              Fields:

              - id (required): str

              - expires_at (required): int

              - data (required): str

              - transcript (required): str'
          - type: 'null'
          description: 'If the audio output modality is requested, this object contains data

            about the audio response from the model. [Learn more](/docs/guides/audio).'
          x-order: 6
      type: object
      required:
      - content
      - refusal
      - role
      title: ChatCompletionResponseMessage
      description: 'A chat completion message generated by the model.


        Fields:

        - content (required): str | None

        - refusal (required): str | None

        - tool_calls (optional): ChatCompletionMessageToolCalls

        - annotations (optional): list[AnnotationsItem]

        - role (required): Literal["assistant"]

        - function_call (optional): ChatCompletionResponseMessageFunctionCall

        - audio (optional): ChatCompletionResponseMessageAudio | None'
    EmbeddingRequest:
      properties:
        input:
          anyOf:
          - type: string
          - items:
              type: string
            type: array
            maxItems: 2048
            minItems: 1
            title: EmbeddingRequestInputArray
          - items:
              type: integer
            type: array
            maxItems: 2048
            minItems: 1
            title: EmbeddingRequestInputArray
          - items:
              items:
                type: integer
              type: array
              minItems: 1
              title: EmbeddingRequestInputItemArray
            type: array
            maxItems: 2048
            minItems: 1
            title: EmbeddingRequestInputArray
          title: Input
          description: Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and any array must be 2048 dimensions or less. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens. In addition to the per-input token limit, all embedding  models enforce a maximum of 300,000 tokens summed across all inputs in a  single request.
          x-order: 0
        model:
          anyOf:
          - type: string
          - type: string
            enum:
            - text-embedding-ada-002
            - text-embedding-3-small
            - text-embedding-3-large
          title: Model
          description: ID of the model to use. You can use the [List models](/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](/docs/models) for descriptions of them.
          x-order: 1
        encoding_format:
          type: string
          enum:
          - float
          - base64
          title: Encoding Format
          description: The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/).
          default: float
          x-order: 2
        dimensions:
          type: integer
          minimum: 1
          title: Dimensions
          description: The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models.
          x-order: 3
        user:
          type: string
          title: User
          description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids).
          x-order: 4
      type: object
      required:
      - input
      - model
      title: EmbeddingRequest
      description: 'Schema for EmbeddingRequest.


        Fields:

        - input (required): str | Annotated[list[str], MinLen(1), MaxLen(2048), ArrayTitle("EmbeddingRequestInputArray")] | Annotated[list[int], MinLen(1), MaxLen(2048), ArrayTitle("EmbeddingRequestInputArray")] | Annotated[list[Annotated[list[int], MinLen(1), ArrayTitle("EmbeddingRequestInputItemArray")]], 

# --- truncated at 32 KB (193 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dedaluslabs/refs/heads/main/openapi/dedaluslabs-v1-api-openapi.yml