FriendliAI Container.Responses API

The Container.Responses API from FriendliAI — 2 operation(s) for container.responses.

Operations 2

POST /v1/responses Responses #
POST /v1/responses#stream Stream responses #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/friendliai-container-responses-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

friendliai-container-responses-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Friendli Suite API Reference Container.Audio Container.Responses API
  description: This is an OpenAPI reference of Friendli Suite API.
  termsOfService: https://friendli.ai/terms-of-service
  contact:
    name: FriendliAI Support Team
    email: support@friendli.ai
  version: 0.1.0
servers:
- url: https://api.friendli.ai
tags:
- name: Container.Responses
paths:
  /v1/responses:
    servers:
    - url: http://localhost:8000
    post:
      tags:
      - Container.Responses
      summary: Responses
      description: Generate a model response from text or image inputs. Follows the OpenAI Responses API format, with support for streaming, function and custom tool calls, structured outputs, and reasoning controls.
      operationId: containerResponses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContainerResponsesBody'
        required: true
      responses:
        '200':
          description: Successfully generated a response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerResponsesSuccess'
              examples:
                Example:
                  value:
                    id: resp_4b71d12c86d94e719c7e3984a7bb7941
                    object: response
                    created_at: 1735722153
                    status: completed
                    output:
                    - type: message
                      id: msg_4b71d12c86d94e719c7e3984a7bb7941
                      status: completed
                      role: assistant
                      content:
                      - type: output_text
                        text: Hello there, how may I assist you today?
                    usage:
                      input_tokens: 9
                      input_tokens_details:
                        cached_tokens: 0
                      output_tokens: 11
                      output_tokens_details:
                        reasoning_tokens: 0
                      total_tokens: 20
        '422':
          description: Unprocessable Entity
      x-speakeasy-name-override: responses
      x-mint:
        metadata:
          title: Container Responses
          sidebarTitle: Responses
          og:title: Container Responses
          description: Generate a model response from text or image inputs. Follows the OpenAI Responses API format, with support for streaming, function and custom tool calls, structured outputs, and reasoning controls.
          og:description: Generate a model response from text or image inputs. Follows the OpenAI Responses API format, with support for streaming, function and custom tool calls, structured outputs, and reasoning controls.
          tag: Beta
        href: /openapi/container/responses
        content: 'Generate a model response from text or image inputs. Follows the OpenAI Responses API format, with support for streaming, function and custom tool calls, structured outputs, and reasoning controls.


          When streaming mode is used (i.e., `stream` option is set to `true`), the response is in MIME type `text/event-stream`. Otherwise, the content type is `application/json`.

          You can view the schema of the streamed sequence of chunk objects in streaming mode [here](/openapi/container/responses-chunk-object).


          <Info>

          This API is currently in **Beta**.

          While we strive to provide a stable and reliable experience, this feature is still under active development.

          As a result, you may encounter unexpected behavior or limitations.

          We encourage you to provide feedback to help us improve the feature before its official release.


          - [Feature request & feedback](mailto:support@friendli.ai)

          - [Contact support](mailto:support@friendli.ai)


          </Info>'
  /v1/responses#stream:
    servers:
    - url: http://localhost:8000
    post:
      tags:
      - Container.Responses
      summary: Stream responses
      description: Generate a model response from text or image inputs. Follows the OpenAI Responses API format, with support for streaming, function and custom tool calls, structured outputs, and reasoning controls.
      operationId: containerResponsesStream
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContainerResponsesStreamBody'
        required: true
      responses:
        '200':
          description: Successfully generated a streamed response.
          content:
            text/event-stream:
              examples:
                Example:
                  value: 'event: response.created

                    data: {"type":"response.created","response":{"id":"resp_4b71d12c86d94e719c7e3984a7bb7941","object":"response","created_at":1735722153,"status":"in_progress","output":[]},"sequence_number":0}


                    event: response.output_item.added

                    data: {"type":"response.output_item.added","output_index":0,"item":{"type":"message","id":"msg_4b71d12c86d94e719c7e3984a7bb7941","status":"in_progress","role":"assistant","content":[]},"sequence_number":1}


                    event: response.content_part.added

                    data: {"type":"response.content_part.added","item_id":"msg_4b71d12c86d94e719c7e3984a7bb7941","output_index":0,"content_index":0,"part":{"type":"output_text","text":""},"sequence_number":2}


                    event: response.output_text.delta

                    data: {"type":"response.output_text.delta","item_id":"msg_4b71d12c86d94e719c7e3984a7bb7941","output_index":0,"content_index":0,"delta":"Hello","sequence_number":3}


                    ...


                    event: response.output_text.done

                    data: {"type":"response.output_text.done","item_id":"msg_4b71d12c86d94e719c7e3984a7bb7941","output_index":0,"content_index":0,"text":"Hello there, how may I assist you today?","sequence_number":8}


                    event: response.content_part.done

                    data: {"type":"response.content_part.done","item_id":"msg_4b71d12c86d94e719c7e3984a7bb7941","output_index":0,"content_index":0,"part":{"type":"output_text","text":"Hello there, how may I assist you today?"},"sequence_number":9}


                    event: response.output_item.done

                    data: {"type":"response.output_item.done","output_index":0,"item":{"type":"message","id":"msg_4b71d12c86d94e719c7e3984a7bb7941","status":"completed","role":"assistant","content":[{"type":"output_text","text":"Hello there, how may I assist you today?"}]},"sequence_number":10}


                    event: response.completed

                    data: {"type":"response.completed","response":{"id":"resp_4b71d12c86d94e719c7e3984a7bb7941","object":"response","created_at":1735722153,"status":"completed","output":[{"type":"message","id":"msg_4b71d12c86d94e719c7e3984a7bb7941","status":"completed","role":"assistant","content":[{"type":"output_text","text":"Hello there, how may I assist you today?"}]}],"usage":{"input_tokens":9,"input_tokens_details":{"cached_tokens":0},"output_tokens":11,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":20}},"sequence_number":11}

                    '
              schema:
                $ref: '#/components/schemas/ContainerResponsesStreamSuccess'
        '422':
          description: Unprocessable Entity
      x-speakeasy-name-override: stream
      x-mint:
        metadata:
          title: Container Stream Responses
          sidebarTitle: Stream Responses
          og:title: Container Stream Responses
          description: Generate a model response from text or image inputs. Follows the OpenAI Responses API format, with support for streaming, function and custom tool calls, structured outputs, and reasoning controls.
          og:description: Generate a model response from text or image inputs. Follows the OpenAI Responses API format, with support for streaming, function and custom tool calls, structured outputs, and reasoning controls.
          tag: Beta
        content: 'Generate a model response from text or image inputs. Follows the OpenAI Responses API format, with support for streaming, function and custom tool calls, structured outputs, and reasoning controls.


          When streaming mode is used (i.e., `stream` option is set to `true`), the response is in MIME type `text/event-stream`. Otherwise, the content type is `application/json`.

          You can view the schema of the streamed sequence of chunk objects in streaming mode [here](/openapi/container/responses-chunk-object).


          <Info>

          This API is currently in **Beta**.

          While we strive to provide a stable and reliable experience, this feature is still under active development.

          As a result, you may encounter unexpected behavior or limitations.

          We encourage you to provide feedback to help us improve the feature before its official release.


          - [Feature request & feedback](mailto:support@friendli.ai)

          - [Contact support](mailto:support@friendli.ai)


          </Info>'
components:
  schemas:
    ResponsesTextFormat:
      oneOf:
      - $ref: '#/components/schemas/ResponsesTextFormatText'
        title: Text
      - $ref: '#/components/schemas/ResponsesTextFormatJsonSchema'
        title: JSON Schema
      - $ref: '#/components/schemas/ResponsesTextFormatJsonObject'
        title: JSON Object
      discriminator:
        propertyName: type
        mapping:
          json_object: '#/components/schemas/ResponsesTextFormatJsonObject'
          json_schema: '#/components/schemas/ResponsesTextFormatJsonSchema'
          text: '#/components/schemas/ResponsesTextFormatText'
    ResponsesStreamFunctionCallArgumentsDelta:
      properties:
        type:
          type: string
          const: response.function_call_arguments.delta
          title: Type
          description: The type of the event.
        item_id:
          type: string
          title: Item Id
          description: The ID of the output item.
        output_index:
          type: integer
          title: Output Index
          description: The index of the output item.
        delta:
          type: string
          title: Delta
          description: The function-call arguments delta that is added.
        sequence_number:
          type: integer
          title: Sequence Number
          description: The sequence number for this event.
      type: object
      required:
      - type
      - item_id
      - output_index
      - delta
      - sequence_number
      title: ResponsesStreamFunctionCallArgumentsDelta
    ResponsesStreamOutputTextDelta:
      properties:
        type:
          type: string
          const: response.output_text.delta
          title: Type
          description: The type of the event.
        item_id:
          type: string
          title: Item Id
          description: The ID of the output item.
        output_index:
          type: integer
          title: Output Index
          description: The index of the output item.
        content_index:
          type: integer
          title: Content Index
          description: The index of the content part within the output item.
        delta:
          type: string
          title: Delta
          description: The text delta that was added.
        sequence_number:
          type: integer
          title: Sequence Number
          description: The sequence number for this event.
      type: object
      required:
      - type
      - item_id
      - output_index
      - content_index
      - delta
      - sequence_number
      title: ResponsesStreamOutputTextDelta
    ResponsesStreamOutputItemDone:
      properties:
        type:
          type: string
          const: response.output_item.done
          title: Type
          description: The type of the event.
        output_index:
          type: integer
          title: Output Index
          description: The index of the output item that was marked done.
        item:
          $ref: '#/components/schemas/ResponsesOutputItem'
          description: The completed output item.
        sequence_number:
          type: integer
          title: Sequence Number
          description: The sequence number for this event.
      type: object
      required:
      - type
      - output_index
      - item
      - sequence_number
      title: ResponsesStreamOutputItemDone
    ResponsesStreamContentPartAdded:
      properties:
        type:
          type: string
          const: response.content_part.added
          title: Type
          description: The type of the event.
        item_id:
          type: string
          title: Item Id
          description: The ID of the output item the content part was added to.
        output_index:
          type: integer
          title: Output Index
          description: The index of the output item.
        content_index:
          type: integer
          title: Content Index
          description: The index of the content part within the output item.
        part:
          $ref: '#/components/schemas/ResponsesContentPart'
          description: The content part that was added.
        sequence_number:
          type: integer
          title: Sequence Number
          description: The sequence number for this event.
      type: object
      required:
      - type
      - item_id
      - output_index
      - content_index
      - part
      - sequence_number
      title: ResponsesStreamContentPartAdded
    ResponsesReasoningSummaryText:
      properties:
        type:
          type: string
          const: summary_text
          title: Type
          description: The type of the object. Always `summary_text`.
        text:
          type: string
          title: Text
          description: A summary of the reasoning output from the model so far.
      type: object
      required:
      - type
      - text
      title: ResponsesReasoningSummaryText
    ResponsesReasoningItem:
      properties:
        type:
          type: string
          const: reasoning
          title: Type
          description: The type of the object. Always `reasoning`.
        id:
          type: string
          title: Id
          description: The unique identifier of the reasoning content.
        summary:
          items:
            $ref: '#/components/schemas/ResponsesReasoningSummaryText'
          type: array
          title: Summary
          description: Reasoning summary content.
        content:
          anyOf:
          - items:
              $ref: '#/components/schemas/ResponsesReasoningText'
            type: array
          - type: 'null'
          title: Content
          description: Reasoning text content.
        status:
          anyOf:
          - type: string
            enum:
            - in_progress
            - completed
            - incomplete
          - type: 'null'
          title: Status
          description: The status of the item. One of `in_progress`, `completed`, or `incomplete`.
      type: object
      required:
      - type
      - id
      - summary
      title: ResponsesReasoningItem
    ResponsesFunctionCallOutputContent:
      oneOf:
      - $ref: '#/components/schemas/ResponsesInputText'
        title: Input Text
      - $ref: '#/components/schemas/ResponsesInputImage'
        title: Input Image
      discriminator:
        propertyName: type
        mapping:
          input_image: '#/components/schemas/ResponsesInputImage'
          input_text: '#/components/schemas/ResponsesInputText'
    ResponsesOutputItem:
      oneOf:
      - $ref: '#/components/schemas/ResponsesOutputMessage'
        title: Message
      - $ref: '#/components/schemas/ResponsesReasoningItem'
        title: Reasoning
      - $ref: '#/components/schemas/ResponsesFunctionCall'
        title: Function Tool Call
      discriminator:
        propertyName: type
        mapping:
          function_call: '#/components/schemas/ResponsesFunctionCall'
          message: '#/components/schemas/ResponsesOutputMessage'
          reasoning: '#/components/schemas/ResponsesReasoningItem'
    ResponsesStreamEvent:
      oneOf:
      - $ref: '#/components/schemas/ResponsesStreamResponseEvent'
        title: Response
      - $ref: '#/components/schemas/ResponsesStreamOutputItemAdded'
        title: Output Item Added
      - $ref: '#/components/schemas/ResponsesStreamOutputItemDone'
        title: Output Item Done
      - $ref: '#/components/schemas/ResponsesStreamContentPartAdded'
        title: Content Part Added
      - $ref: '#/components/schemas/ResponsesStreamContentPartDone'
        title: Content Part Done
      - $ref: '#/components/schemas/ResponsesStreamOutputTextDelta'
        title: Output Text Delta
      - $ref: '#/components/schemas/ResponsesStreamOutputTextDone'
        title: Output Text Done
      - $ref: '#/components/schemas/ResponsesStreamReasoningTextDelta'
        title: Reasoning Text Delta
      - $ref: '#/components/schemas/ResponsesStreamReasoningTextDone'
        title: Reasoning Text Done
      - $ref: '#/components/schemas/ResponsesStreamFunctionCallArgumentsDelta'
        title: Function Call Arguments Delta
      - $ref: '#/components/schemas/ResponsesStreamFunctionCallArgumentsDone'
        title: Function Call Arguments Done
      discriminator:
        propertyName: type
        mapping:
          response.completed: '#/components/schemas/ResponsesStreamResponseEvent'
          response.content_part.added: '#/components/schemas/ResponsesStreamContentPartAdded'
          response.content_part.done: '#/components/schemas/ResponsesStreamContentPartDone'
          response.created: '#/components/schemas/ResponsesStreamResponseEvent'
          response.failed: '#/components/schemas/ResponsesStreamResponseEvent'
          response.function_call_arguments.delta: '#/components/schemas/ResponsesStreamFunctionCallArgumentsDelta'
          response.function_call_arguments.done: '#/components/schemas/ResponsesStreamFunctionCallArgumentsDone'
          response.in_progress: '#/components/schemas/ResponsesStreamResponseEvent'
          response.incomplete: '#/components/schemas/ResponsesStreamResponseEvent'
          response.output_item.added: '#/components/schemas/ResponsesStreamOutputItemAdded'
          response.output_item.done: '#/components/schemas/ResponsesStreamOutputItemDone'
          response.output_text.delta: '#/components/schemas/ResponsesStreamOutputTextDelta'
          response.output_text.done: '#/components/schemas/ResponsesStreamOutputTextDone'
          response.reasoning_text.delta: '#/components/schemas/ResponsesStreamReasoningTextDelta'
          response.reasoning_text.done: '#/components/schemas/ResponsesStreamReasoningTextDone'
    ResponsesFunctionCall:
      properties:
        type:
          type: string
          const: function_call
          title: Type
          description: The type of the function tool call. Always `function_call`.
        call_id:
          type: string
          title: Call Id
          description: The unique ID of the function tool call generated by the model.
        name:
          type: string
          title: Name
          description: The name of the function to run.
        arguments:
          type: string
          title: Arguments
          description: A JSON string of the arguments to pass to the function.
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
          description: The unique ID of the function tool call.
        status:
          anyOf:
          - type: string
            enum:
            - in_progress
            - completed
            - incomplete
          - type: 'null'
          title: Status
          description: The status of the item. One of `in_progress`, `completed`, or `incomplete`.
      type: object
      required:
      - type
      - call_id
      - name
      - arguments
      title: ResponsesFunctionCall
    ResponsesFunctionTool:
      properties:
        type:
          type: string
          const: function
          title: Type
          description: The type of the function tool. Always `function`.
        name:
          type: string
          title: Name
          description: The name of the function to call.
        parameters:
          additionalProperties: true
          type: object
          title: Parameters
          description: A JSON schema object describing the parameters of the function.
        strict:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Strict
          description: Whether to enforce strict parameter validation. Default `true`.
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: A description of the function. Used by the model to determine whether or not to call the function.
      type: object
      required:
      - type
      - name
      - parameters
      title: ResponsesFunctionTool
    ResponsesInputText:
      properties:
        type:
          type: string
          const: input_text
          title: Type
          description: The type of the input item. Always `input_text`.
        text:
          type: string
          title: Text
          description: The text input to the model.
      type: object
      required:
      - type
      - text
      title: ResponsesInputText
    ResponsesSuccess:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for this response.
        object:
          type: string
          const: response
          title: Object
          description: The object type of this resource - always set to `response`.
        created_at:
          type: integer
          title: Created At
          description: Unix timestamp (in seconds) of when this response was created.
        error:
          anyOf:
          - $ref: '#/components/schemas/ResponsesError'
          - type: 'null'
          description: An error object returned when the model fails to generate a Response.
        status:
          anyOf:
          - type: string
            enum:
            - completed
            - failed
            - in_progress
            - cancelled
            - queued
            - incomplete
          - type: 'null'
          title: Status
          description: The status of the response generation. One of `completed`, `failed`, `in_progress`, `cancelled`, `queued`, or `incomplete`.
        output:
          items:
            $ref: '#/components/schemas/ResponsesOutputItem'
          type: array
          title: Output
          description: An array of content items generated by the model.
        usage:
          anyOf:
          - $ref: '#/components/schemas/ResponsesUsage'
          - type: 'null'
          description: Represents token usage details including input tokens, output tokens, a breakdown of output tokens, and the total tokens used.
        incomplete_details:
          anyOf:
          - $ref: '#/components/schemas/ResponsesIncompleteDetails'
          - type: 'null'
          description: Details about why the response is incomplete.
        model:
          anyOf:
          - type: string
          - type: 'null'
          title: Model
          description: Model ID used to generate the response.
      additionalProperties: true
      type: object
      required:
      - id
      - object
      - created_at
      - output
      title: ResponsesSuccess
    ResponsesTextConfig:
      properties:
        format:
          anyOf:
          - $ref: '#/components/schemas/ResponsesTextFormat'
          - type: 'null'
          description: 'An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs. The default format is `{ "type": "text" }`.'
      type: object
      title: ResponsesTextConfig
    ResponsesRefusal:
      properties:
        type:
          type: string
          const: refusal
          title: Type
          description: The type of the refusal. Always `refusal`.
        refusal:
          type: string
          title: Refusal
          description: The refusal explanation from the model.
      type: object
      required:
      - type
      - refusal
      title: ResponsesRefusal
    ResponsesStreamFunctionCallArgumentsDone:
      properties:
        type:
          type: string
          const: response.function_call_arguments.done
          title: Type
          description: The type of the event.
        item_id:
          type: string
          title: Item Id
          description: The ID of the output item.
        output_index:
          type: integer
          title: Output Index
          description: The index of the output item.
        arguments:
          type: string
          title: Arguments
          description: The function-call arguments.
        name:
          type: string
          title: Name
          description: The name of the function that was called.
        sequence_number:
          type: integer
          title: Sequence Number
          description: The sequence number for this event.
      type: object
      required:
      - type
      - item_id
      - output_index
      - arguments
      - name
      - sequence_number
      title: ResponsesStreamFunctionCallArgumentsDone
    ResponsesTextFormatJsonSchema:
      properties:
        type:
          type: string
          const: json_schema
          title: Type
          description: The type of response format being defined. Always `json_schema`.
        name:
          type: string
          title: Name
          description: The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.
        schema:
          additionalProperties: true
          type: object
          title: Schema
          description: The schema for the response format, described as a JSON Schema object.
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: A description of what the response format is for, used by the model to determine how to respond in the format.
        strict:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Strict
          description: Whether to enable strict schema adherence when generating the output. If set to true, the model will always follow the exact schema defined in the `schema` field. Only a subset of JSON Schema is supported when `strict` is `true`.
      type: object
      required:
      - type
      - name
      - schema
      title: ResponsesTextFormatJsonSchema
    ResponsesStreamReasoningTextDelta:
      properties:
        type:
          type: string
          const: response.reasoning_text.delta
          title: Type
          description: The type of the event.
        item_id:
          type: string
          title: Item Id
          description: The ID of the reasoning output item.
        output_index:
          type: integer
          title: Output Index
          description: The index of the output item.
        content_index:
          type: integer
          title: Content Index
          description: The index of the reasoning content part.
        delta:
          type: string
          title: Delta
          description: The text delta that was added to the reasoning content.
        sequence_number:
          type: integer
          title: Sequence Number
          description: The sequence number for this event.
      type: object
      required:
      - type
      - item_id
      - output_index
      - content_index
      - delta
      - sequence_number
      title: ResponsesStreamReasoningTextDelta
    ResponsesTextFormatJsonObject:
      properties:
        type:
          type: string
          const: json_object
          title: Type
          description: The type of response format being defined. Always `json_object`.
      type: object
      required:
      - type
      title: ResponsesTextFormatJsonObject
    ResponsesCustomToolCallOutputContent:
      oneOf:
      - $ref: '#/components/schemas/ResponsesInputText'
        title: Input Text
      - $ref: '#/components/schemas/ResponsesInputImage'
        title: Input Image
      discriminator:
        propertyName: type
        mapping:
          input_image: '#/components/schemas/ResponsesInputImage'
          input_text: '#/components/schemas/ResponsesInputText'
    ResponsesReasoningConfig:
      properties:
        effort:
          anyOf:
          - type: string
            enum:
            - none
            - minimal
            - low
            - medium
            - high
            - xhigh
            - max
            - ultracode
          - type: 'null'
          title: Effort
          description: Constrains effort on reasoning for reasoning models. Currently supported values are `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, `max`, and `ultracode`. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response.
      type: object
      title: ResponsesReasoningConfig
    ResponsesStreamOutputTextDone:
      properties:
        type:
          type: string
          const: response.output_text.done
          title: Type
          description: The type of the event.
        item_id:
          type: string
          title: Item Id
          description: The ID of the output item.
        output_index:
          type: integer
          title: Output Index
          description: The index of the output item.
        content_index:
          type: integer
          title: Content Index
          description: The index of the content part within the output item.
        text:
          type: string
          title: Text
          description: The text content that was added.
        sequence_number:
          type: integer
          title: Sequence Number
          description: The sequence number for this event.
      type: object
      required:
      - type
      - item_id
      - output_index
      - content_index
      - text
      - sequence_number
      title: ResponsesStreamOutputTextDone
    ResponsesInputTokensDetails:
      properties:
        cached_tokens:
          type: integer
          title: Cached Tokens
          description: The number of tokens that were retrieved from the cache.
      type: object
      required:
      - cached_tokens
      title: ResponsesInputTokensDetails
    ResponsesOutputTokensDetails:
      properties:
        reasoning_tokens:
          type: integer
          title: Reasoning Tokens
          description: The number of reasoning tokens.
      type: object
      required:
      - reasoning_tokens
      title: ResponsesOutputTokensDetails
    ResponsesCustomTool:
      properties:
        type:
          type: string
          const: custom
          title: Type
          description: The type of the custom tool. Always `custom`.
        name:
          type: string
          title: Name
          description: The name of the custom tool, used to identify it in tool calls.
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Optional description of the custom tool, used to provide more context.
      type: object
      required:
      - type
      - name
      title: ResponsesCustomTool
    ResponsesInputMessage:
      properties:
        role:
          type: string
          enum:
          - user
          - assistant
          - system
          - developer
          title: Role
          description: The role of the message input. One of `user`, `assistant`, `system`, or `developer`.
        content:
          anyOf:
          - type: string
          - items:
              $ref: '#/components/schemas/ResponsesContentBlock'
            type: array
          title: Content
          description: Text or image input to the model. Can also contain previous assistant responses.
        type:
          anyOf:
          - type: string
            const: message
          - type: 'null'
          title: Type
          description: The type of the message input. Always `message`.
      type: object
      required:
      - role
      - content
      title: ResponsesInputMessage
    ResponsesTool:
      oneOf:
      - $ref: '#/components/schemas/ResponsesFunctionTool'
        title: F

# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/friendliai/refs/heads/main/openapi/friendliai-container-responses-api-openapi.yml