> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getbifrost.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create async chat completion

> Submits a chat completion request for asynchronous execution. Returns a job ID immediately
with HTTP 202. Poll the corresponding GET endpoint with the job ID to retrieve the result.
Streaming is not supported for async requests.




## OpenAPI

````yaml /openapi/openapi.json post /v1/async/chat/completions
openapi: 3.1.0
info:
  title: Bifrost API
  description: >
    Bifrost HTTP Transport API for AI model inference and gateway management.


    This API provides a unified interface for interacting with multiple AI
    providers

    including OpenAI, Anthropic, Bedrock, Gemini, and more through a single API,

    along with comprehensive management APIs for configuring and monitoring the
    gateway.


    ## API Structure


    ### Unified Inference API (`/v1/*`)

    The primary API using Bifrost's unified format. Model parameters use the
    format

    `provider/model` (e.g., `openai/gpt-4`, `anthropic/claude-3-opus`).


    ### Async Inference API (`/v1/async/*`)

    Submit inference requests for asynchronous execution. Returns a job ID
    immediately

    and allows polling for results. Supports all inference types except batches,
    files,

    and containers.


    ### Provider Integration APIs

    Native provider-format APIs for drop-in compatibility:

    - `/openai/*` - OpenAI-compatible API

    - `/anthropic/*` - Anthropic-compatible API

    - `/genai/*` - Google GenAI (Gemini) compatible API

    - `/bedrock/*` - AWS Bedrock compatible API

    - `/cohere/*` - Cohere compatible API


    ### Framework Integration APIs

    Multi-provider proxy endpoints for AI frameworks:

    - `/litellm/*` - LiteLLM proxy with all provider formats

    - `/langchain/*` - LangChain compatible endpoints

    - `/pydanticai/*` - PydanticAI compatible endpoints


    ### Management APIs (`/api/*`)

    APIs for managing and monitoring the Bifrost gateway:

    - `/api/config` - Configuration management

    - `/api/providers` - Provider and API key management

    - `/api/plugins` - Plugin management

    - `/api/governance/*` - Virtual keys, teams, customers, budgets, rate
    limits, routing rules, and pricing overrides

    - `/api/logs` - Log search and analytics

    - `/api/mcp/*` - MCP (Model Context Protocol) client management

    - `/api/session/*` - Authentication and session management

    - `/api/cache/*` - Cache management

    - `/health` - Health check endpoint


    ## Fallbacks

    Requests can include fallback models that will be tried if the primary model
    fails.
  version: 1.0.0
  contact:
    name: Contact Us
    url: https://getmaxim.ai/bifrost
  license:
    name: Apache 2.0
    url: https://opensource.org/licenses/Apache-2.0
servers:
  - url: '{baseUrl}'
    description: Your Bifrost instance
    variables:
      baseUrl:
        default: http://localhost:8080
        description: Base URL of your Bifrost instance (e.g. https://bifrost.mycompany.com)
security:
  - BearerAuth: []
  - BasicAuth: []
  - ApiKeyAuth: []
tags:
  - name: Models
    description: Model listing and information
  - name: Chat Completions
    description: Chat-based text generation
  - name: Text Completions
    description: Text completion generation
  - name: Responses
    description: OpenAI Responses API compatible endpoints
  - name: OCR
    description: Optical character recognition for documents and images
  - name: Rerank
    description: Document reranking by relevance to a query
  - name: Embeddings
    description: Text embedding generation
  - name: Images
    description: Image generations, editing, and variations
  - name: Videos
    description: Video generation and management
  - name: Audio
    description: Speech synthesis and transcription
  - name: Count Tokens
    description: Token counting utilities
  - name: Batch
    description: Batch processing operations
  - name: Files
    description: File management operations
  - name: Containers
    description: Container management operations
  - name: Async Jobs
    description: Asynchronous job submission and retrieval endpoints
  - name: Realtime
    description: Realtime WebSocket and WebRTC endpoints
  - name: OpenAI Integration
    description: OpenAI-compatible API endpoints (/openai/*)
  - name: Azure Integration
    description: Azure OpenAI integration endpoints
  - name: Anthropic Integration
    description: Anthropic-compatible API endpoints (/anthropic/*)
  - name: GenAI Integration
    description: Google GenAI (Gemini) compatible API endpoints (/genai/*)
  - name: Bedrock Integration
    description: AWS Bedrock compatible API endpoints (/bedrock/*)
  - name: Cohere Integration
    description: Cohere compatible API endpoints (/cohere/*)
  - name: LiteLLM Integration
    description: LiteLLM proxy endpoints with multi-provider support (/litellm/*)
  - name: LangChain Integration
    description: LangChain compatible endpoints with multi-provider support (/langchain/*)
  - name: PydanticAI Integration
    description: >-
      PydanticAI compatible endpoints with multi-provider support
      (/pydanticai/*)
  - name: Health
    description: Health check endpoints
  - name: Configuration
    description: Configuration management endpoints
  - name: Session
    description: Session and authentication endpoints
  - name: Providers
    description: Provider management endpoints
  - name: Plugins
    description: Plugin management endpoints
  - name: MCP
    description: Model Context Protocol endpoints
  - name: Governance
    description: Virtual keys, teams, and customers management
  - name: Logging
    description: Log search and management endpoints
  - name: Cache
    description: Cache management endpoints
  - name: Vault
    description: Vault secret management endpoints
  - name: Skills
    description: Skills Repository management, marketplace, and download endpoints
  - name: Audit Logs
    description: >-
      CADF-compliant audit log search, export, and signature verification
      endpoints
  - name: Webhooks
    description: Webhook endpoint management and signed async-job delivery history
paths:
  /v1/async/chat/completions:
    post:
      tags:
        - Async Jobs
      summary: Create async chat completion
      description: >
        Submits a chat completion request for asynchronous execution. Returns a
        job ID immediately

        with HTTP 202. Poll the corresponding GET endpoint with the job ID to
        retrieve the result.

        Streaming is not supported for async requests.
      operationId: createAsyncChatCompletion
      parameters:
        - $ref: '#/components/parameters/AsyncResultTTL'
        - $ref: '#/components/parameters/AsyncWebhookEndpoint'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
      responses:
        '202':
          description: Job accepted for processing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncJobResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BifrostError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BifrostError'
      security:
        - BearerAuth: []
        - BasicAuth: []
        - VirtualKeyAuth: []
        - ApiKeyAuth: []
components:
  parameters:
    AsyncResultTTL:
      name: x-bf-async-job-result-ttl
      in: header
      required: false
      description: >
        Time-to-live in seconds for the job result after completion. Defaults to
        3600 (1 hour).

        After expiry, the job result is automatically cleaned up.
      schema:
        type: integer
        default: 3600
    AsyncWebhookEndpoint:
      name: x-bf-async-webhook
      in: header
      required: false
      description: >
        Name of a registered webhook endpoint to notify when this job reaches a
        terminal

        state (`completed` or `failed`). The endpoint must already exist and be
        enabled;

        otherwise the submission is rejected with HTTP 400. If the endpoint is
        not subscribed

        to the resulting event, the job still completes normally but no delivery
        is enqueued.

        When omitted, no webhook is sent for the job and results are retrieved
        by polling.

        See the Webhooks management API to register endpoints.
      schema:
        type: string
  schemas:
    ChatCompletionRequest:
      type: object
      required:
        - model
        - messages
      properties:
        model:
          type: string
          description: Model in provider/model format (e.g., openai/gpt-4)
          example: openai/gpt-4
        messages:
          type: array
          items:
            $ref: '#/components/schemas/ChatMessage'
          description: List of messages in the conversation
        fallbacks:
          type: array
          items:
            type: string
          description: Fallback models in provider/model format
        stream:
          type: boolean
          description: Whether to stream the response
        frequency_penalty:
          type: number
          minimum: -2
          maximum: 2
        logit_bias:
          type: object
          additionalProperties:
            type: number
        logprobs:
          type: boolean
        max_completion_tokens:
          type: integer
        metadata:
          type: object
          additionalProperties: true
        modalities:
          type: array
          items:
            type: string
        parallel_tool_calls:
          type: boolean
        presence_penalty:
          type: number
          minimum: -2
          maximum: 2
        prompt_cache_key:
          type: string
        reasoning:
          type: object
          properties:
            effort:
              type: string
              description: Reasoning effort level
              enum:
                - none
                - minimal
                - low
                - medium
                - high
                - xhigh
            max_tokens:
              type: integer
        response_format:
          type: object
          description: Format for the response
        safety_identifier:
          type: string
        service_tier:
          type: string
        stream_options:
          type: object
          properties:
            include_obfuscation:
              type: boolean
            include_usage:
              type: boolean
        store:
          type: boolean
        temperature:
          type: number
          minimum: 0
          maximum: 2
        tool_choice:
          oneOf:
            - type: string
              enum:
                - none
                - auto
                - required
            - type: object
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - none
                    - any
                    - required
                    - function
                    - allowed_tools
                    - custom
                function:
                  type: object
                  required:
                    - name
                  properties:
                    name:
                      type: string
                allowed_tools:
                  type: object
                  properties:
                    mode:
                      type: string
                      enum:
                        - auto
                        - required
                    tools:
                      type: array
                      items:
                        type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                          function:
                            type: object
                            required:
                              - name
                            properties:
                              name:
                                type: string
        tools:
          type: array
          items:
            type: object
            required:
              - type
            properties:
              type:
                type: string
                enum:
                  - function
                  - custom
              function:
                type: object
                required:
                  - name
                properties:
                  name:
                    type: string
                  description:
                    type: string
                  parameters:
                    type: object
                    properties:
                      type:
                        type: string
                      description:
                        type: string
                      required:
                        type: array
                        items:
                          type: string
                      properties:
                        type: object
                        additionalProperties: true
                      enum:
                        type: array
                        items:
                          type: string
                      additionalProperties:
                        type: boolean
                  strict:
                    type: boolean
              custom:
                type: object
                properties:
                  format:
                    type: object
                    required:
                      - type
                    properties:
                      type:
                        type: string
                      grammar:
                        type: object
                        required:
                          - definition
                          - syntax
                        properties:
                          definition:
                            type: string
                          syntax:
                            type: string
                            enum:
                              - lark
                              - regex
              cache_control:
                $ref: '#/components/schemas/CacheControl'
        seed:
          type: integer
          description: Deterministic sampling seed
        top_p:
          type: number
          minimum: 0
          maximum: 1
          description: Nucleus sampling parameter
        top_logprobs:
          type: integer
          minimum: 0
          maximum: 20
          description: Number of most likely tokens to return at each position
        stop:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          description: Up to 4 sequences where the API will stop generating tokens
        prediction:
          type: object
          description: >-
            Predicted output content for the model to reference (OpenAI only).
            Can reduce latency.
          properties:
            type:
              type: string
              description: Always "content"
            content:
              description: Predicted content (string or array of content parts)
              oneOf:
                - type: string
                - type: array
                  items:
                    type: object
                    additionalProperties: true
        prompt_cache_retention:
          type: string
          enum:
            - in_memory
            - 24h
          description: Prompt cache retention policy
        web_search_options:
          type: object
          description: Web search options for chat completions (OpenAI only)
          properties:
            search_context_size:
              type: string
              enum:
                - low
                - medium
                - high
              description: Amount of search context to include
            user_location:
              type: object
              properties:
                type:
                  type: string
                  description: Location type (e.g., "approximate")
                approximate:
                  type: object
                  properties:
                    city:
                      type: string
                    country:
                      type: string
                      description: Two-letter ISO country code (e.g., "US")
                    region:
                      type: string
                      description: Region or state (e.g., "California")
                    timezone:
                      type: string
                      description: IANA timezone (e.g., "America/Los_Angeles")
        truncation:
          type: string
        user:
          type: string
        verbosity:
          type: string
          enum:
            - low
            - medium
            - high
    AsyncJobResponse:
      type: object
      description: Response returned when creating or polling an async job
      required:
        - id
        - status
        - created_at
      properties:
        id:
          type: string
          description: Unique identifier for the async job
        status:
          $ref: '#/components/schemas/AsyncJobStatus'
        expires_at:
          type: string
          format: date-time
          description: When the job result expires and will be cleaned up
        created_at:
          type: string
          format: date-time
          description: When the job was created
        completed_at:
          type: string
          format: date-time
          description: When the job completed (successfully or with failure)
        status_code:
          type: integer
          description: HTTP status code of the completed operation
        result:
          description: >-
            The result of the completed operation (shape depends on the request
            type)
        error:
          $ref: '#/components/schemas/BifrostError'
    BifrostError:
      type: object
      description: Error response from Bifrost
      properties:
        event_id:
          type: string
        type:
          type: string
        is_bifrost_error:
          type: boolean
        status_code:
          type: integer
        error:
          $ref: '#/components/schemas/ErrorField'
        extra_fields:
          $ref: '#/components/schemas/BifrostErrorExtraFields'
    ChatMessage:
      type: object
      required:
        - role
      properties:
        role:
          type: string
          enum:
            - assistant
            - user
            - system
            - tool
            - developer
        name:
          type: string
        content:
          oneOf:
            - type: string
            - type: array
              items:
                type: object
                required:
                  - type
                properties:
                  type:
                    type: string
                    enum:
                      - text
                      - image_url
                      - input_audio
                      - file
                      - refusal
                  text:
                    type: string
                  refusal:
                    type: string
                  image_url:
                    type: object
                    required:
                      - url
                    properties:
                      url:
                        type: string
                      detail:
                        type: string
                        enum:
                          - low
                          - high
                          - auto
                  input_audio:
                    type: object
                    required:
                      - data
                    properties:
                      data:
                        type: string
                      format:
                        type: string
                  file:
                    type: object
                    properties:
                      file_data:
                        type: string
                      file_id:
                        type: string
                      filename:
                        type: string
                      file_type:
                        type: string
                  cache_control:
                    $ref: '#/components/schemas/CacheControl'
          description: Message content - can be a string or array of content blocks
        tool_call_id:
          type: string
          description: For tool messages
        refusal:
          type: string
        audio:
          type: object
          properties:
            id:
              type: string
            data:
              type: string
            expires_at:
              type: integer
            transcript:
              type: string
        reasoning:
          type: string
        reasoning_details:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              index:
                type: integer
              type:
                type: string
                enum:
                  - reasoning.summary
                  - reasoning.encrypted
                  - reasoning.text
              summary:
                type: string
              text:
                type: string
              signature:
                type: string
              data:
                type: string
        annotations:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              url_citation:
                type: object
                properties:
                  start_index:
                    type: integer
                  end_index:
                    type: integer
                  title:
                    type: string
                  url:
                    type: string
                  sources:
                    type: object
                  type:
                    type: string
        tool_calls:
          type: array
          items:
            type: object
            required:
              - function
            properties:
              index:
                type: integer
              type:
                type: string
              id:
                type: string
              function:
                type: object
                properties:
                  name:
                    type: string
                  arguments:
                    type: string
    CacheControl:
      type: object
      description: Cache control settings for content blocks
      properties:
        type:
          type: string
          enum:
            - ephemeral
        ttl:
          type: string
          description: Time to live (e.g., "1m", "1h")
    AsyncJobStatus:
      type: string
      description: The status of an async job
      enum:
        - pending
        - processing
        - completed
        - failed
    ErrorField:
      type: object
      properties:
        type:
          type: string
        code:
          type: string
        message:
          type: string
        param:
          type: string
        event_id:
          type: string
    BifrostErrorExtraFields:
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/ModelProvider'
        model_requested:
          type: string
        request_type:
          type: string
    ModelProvider:
      type: string
      description: AI model provider identifier
      enum:
        - openai
        - azure
        - anthropic
        - bedrock
        - cohere
        - vertex
        - vllm
        - mistral
        - ollama
        - groq
        - sgl
        - parasail
        - perplexity
        - replicate
        - cerebras
        - deepseek
        - gemini
        - openrouter
        - elevenlabs
        - huggingface
        - nebius
        - xai
        - runway
        - fireworks
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >
        Bearer token authentication. Use your provider API key or Bifrost
        authentication token.

        Virtual keys (prefixed with `sk-bf-`) can also be passed here.
    BasicAuth:
      type: http
      scheme: basic
      description: |
        Basic authentication using username and password.
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: |
        API key authentication via the `x-api-key` header.
        Virtual keys (prefixed with `sk-bf-`) can also be passed here.
    VirtualKeyAuth:
      type: apiKey
      in: header
      name: x-bf-vk
      description: >
        Bifrost Virtual Key for governance, routing, and access control.
        Supported on all inference endpoints (`/v1/*`, `/openai/*`,
        `/anthropic/*`, `/bedrock/*`, `/cohere/*`, `/genai/*`, `/langchain/*`,
        `/litellm/*`, `/pydanticai/*`, `/mcp`), not on management APIs
        (`/api/*`).

        Example: `sk-bf-*` prefixed keys.

````