> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.vapi.ai/llms.txt.
> For full documentation content, see https://docs.vapi.ai/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.vapi.ai/_mcp/server.

# List Structured Outputs

GET https://api.vapi.ai/structured-output

Reference: https://docs.vapi.ai/api-reference/structured-outputs/structured-output-controller-find-all

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: api
  version: 1.0.0
paths:
  /structured-output:
    get:
      operationId: structured-output-controller-find-all
      summary: List Structured Outputs
      tags:
        - subpackage_structuredOutputs
      parameters:
        - name: id
          in: query
          description: >-
            This will return structured outputs where the id matches the
            specified value.
          required: false
          schema:
            type: string
        - name: name
          in: query
          description: >-
            This will return structured outputs where the name matches the
            specified value.
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: This is the page number to return. Defaults to 1.
          required: false
          schema:
            type: number
            format: double
        - name: sortOrder
          in: query
          description: This is the sort order for pagination. Defaults to 'DESC'.
          required: false
          schema:
            $ref: '#/components/schemas/StructuredOutputGetParametersSortOrder'
        - name: limit
          in: query
          description: This is the maximum number of items to return. Defaults to 100.
          required: false
          schema:
            type: number
            format: double
        - name: createdAtGt
          in: query
          description: >-
            This will return items where the createdAt is greater than the
            specified value.
          required: false
          schema:
            type: string
            format: date-time
        - name: createdAtLt
          in: query
          description: >-
            This will return items where the createdAt is less than the
            specified value.
          required: false
          schema:
            type: string
            format: date-time
        - name: createdAtGe
          in: query
          description: >-
            This will return items where the createdAt is greater than or equal
            to the specified value.
          required: false
          schema:
            type: string
            format: date-time
        - name: createdAtLe
          in: query
          description: >-
            This will return items where the createdAt is less than or equal to
            the specified value.
          required: false
          schema:
            type: string
            format: date-time
        - name: updatedAtGt
          in: query
          description: >-
            This will return items where the updatedAt is greater than the
            specified value.
          required: false
          schema:
            type: string
            format: date-time
        - name: updatedAtLt
          in: query
          description: >-
            This will return items where the updatedAt is less than the
            specified value.
          required: false
          schema:
            type: string
            format: date-time
        - name: updatedAtGe
          in: query
          description: >-
            This will return items where the updatedAt is greater than or equal
            to the specified value.
          required: false
          schema:
            type: string
            format: date-time
        - name: updatedAtLe
          in: query
          description: >-
            This will return items where the updatedAt is less than or equal to
            the specified value.
          required: false
          schema:
            type: string
            format: date-time
        - name: Authorization
          in: header
          description: Retrieve your API Key from [Dashboard](dashboard.vapi.ai).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StructuredOutputPaginatedResponse'
servers:
  - url: https://api.vapi.ai
components:
  schemas:
    StructuredOutputGetParametersSortOrder:
      type: string
      enum:
        - ASC
        - DESC
      title: StructuredOutputGetParametersSortOrder
    StructuredOutputType:
      type: string
      enum:
        - ai
        - regex
      description: >-
        This is the type of structured output.


        - 'ai': Uses an LLM to extract structured data from the conversation
        (default).

        - 'regex': Uses a regex pattern to extract data from the transcript
        without an LLM.
      title: StructuredOutputType
    WorkflowOpenAiModelProvider:
      type: string
      enum:
        - openai
      description: This is the provider of the model (`openai`).
      title: WorkflowOpenAiModelProvider
    WorkflowOpenAiModelModel:
      type: string
      enum:
        - gpt-5.4
        - gpt-5.4-mini
        - gpt-5.4-nano
        - gpt-5.2
        - gpt-5.2-chat-latest
        - gpt-5.1
        - gpt-5.1-chat-latest
        - gpt-5
        - gpt-5-chat-latest
        - gpt-5-mini
        - gpt-5-nano
        - gpt-4.1-2025-04-14
        - gpt-4.1-mini-2025-04-14
        - gpt-4.1-nano-2025-04-14
        - gpt-4.1
        - gpt-4.1-mini
        - gpt-4.1-nano
        - chatgpt-4o-latest
        - o3
        - o3-mini
        - o4-mini
        - o1-mini
        - o1-mini-2024-09-12
        - gpt-4o-mini-2024-07-18
        - gpt-4o-mini
        - gpt-4o
        - gpt-4o-2024-05-13
        - gpt-4o-2024-08-06
        - gpt-4o-2024-11-20
        - gpt-4-turbo
        - gpt-4-turbo-2024-04-09
        - gpt-4-turbo-preview
        - gpt-4-0125-preview
        - gpt-4-1106-preview
        - gpt-4
        - gpt-4-0613
        - gpt-3.5-turbo
        - gpt-3.5-turbo-0125
        - gpt-3.5-turbo-1106
        - gpt-3.5-turbo-16k
        - gpt-3.5-turbo-0613
        - gpt-4.1-2025-04-14:westus
        - gpt-4.1-2025-04-14:eastus2
        - gpt-4.1-2025-04-14:eastus
        - gpt-4.1-2025-04-14:westus3
        - gpt-4.1-2025-04-14:northcentralus
        - gpt-4.1-2025-04-14:southcentralus
        - gpt-4.1-2025-04-14:westeurope
        - gpt-4.1-2025-04-14:germanywestcentral
        - gpt-4.1-2025-04-14:polandcentral
        - gpt-4.1-2025-04-14:spaincentral
        - gpt-4.1-mini-2025-04-14:westus
        - gpt-4.1-mini-2025-04-14:eastus2
        - gpt-4.1-mini-2025-04-14:eastus
        - gpt-4.1-mini-2025-04-14:westus3
        - gpt-4.1-mini-2025-04-14:northcentralus
        - gpt-4.1-mini-2025-04-14:southcentralus
        - gpt-4.1-mini-2025-04-14:westeurope
        - gpt-4.1-mini-2025-04-14:germanywestcentral
        - gpt-4.1-mini-2025-04-14:polandcentral
        - gpt-4.1-mini-2025-04-14:spaincentral
        - gpt-4.1-nano-2025-04-14:westus
        - gpt-4.1-nano-2025-04-14:eastus2
        - gpt-4.1-nano-2025-04-14:westus3
        - gpt-4.1-nano-2025-04-14:northcentralus
        - gpt-4.1-nano-2025-04-14:southcentralus
        - gpt-4o-2024-11-20:swedencentral
        - gpt-4o-2024-11-20:westus
        - gpt-4o-2024-11-20:eastus2
        - gpt-4o-2024-11-20:eastus
        - gpt-4o-2024-11-20:westus3
        - gpt-4o-2024-11-20:southcentralus
        - gpt-4o-2024-11-20:westeurope
        - gpt-4o-2024-11-20:germanywestcentral
        - gpt-4o-2024-11-20:polandcentral
        - gpt-4o-2024-11-20:spaincentral
        - gpt-4o-2024-08-06:westus
        - gpt-4o-2024-08-06:westus3
        - gpt-4o-2024-08-06:eastus
        - gpt-4o-2024-08-06:eastus2
        - gpt-4o-2024-08-06:northcentralus
        - gpt-4o-2024-08-06:southcentralus
        - gpt-4o-mini-2024-07-18:westus
        - gpt-4o-mini-2024-07-18:westus3
        - gpt-4o-mini-2024-07-18:eastus
        - gpt-4o-mini-2024-07-18:eastus2
        - gpt-4o-mini-2024-07-18:northcentralus
        - gpt-4o-mini-2024-07-18:southcentralus
        - gpt-4o-2024-05-13:eastus2
        - gpt-4o-2024-05-13:eastus
        - gpt-4o-2024-05-13:northcentralus
        - gpt-4o-2024-05-13:southcentralus
        - gpt-4o-2024-05-13:westus3
        - gpt-4o-2024-05-13:westus
        - gpt-4-turbo-2024-04-09:eastus2
        - gpt-4-0125-preview:eastus
        - gpt-4-0125-preview:northcentralus
        - gpt-4-0125-preview:southcentralus
        - gpt-4-1106-preview:australiaeast
        - gpt-4-1106-preview:canadaeast
        - gpt-4-1106-preview:france
        - gpt-4-1106-preview:india
        - gpt-4-1106-preview:norway
        - gpt-4-1106-preview:swedencentral
        - gpt-4-1106-preview:uk
        - gpt-4-1106-preview:westus
        - gpt-4-1106-preview:westus3
        - gpt-4-0613:canadaeast
        - gpt-3.5-turbo-0125:canadaeast
        - gpt-3.5-turbo-0125:northcentralus
        - gpt-3.5-turbo-0125:southcentralus
        - gpt-3.5-turbo-1106:canadaeast
        - gpt-3.5-turbo-1106:westus
      description: >-
        This is the OpenAI model that will be used.


        When using Vapi OpenAI or your own Azure Credentials, you have the
        option to specify the region for the selected model. This shouldn't be
        specified unless you have a specific reason to do so. Vapi will
        automatically find the fastest region that make sense.

        This is helpful when you are required to comply with Data Residency
        rules. Learn more about Azure regions here
        https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/.
      title: WorkflowOpenAiModelModel
    WorkflowOpenAIModel:
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/WorkflowOpenAiModelProvider'
          description: This is the provider of the model (`openai`).
        model:
          $ref: '#/components/schemas/WorkflowOpenAiModelModel'
          description: >-
            This is the OpenAI model that will be used.


            When using Vapi OpenAI or your own Azure Credentials, you have the
            option to specify the region for the selected model. This shouldn't
            be specified unless you have a specific reason to do so. Vapi will
            automatically find the fastest region that make sense.

            This is helpful when you are required to comply with Data Residency
            rules. Learn more about Azure regions here
            https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/.
        temperature:
          type: number
          format: double
          description: This is the temperature of the model.
        maxTokens:
          type: number
          format: double
          description: This is the max tokens of the model.
      required:
        - provider
        - model
      title: WorkflowOpenAIModel
    WorkflowAnthropicModelProvider:
      type: string
      enum:
        - anthropic
      description: This is the provider of the model (`anthropic`).
      title: WorkflowAnthropicModelProvider
    WorkflowAnthropicModelModel:
      type: string
      enum:
        - claude-3-opus-20240229
        - claude-3-sonnet-20240229
        - claude-3-haiku-20240307
        - claude-3-5-sonnet-20240620
        - claude-3-5-sonnet-20241022
        - claude-3-5-haiku-20241022
        - claude-3-7-sonnet-20250219
        - claude-opus-4-20250514
        - claude-opus-4-5-20251101
        - claude-opus-4-6
        - claude-sonnet-4-20250514
        - claude-sonnet-4-5-20250929
        - claude-sonnet-4-6
        - claude-haiku-4-5-20251001
      description: This is the specific model that will be used.
      title: WorkflowAnthropicModelModel
    AnthropicThinkingConfigType:
      type: string
      enum:
        - enabled
      title: AnthropicThinkingConfigType
    AnthropicThinkingConfig:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/AnthropicThinkingConfigType'
        budgetTokens:
          type: number
          format: double
          description: |-
            The maximum number of tokens to allocate for thinking.
            Must be between 1024 and 100000 tokens.
      required:
        - type
        - budgetTokens
      title: AnthropicThinkingConfig
    WorkflowAnthropicModel:
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/WorkflowAnthropicModelProvider'
          description: This is the provider of the model (`anthropic`).
        model:
          $ref: '#/components/schemas/WorkflowAnthropicModelModel'
          description: This is the specific model that will be used.
        thinking:
          $ref: '#/components/schemas/AnthropicThinkingConfig'
          description: >-
            This is the optional configuration for Anthropic's thinking feature.


            - If provided, `maxTokens` must be greater than
            `thinking.budgetTokens`.
        temperature:
          type: number
          format: double
          description: This is the temperature of the model.
        maxTokens:
          type: number
          format: double
          description: This is the max tokens of the model.
      required:
        - provider
        - model
      title: WorkflowAnthropicModel
    WorkflowAnthropicBedrockModelProvider:
      type: string
      enum:
        - anthropic-bedrock
      description: This is the provider of the model (`anthropic-bedrock`).
      title: WorkflowAnthropicBedrockModelProvider
    WorkflowAnthropicBedrockModelModel:
      type: string
      enum:
        - claude-3-opus-20240229
        - claude-3-sonnet-20240229
        - claude-3-haiku-20240307
        - claude-3-5-sonnet-20240620
        - claude-3-5-sonnet-20241022
        - claude-3-5-haiku-20241022
        - claude-3-7-sonnet-20250219
        - claude-opus-4-20250514
        - claude-opus-4-5-20251101
        - claude-opus-4-6
        - claude-sonnet-4-20250514
        - claude-sonnet-4-5-20250929
        - claude-sonnet-4-6
        - claude-haiku-4-5-20251001
      description: This is the specific model that will be used.
      title: WorkflowAnthropicBedrockModelModel
    WorkflowAnthropicBedrockModel:
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/WorkflowAnthropicBedrockModelProvider'
          description: This is the provider of the model (`anthropic-bedrock`).
        model:
          $ref: '#/components/schemas/WorkflowAnthropicBedrockModelModel'
          description: This is the specific model that will be used.
        thinking:
          $ref: '#/components/schemas/AnthropicThinkingConfig'
          description: >-
            This is the optional configuration for Anthropic's thinking feature.


            - If provided, `maxTokens` must be greater than
            `thinking.budgetTokens`.
        temperature:
          type: number
          format: double
          description: This is the temperature of the model.
        maxTokens:
          type: number
          format: double
          description: This is the max tokens of the model.
      required:
        - provider
        - model
      title: WorkflowAnthropicBedrockModel
    WorkflowGoogleModelProvider:
      type: string
      enum:
        - google
      description: This is the provider of the model (`google`).
      title: WorkflowGoogleModelProvider
    WorkflowGoogleModelModel:
      type: string
      enum:
        - gemini-3-flash-preview
        - gemini-2.5-pro
        - gemini-2.5-flash
        - gemini-2.5-flash-lite
        - gemini-2.0-flash-thinking-exp
        - gemini-2.0-pro-exp-02-05
        - gemini-2.0-flash
        - gemini-2.0-flash-lite
        - gemini-2.0-flash-exp
        - gemini-2.0-flash-realtime-exp
        - gemini-1.5-flash
        - gemini-1.5-flash-002
        - gemini-1.5-pro
        - gemini-1.5-pro-002
        - gemini-1.0-pro
      description: >-
        This is the name of the model. Ex.
        cognitivecomputations/dolphin-mixtral-8x7b
      title: WorkflowGoogleModelModel
    WorkflowGoogleModel:
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/WorkflowGoogleModelProvider'
          description: This is the provider of the model (`google`).
        model:
          $ref: '#/components/schemas/WorkflowGoogleModelModel'
          description: >-
            This is the name of the model. Ex.
            cognitivecomputations/dolphin-mixtral-8x7b
        temperature:
          type: number
          format: double
          description: This is the temperature of the model.
        maxTokens:
          type: number
          format: double
          description: This is the max tokens of the model.
      required:
        - provider
        - model
      title: WorkflowGoogleModel
    WorkflowCustomModelProvider:
      type: string
      enum:
        - custom-llm
      description: This is the provider of the model (`custom-llm`).
      title: WorkflowCustomModelProvider
    WorkflowCustomModelMetadataSendMode:
      type: string
      enum:
        - 'off'
        - variable
        - destructured
      description: >-
        This determines whether metadata is sent in requests to the custom
        provider.


        - `off` will not send any metadata. payload will look like `{ messages
        }`

        - `variable` will send `assistant.metadata` as a variable on the
        payload. payload will look like `{ messages, metadata }`

        - `destructured` will send `assistant.metadata` fields directly on the
        payload. payload will look like `{ messages, ...metadata }`


        Further, `variable` and `destructured` will send `call`, `phoneNumber`,
        and `customer` objects in the payload.


        Default is `variable`.
      title: WorkflowCustomModelMetadataSendMode
    WorkflowCustomModelHeaders:
      type: object
      properties: {}
      description: These are the headers we'll use for the OpenAI client's `headers`.
      title: WorkflowCustomModelHeaders
    WorkflowCustomModel:
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/WorkflowCustomModelProvider'
          description: This is the provider of the model (`custom-llm`).
        metadataSendMode:
          $ref: '#/components/schemas/WorkflowCustomModelMetadataSendMode'
          description: >-
            This determines whether metadata is sent in requests to the custom
            provider.


            - `off` will not send any metadata. payload will look like `{
            messages }`

            - `variable` will send `assistant.metadata` as a variable on the
            payload. payload will look like `{ messages, metadata }`

            - `destructured` will send `assistant.metadata` fields directly on
            the payload. payload will look like `{ messages, ...metadata }`


            Further, `variable` and `destructured` will send `call`,
            `phoneNumber`, and `customer` objects in the payload.


            Default is `variable`.
        url:
          type: string
          description: >-
            These is the URL we'll use for the OpenAI client's `baseURL`. Ex.
            https://openrouter.ai/api/v1
        headers:
          $ref: '#/components/schemas/WorkflowCustomModelHeaders'
          description: These are the headers we'll use for the OpenAI client's `headers`.
        timeoutSeconds:
          type: number
          format: double
          description: >-
            This sets the timeout for the connection to the custom provider
            without needing to stream any tokens back. Default is 20 seconds.
        model:
          type: string
          description: >-
            This is the name of the model. Ex.
            cognitivecomputations/dolphin-mixtral-8x7b
        temperature:
          type: number
          format: double
          description: This is the temperature of the model.
        maxTokens:
          type: number
          format: double
          description: This is the max tokens of the model.
      required:
        - provider
        - url
        - model
      title: WorkflowCustomModel
    StructuredOutputModel:
      oneOf:
        - $ref: '#/components/schemas/WorkflowOpenAIModel'
        - $ref: '#/components/schemas/WorkflowAnthropicModel'
        - $ref: '#/components/schemas/WorkflowAnthropicBedrockModel'
        - $ref: '#/components/schemas/WorkflowGoogleModel'
        - $ref: '#/components/schemas/WorkflowCustomModel'
      description: >-
        This is the model that will be used to extract the structured output.


        To provide your own custom system and user prompts for structured output
        extraction, populate the messages array with your system and user
        messages. You can specify liquid templating in your system and user
        messages.

        Between the system or user messages, you must reference either
        'transcript' or 'messages' with the `{{}}` syntax to access the
        conversation history.

        Between the system or user messages, you must reference a variation of
        the structured output with the `{{}}` syntax to access the structured
        output definition.

        i.e.:

        `{{structuredOutput}}`

        `{{structuredOutput.name}}`

        `{{structuredOutput.description}}`

        `{{structuredOutput.schema}}`


        If model is not specified, GPT-4.1 will be used by default for
        extraction, utilizing default system and user prompts.

        If messages or required fields are not specified, the default system and
        user prompts will be used.
      title: StructuredOutputModel
    ComplianceOverride:
      type: object
      properties:
        forceStoreOnHipaaEnabled:
          type: boolean
          description: >-
            Force storage for this output under HIPAA. Only enable if output
            contains no sensitive data.
      title: ComplianceOverride
    JsonSchemaType:
      type: string
      enum:
        - string
        - number
        - integer
        - boolean
        - array
        - object
      description: >-
        This is the type of output you'd like.


        `string`, `number`, `integer`, `boolean` are the primitive types and
        should be obvious.


        `array` and `object` are more interesting and quite powerful. They allow
        you to define nested structures.


        For `array`, you can define the schema of the items in the array using
        the `items` property.


        For `object`, you can define the properties of the object using the
        `properties` property.
      title: JsonSchemaType
    JsonSchemaFormat:
      type: string
      enum:
        - date-time
        - time
        - date
        - duration
        - email
        - hostname
        - ipv4
        - ipv6
        - uuid
      description: >-
        This is the format of the string. To pass a regex, use the `pattern`
        property instead.


        OpenAI documentation:
        https://platform.openai.com/docs/guides/structured-outputs?api-mode=chat&type-restrictions=string-restrictions
      title: JsonSchemaFormat
    JsonSchema:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/JsonSchemaType'
          description: >-
            This is the type of output you'd like.


            `string`, `number`, `integer`, `boolean` are the primitive types and
            should be obvious.


            `array` and `object` are more interesting and quite powerful. They
            allow you to define nested structures.


            For `array`, you can define the schema of the items in the array
            using the `items` property.


            For `object`, you can define the properties of the object using the
            `properties` property.
        items:
          $ref: '#/components/schemas/JsonSchema'
          description: >-
            This is required if the type is "array". This is the schema of the
            items in the array. This is a recursive reference to JsonSchema.
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/JsonSchema'
          description: >-
            This is required if the type is "object". This specifies the
            properties of the object. This is a map of property names to
            JsonSchema objects.
        description:
          type: string
          description: >-
            This is the description to help the model understand what it needs
            to output.
        pattern:
          type: string
          description: >-
            This is the pattern of the string. This is a regex that will be used
            to validate the data in question. To use a common format, use the
            `format` property instead.


            OpenAI documentation:
            https://platform.openai.com/docs/guides/structured-outputs#supported-properties
        format:
          $ref: '#/components/schemas/JsonSchemaFormat'
          description: >-
            This is the format of the string. To pass a regex, use the `pattern`
            property instead.


            OpenAI documentation:
            https://platform.openai.com/docs/guides/structured-outputs?api-mode=chat&type-restrictions=string-restrictions
        required:
          type: array
          items:
            type: string
          description: |-
            This is a list of properties that are required.

            This only makes sense if the type is "object".
        enum:
          type: array
          items:
            type: string
          description: >-
            This array specifies the allowed values that can be used to restrict
            the output of the model.
        title:
          type: string
          description: This is the title of the schema.
      required:
        - type
      title: JsonSchema
    StructuredOutput:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/StructuredOutputType'
          description: >-
            This is the type of structured output.


            - 'ai': Uses an LLM to extract structured data from the conversation
            (default).

            - 'regex': Uses a regex pattern to extract data from the transcript
            without an LLM.
        regex:
          type: string
          description: >-
            This is the regex pattern to match against the transcript.


            Only used when type is 'regex'. Supports both raw patterns (e.g.
            '\d+') and

            regex literal format (e.g. '/\d+/gi'). Uses RE2 syntax for safety.


            The result depends on the schema type:

            - boolean: true if the pattern matches, false otherwise

            - string: the first match or first capture group

            - number/integer: the first match parsed as a number

            - array: all matches
        model:
          $ref: '#/components/schemas/StructuredOutputModel'
          description: >-
            This is the model that will be used to extract the structured
            output.


            To provide your own custom system and user prompts for structured
            output extraction, populate the messages array with your system and
            user messages. You can specify liquid templating in your system and
            user messages.

            Between the system or user messages, you must reference either
            'transcript' or 'messages' with the `{{}}` syntax to access the
            conversation history.

            Between the system or user messages, you must reference a variation
            of the structured output with the `{{}}` syntax to access the
            structured output definition.

            i.e.:

            `{{structuredOutput}}`

            `{{structuredOutput.name}}`

            `{{structuredOutput.description}}`

            `{{structuredOutput.schema}}`


            If model is not specified, GPT-4.1 will be used by default for
            extraction, utilizing default system and user prompts.

            If messages or required fields are not specified, the default system
            and user prompts will be used.
        compliancePlan:
          $ref: '#/components/schemas/ComplianceOverride'
          description: >-
            Compliance configuration for this output. Only enable overrides if
            no sensitive data will be stored.
        id:
          type: string
          description: This is the unique identifier for the structured output.
        orgId:
          type: string
          description: >-
            This is the unique identifier for the org that this structured
            output belongs to.
        createdAt:
          type: string
          format: date-time
          description: >-
            This is the ISO 8601 date-time string of when the structured output
            was created.
        updatedAt:
          type: string
          format: date-time
          description: >-
            This is the ISO 8601 date-time string of when the structured output
            was last updated.
        name:
          type: string
          description: This is the name of the structured output.
        description:
          type: string
          description: >-
            This is the description of what the structured output extracts.


            Use this to provide context about what data will be extracted and
            how it will be used.
        assistantIds:
          type: array
          items:
            type: string
          description: >-
            These are the assistant IDs that this structured output is linked
            to.


            When linked to assistants, this structured output will be available
            for extraction during those assistant's calls.
        workflowIds:
          type: array
          items:
            type: string
          description: >-
            These are the workflow IDs that this structured output is linked to.


            When linked to workflows, this structured output will be available
            for extraction during those workflow's execution.
        schema:
          $ref: '#/components/schemas/JsonSchema'
          description: >-
            This is the JSON Schema definition for the structured output.


            Defines the structure and validation rules for the data that will be
            extracted. Supports all JSON Schema features including:

            - Objects and nested properties

            - Arrays and array validation

            - String, number, boolean, and null types

            - Enums and const values

            - Validation constraints (min/max, patterns, etc.)

            - Composition with allOf, anyOf, oneOf
      required:
        - id
        - orgId
        - createdAt
        - updatedAt
        - name
        - schema
      title: StructuredOutput
    PaginationMeta:
      type: object
      properties:
        itemsPerPage:
          type: number
          format: double
        totalItems:
          type: number
          format: double
        currentPage:
          type: number
          format: double
        itemsBeyondRetention:
          type: boolean
        createdAtLe:
          type: string
          format: date-time
        createdAtGe:
          type: string
          format: date-time
      required:
        - itemsPerPage
        - totalItems
        - currentPage
      title: PaginationMeta
    StructuredOutputPaginatedResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/StructuredOutput'
        metadata:
          $ref: '#/components/schemas/PaginationMeta'
      required:
        - results
        - metadata
      title: StructuredOutputPaginatedResponse
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: Retrieve your API Key from [Dashboard](dashboard.vapi.ai).

```

## SDK Code Examples

```python
from vapi import Vapi

client = Vapi(
    token="YOUR_TOKEN_HERE",
)

client.structured_outputs.structured_output_controller_find_all()

```

```go
package example

import (
    context "context"

    serversdkgo "github.com/VapiAI/server-sdk-go"
    client "github.com/VapiAI/server-sdk-go/client"
    option "github.com/VapiAI/server-sdk-go/option"
)

func do() {
    client := client.NewClient(
        option.WithToken(
            "YOUR_TOKEN_HERE",
        ),
    )
    request := &serversdkgo.StructuredOutputControllerFindAllRequest{}
    client.StructuredOutputs.StructuredOutputControllerFindAll(
        context.TODO(),
        request,
    )
}

```