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

# Créer une complétion de chat

> Générez des complétions de chat avec l’endpoint de chat compatible avec l’API OpenAI.

## Outils serveur

`/v1/chat/completions` prend en charge les outils de fonction classiques ainsi que les outils serveur gérés par le Gateway suivants :

* `gateway:datetime`
* `phaseo:web_search`
* `phaseo:web_fetch`
* `phaseo:advisor`
* `phaseo:image_generation`

### Exemple de date et heure

```bash theme={null}
curl https://api.phaseo.app/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-5-nano",
    "stream": false,
    "messages": [
      { "role": "user", "content": "What is the current datetime in Europe/London?" }
    ],
    "tools": [
      {
        "type": "gateway:datetime",
        "parameters": { "timezone": "Europe/London" }
      }
    ],
    "tool_choice": "auto"
  }'
```

Lorsqu’un outil serveur est utilisé, les données d’utilisation comprennent :

```json theme={null}
{
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 34,
    "total_tokens": 46,
    "server_tool_use": {
      "datetime_requests": 1
    }
  }
}
```

`phaseo:web_search` ajoute `server_tool_use.web_search_requests`, `server_tool_use.web_search_results` et `server_tool_use.web_search_extra_results`. `phaseo:web_fetch` ajoute `server_tool_use.web_fetch_requests`.

## À propos du streaming

`stream: true` est également pris en charge. Avec les outils serveur gérés par le Gateway, Phaseo peut matérialiser le tour d’appel d’outil amont, poursuivre la boucle, puis réémettre un flux synthétique.


## OpenAPI

````yaml fr/openapi/v1/openapi.localized.yaml POST /chat/completions
openapi: 3.0.3
info:
  title: Phaseo Gateway API
  description: >-
    Une API de passerelle pour accéder à divers modèles d’IA via des points de
    terminaison compatibles avec OpenAI.
  version: 1.0.0
  contact:
    name: Phaseo
    url: https://phaseo.app
    email: danielbutler500@gmail.com
servers:
  - url: https://api.phaseo.app/v1
    description: Routage mondial
security:
  - BearerAuth: []
tags:
  - name: Gateway
    description: Core Phaseo Gateway operations.
paths:
  /chat/completions:
    post:
      tags:
        - Gateway
      summary: Créer une complétion de chat
      description: Crée une complétion pour le message de chat.
      operationId: createChatCompletion
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionsRequest'
            examples:
              datetimeServerTool:
                summary: Built-in datetime server tool
                value:
                  model: openai/gpt-5-nano
                  stream: false
                  messages:
                    - role: user
                      content: What is the current datetime in Europe/London?
                  tools:
                    - type: gateway:datetime
                      parameters:
                        timezone: Europe/London
                  tool_choice: auto
      responses:
        '200':
          description: Réponse de complétion de chat
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletionsResponse'
        '429':
          $ref: '#/components/responses/UpstreamRateLimited'
      servers:
        - url: https://api.phaseo.app/v1
          description: Routage mondial
        - url: https://eu.api.phaseo.app/v1
          description: Routage régional vers les fournisseurs de l’UE (texte uniquement)
        - url: https://us.api.phaseo.app/v1
          description: >-
            Routage régional vers les fournisseurs des États-Unis (texte
            uniquement)
components:
  schemas:
    ChatCompletionsRequest:
      type: object
      required:
        - model
        - messages
      properties:
        model:
          type: string
        messages:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ChatMessage'
        reasoning:
          $ref: '#/components/schemas/OpenAIReasoningConfig'
        reasoning_effort:
          type: string
          description: Alias compatible avec OpenAI pour `reasoning.effort`.
          enum:
            - none
            - instant
            - minimal
            - low
            - medium
            - high
            - xhigh
            - max
        frequency_penalty:
          type: number
          minimum: -2
          maximum: 2
        logit_bias:
          type: object
          additionalProperties:
            type: number
        max_completion_tokens:
          type: integer
          minimum: 1
        max_tokens:
          type: integer
          minimum: 1
        metadata:
          type: object
          additionalProperties:
            type: string
        session_id:
          type: string
          maxLength: 256
          description: >-
            Identifiant unique permettant de regrouper des requêtes liées (par
            exemple, une conversation ou un flux de travail d’agent) à des fins
            d’observabilité.
        presence_penalty:
          type: number
          minimum: -2
          maximum: 2
        seed:
          type: integer
          minimum: -9223372036854776000
          maximum: 9223372036854776000
        store:
          type: boolean
        stream:
          type: boolean
          default: false
        stream_options:
          type: object
        temperature:
          type: number
          minimum: 0
          maximum: 2
          default: 1
        tools:
          type: array
          description: >-
            Définitions des outils pour les appels de fonctions du modèle et les
            outils serveur de la passerelle. Les outils intégrés incluent date
            et heure, recherche Web, récupération de pages Web, Advisor,
            Subagent, Fusion, recherche de modèles, génération d’images et
            création de patchs.
          items:
            $ref: '#/components/schemas/TextGenerateTool'
        max_tool_calls:
          type: integer
          minimum: 1
        parallel_tool_calls:
          type: boolean
          default: true
        tool_choice:
          $ref: '#/components/schemas/TextToolChoice'
        logprobs:
          type: boolean
          default: false
        top_logprobs:
          type: integer
          minimum: 0
          maximum: 20
        top_p:
          type: number
          minimum: 0
          maximum: 1
        stop:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
        response_format:
          oneOf:
            - type: string
            - type: object
              properties:
                type:
                  type: string
                schema:
                  type: object
        modalities:
          type: array
          items:
            type: string
            enum:
              - text
              - image
              - audio
        image_config:
          $ref: '#/components/schemas/ImageConfig'
        usage:
          type: boolean
        provider:
          oneOf:
            - type: string
              enum:
                - openai
                - anthropic
                - google-ai-studio
                - gemini
                - mistral
                - x-ai
                - xai
                - groq
                - together
            - $ref: '#/components/schemas/ProviderRoutingOptions'
          description: >-
            Sélecteur de fournisseur. Utilisez une chaîne pour un seul
            fournisseur ou des options de routage comme `{ "only": ["groq"] }`.
        provider_options:
          $ref: '#/components/schemas/ProviderOptions'
        user_id:
          type: string
        user:
          type: string
        service_tier:
          type: string
          enum:
            - standard
            - default
            - fast
            - ultrafast
            - priority
            - flex
            - batch
        prompt_cache_key:
          type: string
          nullable: true
        safety_identifier:
          type: string
          nullable: true
        meta:
          type: boolean
          default: false
        echo_upstream_request:
          type: boolean
        debug:
          $ref: '#/components/schemas/DebugOptions'
    ChatCompletionsResponse:
      type: object
      properties:
        id:
          type: string
        nativeResponseId:
          type: string
          nullable: true
        object:
          type: string
        created:
          type: integer
        model:
          type: string
        provider:
          type: string
        choices:
          type: array
          items:
            $ref: '#/components/schemas/ChatChoice'
        usage:
          $ref: '#/components/schemas/Usage'
    ChatMessage:
      type: object
      required:
        - role
      properties:
        role:
          type: string
          enum:
            - system
            - developer
            - user
            - assistant
            - tool
        content:
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/MessageContentPart'
        name:
          type: string
        tool_calls:
          type: array
          items:
            $ref: '#/components/schemas/ToolCall'
        images:
          type: array
          items:
            $ref: '#/components/schemas/ChatImageOutputPart'
        audios:
          type: array
          items:
            $ref: '#/components/schemas/ChatAudioOutputPart'
        tool_call_id:
          type: string
      discriminator:
        propertyName: role
    OpenAIReasoningConfig:
      type: object
      properties:
        effort:
          type: string
          enum:
            - none
            - instant
            - minimal
            - low
            - medium
            - high
            - xhigh
            - max
          default: medium
        mode:
          type: string
          enum:
            - standard
            - pro
        summary:
          type: string
          enum:
            - auto
            - concise
            - detailed
          default: auto
        enabled:
          type: boolean
        max_tokens:
          type: integer
          minimum: 0
    TextGenerateTool:
      oneOf:
        - $ref: '#/components/schemas/FunctionToolDefinition'
        - $ref: '#/components/schemas/GatewayDatetimeToolDefinition'
        - $ref: '#/components/schemas/GatewayWebSearchToolDefinition'
        - $ref: '#/components/schemas/GatewayWebFetchToolDefinition'
        - $ref: '#/components/schemas/SubagentToolDefinition'
        - $ref: '#/components/schemas/FusionToolDefinition'
        - $ref: '#/components/schemas/SearchModelsToolDefinition'
    TextToolChoice:
      description: >-
        Stratégie de sélection des outils. Les types d’outils serveur Phaseo
        sont acceptés et convertis en cibles de fonctions ou d’outils du
        fournisseur amont.
      oneOf:
        - type: string
          enum:
            - auto
            - none
            - required
            - phaseo:datetime
            - phaseo:web_search
            - phaseo:web_fetch
            - phaseo:subagent
            - phaseo:fusion
            - phaseo:search_models
            - gateway:datetime
            - gateway:web_search
            - gateway:web_fetch
        - type: object
    ImageConfig:
      type: object
      properties:
        aspect_ratio:
          type: string
        image_size:
          type: string
          enum:
            - 0.5K
            - 1K
            - 2K
            - 4K
        include_rai_reason:
          type: boolean
        font_inputs:
          type: array
          items:
            type: object
            properties:
              font_url:
                type: string
                format: uri
              text:
                type: string
        super_resolution_references:
          type: array
          items:
            type: string
        reference_images:
          type: array
          items:
            type: object
            additionalProperties: true
      additionalProperties: true
    ProviderRoutingOptions:
      type: object
      description: >-
        Préférences de routage des fournisseurs pour la sélection par la
        passerelle.
      properties:
        order:
          type: array
          items:
            type: string
        only:
          type: array
          items:
            type: string
        ignore:
          type: array
          items:
            type: string
        include_alpha:
          type: boolean
          description: >-
            Inclure les fournisseurs alpha dans le routage (désactivé par
            défaut).
        allow_fallbacks:
          type: boolean
          nullable: true
          description: >-
            Autoriser le repli vers un autre fournisseur éligible après un
            échec.
        require_parameters:
          type: boolean
          nullable: true
          description: >-
            Exiger la prise en charge des paramètres demandés par le fournisseur
            avant le routage.
        required_execution_region:
          type: string
          nullable: true
          description: >-
            Limiter le routage aux fournisseurs disposant de la région
            d’exécution demandée.
        required_data_region:
          type: string
          nullable: true
          description: >-
            Limiter le routage aux fournisseurs disposant de la région de
            données demandée.
        require_zero_data_retention:
          type: boolean
          nullable: true
          description: >-
            Limiter le routage aux fournisseurs qui prennent en charge la
            conservation nulle des données.
        data_collection:
          type: string
          nullable: true
          enum:
            - allow
            - deny
        zdr:
          type: boolean
          nullable: true
        enforce_distillable_text:
          type: boolean
          nullable: true
        quantizations:
          type: array
          nullable: true
          items:
            type: string
        sort:
          oneOf:
            - type: string
            - type: object
              additionalProperties: true
          description: >-
            Classer les fournisseurs pour cette requête, par exemple selon le
            prix, la latence ou le débit.
        max_price:
          type: object
          properties:
            prompt:
              oneOf:
                - type: number
                - type: string
            completion:
              oneOf:
                - type: number
                - type: string
            image:
              oneOf:
                - type: number
                - type: string
            audio:
              oneOf:
                - type: number
                - type: string
            request:
              oneOf:
                - type: number
                - type: string
        preferred_min_throughput:
          oneOf:
            - type: number
            - type: object
              additionalProperties:
                type: number
        preferred_max_latency:
          oneOf:
            - type: number
            - type: object
              additionalProperties:
                type: number
    ProviderOptions:
      type: object
      description: Options propres au fournisseur, facultatives.
      properties:
        openai:
          type: object
          properties:
            context_management:
              type: object
              description: Configuration facultative de la gestion du contexte OpenAI.
              properties:
                type:
                  type: string
                  enum:
                    - compaction
                compact_threshold:
                  type: number
              required:
                - type
            prompt_cache_retention:
              type: string
        anthropic:
          type: object
          properties:
            cache_control:
              $ref: '#/components/schemas/CacheControl'
        google:
          type: object
          properties:
            cache_control:
              $ref: '#/components/schemas/CacheControl'
            cached_content:
              type: string
            cache_ttl:
              type: string
    DebugOptions:
      type: object
      description: >-
        Options de débogage de la passerelle. Ces indicateurs ne sont jamais
        transmis au fournisseur.
      properties:
        enabled:
          type: boolean
        return_upstream_request:
          type: boolean
        return_upstream_response:
          type: boolean
        trace:
          type: boolean
        trace_level:
          type: string
          enum:
            - summary
            - full
    ChatChoice:
      type: object
      properties:
        index:
          type: integer
        message:
          $ref: '#/components/schemas/ChatMessage'
        finish_reason:
          type: string
          enum:
            - stop
            - length
            - tool_calls
            - content_filter
    Usage:
      type: object
      properties:
        prompt_tokens:
          type: integer
        completion_tokens:
          type: integer
        total_tokens:
          type: integer
        server_tool_use:
          $ref: '#/components/schemas/ServerToolUsage'
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        ok:
          type: boolean
          example: false
        error:
          oneOf:
            - type: string
            - type: object
              additionalProperties: true
          example: error_type
        message:
          type: string
          example: Human-readable error message
        description:
          type: string
          example: Additional error details.
        generation_id:
          type: string
          example: G-abc123
        status_code:
          type: integer
          example: 502
        error_type:
          type: string
          enum:
            - user
            - system
          example: system
        error_origin:
          type: string
          enum:
            - user
            - gateway
            - upstream
          example: upstream
        reason:
          type: string
          example: all_candidates_failed
        attempt_count:
          type: integer
          example: 2
        failed_providers:
          type: array
          items:
            type: string
          example:
            - google-ai-studio
            - openai
        failed_statuses:
          type: array
          items:
            type: integer
          example:
            - 403
            - 429
        upstream_error:
          $ref: '#/components/schemas/ErrorUpstreamError'
        failure_sample:
          type: array
          items:
            $ref: '#/components/schemas/ErrorFailureSampleItem'
        provider_failure_diagnostics:
          $ref: '#/components/schemas/ErrorProviderFailureDiagnostics'
        routing_diagnostics:
          $ref: '#/components/schemas/ErrorRoutingDiagnostics'
        provider_candidate_diagnostics:
          $ref: '#/components/schemas/ErrorProviderCandidateDiagnostics'
        provider_enablement:
          $ref: '#/components/schemas/ErrorProviderEnablementDiagnostics'
        missing_pricing_providers:
          type: array
          items:
            type: string
        provider_payment_required_provider:
          type: string
          example: openai
        provider_payment_required_support_notice:
          type: string
          example: >-
            Our upstream provider billing appears to be unavailable. If this
            persists, contact support.
        details:
          type: array
          items:
            type: object
            additionalProperties: true
      additionalProperties: true
    MessageContentPart:
      oneOf:
        - $ref: '#/components/schemas/TextContentPart'
        - $ref: '#/components/schemas/ImageContentPart'
        - $ref: '#/components/schemas/AudioContentPart'
        - $ref: '#/components/schemas/VideoContentPart'
        - $ref: '#/components/schemas/ToolCallContentPart'
    ToolCall:
      type: object
      required:
        - id
        - type
        - function
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - function
        function:
          type: object
          properties:
            name:
              type: string
            arguments:
              type: string
            description:
              type: string
            parameters:
              type: object
    ChatImageOutputPart:
      type: object
      required:
        - type
        - image_url
      properties:
        type:
          type: string
          enum:
            - image_url
        image_url:
          type: object
          required:
            - url
          properties:
            url:
              type: string
              description: URL HTTP(S) ou URI de données.
        mime_type:
          type: string
    ChatAudioOutputPart:
      type: object
      required:
        - type
        - audio_url
      properties:
        type:
          type: string
          enum:
            - audio_url
        audio_url:
          type: object
          required:
            - url
          properties:
            url:
              type: string
              description: URL HTTP(S) ou URI de données.
        mime_type:
          type: string
        format:
          type: string
          enum:
            - wav
            - mp3
            - flac
            - m4a
            - ogg
            - pcm16
            - pcm24
    FunctionToolDefinition:
      type: object
      required:
        - type
        - function
      properties:
        type:
          type: string
          enum:
            - function
        async:
          type: boolean
          description: >-
            Permet aux modèles OpenAI pris en charge de continuer pendant que
            l’appelant exécute cet outil. Accepté sur toutes les API de texte et
            ignoré par les autres fournisseurs.
        function:
          type: object
          required:
            - name
            - parameters
          properties:
            name:
              type: string
            description:
              type: string
            parameters:
              type: object
      additionalProperties: true
    GatewayDatetimeToolDefinition:
      type: object
      description: >-
        Outil serveur géré par la passerelle. Celle-ci effectue la recherche de
        date et d’heure, puis injecte le résultat dans la boucle d’outils du
        modèle.
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - phaseo:datetime
            - gateway:datetime
        parameters:
          type: object
          properties:
            timezone:
              type: string
              description: Nom de fuseau horaire IANA (par exemple, Europe/London).
          additionalProperties: false
        timezone:
          type: string
          description: Raccourci historique pour le fuseau horaire par défaut (IANA).
      additionalProperties: false
    GatewayWebSearchToolDefinition:
      type: object
      description: >-
        Outil serveur géré par la passerelle. Celle-ci effectue une recherche
        Web et injecte les résultats normalisés dans la boucle d’outils du
        modèle.
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - phaseo:web_search
            - gateway:web_search
        parameters:
          type: object
          properties:
            engine:
              type: string
              enum:
                - auto
                - native
                - exa
                - firecrawl
                - parallel
                - perplexity
                - tinyfish
            max_results:
              type: integer
              minimum: 1
              maximum: 25
            language:
              type: string
            page:
              type: integer
              minimum: 0
              maximum: 10
            include_text:
              type: boolean
            include_highlights:
              type: boolean
          additionalProperties: false
        max_results:
          type: integer
          minimum: 1
          maximum: 25
        engine:
          type: string
          enum:
            - auto
            - native
            - exa
            - firecrawl
            - parallel
            - perplexity
            - tinyfish
        language:
          type: string
        page:
          type: integer
          minimum: 0
          maximum: 10
        include_text:
          type: boolean
        include_highlights:
          type: boolean
      additionalProperties: false
    GatewayWebFetchToolDefinition:
      type: object
      description: >-
        Outil serveur géré par la passerelle. Celle-ci récupère une page
        HTTP(S), la réduit à un texte de taille limitée, puis injecte le
        résultat dans la boucle d’outils du modèle.
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - phaseo:web_fetch
            - gateway:web_fetch
        parameters:
          type: object
          properties:
            max_chars:
              type: integer
              minimum: 1
              maximum: 100000
          additionalProperties: false
        max_chars:
          type: integer
          minimum: 1
          maximum: 100000
      additionalProperties: false
    SubagentToolDefinition:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - phaseo:subagent
        parameters:
          type: object
          additionalProperties: true
    FusionToolDefinition:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - phaseo:fusion
        parameters:
          type: object
          required:
            - analysis_models
          properties:
            analysis_models:
              type: array
              minItems: 2
              maxItems: 8
              items:
                type: string
            model:
              type: string
          additionalProperties: true
    SearchModelsToolDefinition:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - phaseo:search_models
        parameters:
          type: object
          properties:
            max_results:
              type: integer
              minimum: 1
              maximum: 20
    CacheControl:
      type: object
      properties:
        type:
          type: string
        ttl:
          type: string
        scope:
          type: string
      additionalProperties: true
    ServerToolUsage:
      type: object
      properties:
        datetime_requests:
          type: integer
          minimum: 0
        web_search_requests:
          type: integer
          minimum: 0
        subagent_requests:
          type: integer
          minimum: 0
        fusion_requests:
          type: integer
          minimum: 0
        search_models_requests:
          type: integer
          minimum: 0
        web_fetch_requests:
          type: integer
          minimum: 0
        advisor_requests:
          type: integer
          minimum: 0
        image_generation_requests:
          type: integer
          minimum: 0
        apply_patch_requests:
          type: integer
          minimum: 0
      additionalProperties: false
    ErrorUpstreamError:
      type: object
      properties:
        code:
          type: string
          nullable: true
          example: PERMISSION_DENIED
        message:
          type: string
          nullable: true
          example: The caller does not have permission.
        description:
          type: string
          nullable: true
        param:
          type: string
          nullable: true
    ErrorFailureSampleItem:
      type: object
      properties:
        provider:
          type: string
          nullable: true
        type:
          type: string
          nullable: true
        status:
          type: integer
          nullable: true
        upstream_error_code:
          type: string
          nullable: true
        upstream_error_message:
          type: string
          nullable: true
        upstream_error_description:
          type: string
          nullable: true
        upstream_error_param:
          type: string
          nullable: true
        upstream_payload_preview:
          type: string
          nullable: true
        retryable:
          type: boolean
          nullable: true
      additionalProperties: true
    ErrorProviderFailureDiagnostics:
      type: object
      properties:
        category:
          type: string
          enum:
            - credentials_not_configured
            - credentials_invalid_or_forbidden
            - provider_access_missing
            - region_or_project_restriction
            - model_unavailable_for_endpoint
            - rate_limited
            - server_error
        hint:
          type: string
        provider:
          type: string
          nullable: true
    ErrorRoutingDiagnostics:
      type: object
      properties:
        filterStages:
          type: array
          items:
            type: object
            properties:
              stage:
                type: string
              beforeCount:
                type: integer
              afterCount:
                type: integer
              droppedProviders:
                type: array
                items:
                  type: object
                  properties:
                    providerId:
                      type: string
                      nullable: true
                    reason:
                      type: string
                      nullable: true
                  additionalProperties: true
            additionalProperties: true
      additionalProperties: true
    ErrorProviderCandidateDiagnostics:
      type: object
      properties:
        totalProviders:
          type: integer
        supportsEndpointCount:
          type: integer
        candidateCount:
          type: integer
        droppedUnsupportedEndpoint:
          type: array
          items:
            type: string
        droppedMissingAdapter:
          type: array
          items:
            type: object
            properties:
              providerId:
                type: string
                nullable: true
              endpoint:
                type: string
                nullable: true
            additionalProperties: true
      additionalProperties: true
    ErrorProviderEnablementDiagnostics:
      type: object
      properties:
        capability:
          type: string
        providersBefore:
          type: array
          items:
            type: string
        providersAfter:
          type: array
          items:
            type: string
        dropped:
          type: array
          items:
            type: object
            properties:
              providerId:
                type: string
                nullable: true
              reason:
                type: string
                nullable: true
            additionalProperties: true
      additionalProperties: true
    TextContentPart:
      type: object
      required:
        - type
        - text
      properties:
        type:
          type: string
          enum:
            - text
        text:
          type: string
    ImageContentPart:
      type: object
      required:
        - type
        - image_url
      properties:
        type:
          type: string
          enum:
            - image_url
        image_url:
          type: object
          properties:
            url:
              type: string
              description: URL HTTP(S) ou URI de données.
    AudioContentPart:
      type: object
      required:
        - type
        - input_audio
      properties:
        type:
          type: string
          enum:
            - input_audio
        input_audio:
          type: object
          properties:
            data:
              type: string
            format:
              type: string
              enum:
                - wav
                - mp3
                - flac
                - m4a
                - ogg
                - pcm16
                - pcm24
    VideoContentPart:
      type: object
      required:
        - type
        - video_url
      properties:
        type:
          type: string
          enum:
            - input_video
        video_url:
          type: string
          format: uri
    ToolCallContentPart:
      type: object
      required:
        - type
        - id
        - function
      properties:
        type:
          type: string
          enum:
            - tool_call
        id:
          type: string
        function:
          type: object
          properties:
            name:
              type: string
            arguments:
              type: string
  responses:
    UpstreamRateLimited:
      description: Le fournisseur amont sélectionné a limité le débit des requêtes.
      headers:
        Retry-After:
          description: >-
            Indication validée du fournisseur, en secondes, avant une nouvelle
            tentative.
          schema:
            type: integer
            minimum: 0
            maximum: 86400
        X-Phaseo-Upstream-RateLimit-Limit:
          $ref: '#/components/headers/UpstreamRateLimitValue'
        X-Phaseo-Upstream-RateLimit-Remaining:
          $ref: '#/components/headers/UpstreamRateLimitValue'
        X-Phaseo-Upstream-RateLimit-Reset:
          $ref: '#/components/headers/UpstreamRateLimitValue'
        X-Phaseo-Upstream-RateLimit-Limit-Requests:
          $ref: '#/components/headers/UpstreamRateLimitValue'
        X-Phaseo-Upstream-RateLimit-Remaining-Requests:
          $ref: '#/components/headers/UpstreamRateLimitValue'
        X-Phaseo-Upstream-RateLimit-Reset-Requests:
          $ref: '#/components/headers/UpstreamRateLimitValue'
        X-Phaseo-Upstream-RateLimit-Limit-Tokens:
          $ref: '#/components/headers/UpstreamRateLimitValue'
        X-Phaseo-Upstream-RateLimit-Remaining-Tokens:
          $ref: '#/components/headers/UpstreamRateLimitValue'
        X-Phaseo-Upstream-RateLimit-Reset-Tokens:
          $ref: '#/components/headers/UpstreamRateLimitValue'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  headers:
    UpstreamRateLimitValue:
      description: >-
        Métadonnées de quota du fournisseur, uniquement pour BYOK. Omission pour
        les requêtes utilisant un fournisseur géré.
      schema:
        type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Authentification par jeton Bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.