{
  "info": {
    "description": "The .wave API, in public beta: the session-based interface to hosted continuous models. `live` sessions are full-duplex conversations with `nemotron-voicechat`, and `transcription` sessions stream speech-to-text with `nemotron-asr-streaming`. Authenticate with the project's API key, `Authorization: Bearer wk_…`. Create API keys in the console. New accounts start with $10 of credit; no card required.",
    "title": ".wave Live API",
    "version": "v1"
  },
  "openapi": "3.1.0",
  "paths": {
    "/v1/live/client_secrets": {
      "post": {
        "description": "Creates a session and returns its client secret, the short-lived credential a browser or worker opens the session's socket (`session.live_url`) with, so it never holds an API key. A `live` session is a full-duplex conversation with `nemotron-voicechat`; a `transcription` session streams speech-to-text with `nemotron-asr-streaming`.",
        "operationId": "client_secrets_v1_live_client_secrets_post",
        "parameters": [
          {
            "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
              "title": "Authorization"
            }
          },
          {
            "description": "The same API key, in place of the Authorization header.",
            "in": "header",
            "name": "x-api-key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The same API key, in place of the Authorization header.",
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientSecretRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientSecretResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "Client Secrets",
        "tags": [
          "live"
        ]
      }
    },
    "/v1/models": {
      "get": {
        "operationId": "list_models_v1_models_get",
        "parameters": [
          {
            "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
              "title": "Authorization"
            }
          },
          {
            "description": "The same API key, in place of the Authorization header.",
            "in": "header",
            "name": "x-api-key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The same API key, in place of the Authorization header.",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "List Models",
        "tags": [
          "models"
        ]
      }
    },
    "/v1/openapi.json": {
      "get": {
        "operationId": "openapi_v1_v1_openapi_json_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Conflict"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "OpenAPI document",
        "tags": [
          "operations"
        ]
      }
    },
    "/v1/project": {
      "get": {
        "operationId": "project_v1_project_get",
        "parameters": [
          {
            "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
              "title": "Authorization"
            }
          },
          {
            "description": "The same API key, in place of the Authorization header.",
            "in": "header",
            "name": "x-api-key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The same API key, in place of the Authorization header.",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "Project",
        "tags": [
          "projects"
        ]
      }
    },
    "/v1/realtime/client_secrets": {
      "post": {
        "description": "Creates a streaming transcription session with `nemotron-asr-streaming` and returns its client secret: the OpenAI-compatible path, which the OpenAI Realtime SDK's transcription helper calls. The request and the response are those of `POST /v1/live/client_secrets`, and the session is always a `transcription` one; a request naming another model is refused with 400 `invalid_parameter`. The session's language is `session.audio.input.transcription.language`, `auto` by default.",
        "operationId": "realtime_client_secrets_v1_realtime_client_secrets_post",
        "parameters": [
          {
            "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
              "title": "Authorization"
            }
          },
          {
            "description": "The same API key, in place of the Authorization header.",
            "in": "header",
            "name": "x-api-key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The same API key, in place of the Authorization header.",
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientSecretRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientSecretResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "Transcription Client Secrets",
        "tags": [
          "transcription"
        ]
      }
    },
    "/v1/sessions": {
      "get": {
        "operationId": "list_sessions_v1_sessions_get",
        "parameters": [
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "From"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "To"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
              "title": "Authorization"
            }
          },
          {
            "description": "The same API key, in place of the Authorization header.",
            "in": "header",
            "name": "x-api-key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The same API key, in place of the Authorization header.",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "List Sessions",
        "tags": [
          "sessions"
        ]
      }
    },
    "/v1/sessions/{session_id}": {
      "delete": {
        "operationId": "delete_session_v1_sessions__session_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
              "title": "Authorization"
            }
          },
          {
            "description": "The same API key, in place of the Authorization header.",
            "in": "header",
            "name": "x-api-key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The same API key, in place of the Authorization header.",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "Delete Session",
        "tags": [
          "sessions"
        ]
      },
      "get": {
        "operationId": "get_session_v1_sessions__session_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          },
          {
            "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
              "title": "Authorization"
            }
          },
          {
            "description": "The same API key, in place of the Authorization header.",
            "in": "header",
            "name": "x-api-key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The same API key, in place of the Authorization header.",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "Get Session",
        "tags": [
          "sessions"
        ]
      }
    },
    "/v1/usage": {
      "get": {
        "operationId": "usage_v1_usage_get",
        "parameters": [
          {
            "in": "query",
            "name": "group_by",
            "required": false,
            "schema": {
              "default": "day",
              "enum": [
                "day",
                "model"
              ],
              "title": "Group By",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "From"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "To"
            }
          },
          {
            "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
              "title": "Authorization"
            }
          },
          {
            "description": "The same API key, in place of the Authorization header.",
            "in": "header",
            "name": "x-api-key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The same API key, in place of the Authorization header.",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "Usage",
        "tags": [
          "usage"
        ]
      }
    },
    "/v1/usage/export": {
      "get": {
        "operationId": "usage_export_v1_usage_export_get",
        "parameters": [
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "From"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "To"
            }
          },
          {
            "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "`Bearer wk_…`: the project's API key (`Token` is an alias of `Bearer`). Create API keys in the console. New accounts start with $10 of credit; no card required.",
              "title": "Authorization"
            }
          },
          {
            "description": "The same API key, in place of the Authorization header.",
            "in": "header",
            "name": "x-api-key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The same API key, in place of the Authorization header.",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "Usage Export",
        "tags": [
          "usage"
        ]
      }
    },
    "/v1/usage/normalized-meter-events": {
      "get": {
        "operationId": "normalized_meter_events_v1_usage_normalized_meter_events_get",
        "parameters": [
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "From"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "To"
            }
          },
          {
            "description": "`Bearer wk_…`: the project's API key. Create API keys in the console. New accounts start with $10 of credit; no card required.",
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "`Bearer wk_…`: the project's API key. Create API keys in the console. New accounts start with $10 of credit; no card required.",
              "title": "Authorization"
            }
          },
          {
            "description": "The same API key, in place of the Authorization header.",
            "in": "header",
            "name": "x-api-key",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The same API key, in place of the Authorization header.",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/x-ndjson": {
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frames": {
                        "minimum": 0,
                        "type": "integer"
                      },
                      "meter_event_id": {
                        "type": "string"
                      },
                      "schema": {
                        "const": "dotwave.normalized-meter-event.v1",
                        "type": "string"
                      },
                      "session_id": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "schema",
                      "session_id",
                      "frames",
                      "meter_event_id"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Newline-delimited normalized meter events; one object per line."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Normalized Meter Events",
        "tags": [
          "usage"
        ]
      }
    }
  },
  "x-live-protocol": {
    "audio": {
      "egressEncodings": [
        "base64",
        "binary"
      ],
      "format": "pcm16",
      "frameMs": 80,
      "rate": 24000,
      "voices": [
        "aria"
      ]
    },
    "auth": "Authorization: Bearer <API key> from a server, or a client secret created with POST /v1/live/client_secrets",
    "clientEvents": {
      "accepted": [
        "session.start",
        "session.update",
        "session.close",
        "session.input_audio.append",
        "session.input_audio.mute",
        "session.input_audio.unmute"
      ],
      "refused": [
        "session.commentary.append",
        "session.thinking.append",
        "session.instructions.append",
        "response.create",
        "response.item.create"
      ],
      "refusedReason": "these carry delegation or tool results; delegation and tool calling are not supported"
    },
    "compatibility": {
      "closeReasons": [
        "close_requested",
        "expired",
        "connection_lost"
      ],
      "convention": "the OpenAI Live API's primary WebSocket: its event names, fields, event_id and client_event_id, acknowledgements and close reasons",
      "extensions": [
        "session.turn.event",
        "session.input_audio.warning",
        "audio.output.encoding: binary output",
        "client secrets and ?token= for browsers",
        "session.closed detail and stats",
        "transcript item_id, done, transcript and audio timing"
      ],
      "notSupported": [
        "WebRTC and SIP transports",
        "delegation, instructions, input and tools",
        "16 kHz and G.711 audio formats",
        "stored sessions and forks"
      ]
    },
    "firstEvent": "session.start",
    "limits": {
      "instructions": "not supported; the model's persona is fixed",
      "maxDurationSeconds": 120,
      "tools": "not supported",
      "voice": "one voice, aria; any other name is refused"
    },
    "queryParameters": "none required; ?token=<client secret> is accepted for browsers, which cannot set the Authorization header",
    "reference": "https://dotwave.ai/docs/",
    "serverEvents": [
      "session.started",
      "session.updated",
      "session.input_audio.muted",
      "session.input_audio.unmuted",
      "session.input_transcript.delta",
      "session.input_audio.warning",
      "session.output_transcript.delta",
      "session.output_audio.delta",
      "session.turn.event",
      "session.usage.updated",
      "session.closed",
      "error"
    ],
    "transport": "WebSocket",
    "url": "{live_url}"
  },
  "components": {
    "schemas": {
      "AudioFormatRequest": {
        "additionalProperties": false,
        "properties": {
          "rate": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate"
          },
          "type": {
            "default": "audio/pcm",
            "title": "Type",
            "type": "string"
          }
        },
        "title": "AudioFormatRequest",
        "type": "object"
      },
      "AudioFormatResponse": {
        "properties": {
          "rate": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "type",
          "rate"
        ],
        "title": "AudioFormatResponse",
        "type": "object"
      },
      "AudioInputRequest": {
        "additionalProperties": false,
        "properties": {
          "format": {
            "$ref": "#/components/schemas/AudioFormatRequest"
          },
          "noise_reduction": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ],
            "title": "Noise Reduction"
          },
          "transcription": {
            "$ref": "#/components/schemas/TranscriptionRequest"
          },
          "turn_detection": {
            "$ref": "#/components/schemas/TurnDetectionRequest"
          }
        },
        "title": "AudioInputRequest",
        "type": "object"
      },
      "AudioInputResponse": {
        "properties": {
          "format": {
            "$ref": "#/components/schemas/AudioFormatResponse"
          },
          "noise_reduction": {
            "title": "Noise Reduction",
            "type": "null"
          },
          "transcription": {
            "$ref": "#/components/schemas/TranscriptionResponse"
          },
          "turn_detection": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TurnDetectionResponse"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "format",
          "transcription",
          "turn_detection"
        ],
        "title": "AudioInputResponse",
        "type": "object"
      },
      "AudioRequest": {
        "additionalProperties": false,
        "properties": {
          "input": {
            "$ref": "#/components/schemas/AudioInputRequest"
          }
        },
        "title": "AudioRequest",
        "type": "object"
      },
      "AudioResponse": {
        "properties": {
          "input": {
            "$ref": "#/components/schemas/AudioInputResponse"
          }
        },
        "required": [
          "input"
        ],
        "title": "AudioResponse",
        "type": "object"
      },
      "ClientSecretRequest": {
        "additionalProperties": false,
        "properties": {
          "expires_after": {
            "$ref": "#/components/schemas/ExpiresAfterRequest"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Metadata",
            "type": "object"
          },
          "session": {
            "$ref": "#/components/schemas/RequestedSession"
          }
        },
        "title": "ClientSecretRequest",
        "type": "object"
      },
      "ClientSecretResponse": {
        "properties": {
          "expires_at": {
            "title": "Expires At",
            "type": "integer"
          },
          "session": {
            "$ref": "#/components/schemas/ClientSecretSessionResponse"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": [
          "value",
          "expires_at",
          "session"
        ],
        "title": "ClientSecretResponse",
        "type": "object"
      },
      "ClientSecretSessionResponse": {
        "properties": {
          "audio": {
            "$ref": "#/components/schemas/AudioResponse"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "ingress": {
            "$ref": "#/components/schemas/IngressResponse"
          },
          "live_url": {
            "title": "Live Url",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Metadata",
            "type": "object"
          },
          "model": {
            "title": "Model",
            "type": "string"
          },
          "object": {
            "title": "Object",
            "type": "string"
          },
          "pool": {
            "title": "Pool",
            "type": "string"
          },
          "region": {
            "title": "Region",
            "type": "string"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "object",
          "type",
          "model",
          "pool",
          "region",
          "audio",
          "live_url",
          "ingress",
          "metadata"
        ],
        "title": "ClientSecretSessionResponse",
        "type": "object"
      },
      "ErrorBody": {
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "param": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Param"
          },
          "request_id": {
            "title": "Request Id",
            "type": "string"
          },
          "retry_after_ms": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retry After Ms"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "type",
          "code",
          "message",
          "param",
          "request_id",
          "retry_after_ms"
        ],
        "title": "ErrorBody",
        "type": "object"
      },
      "ErrorEnvelope": {
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ErrorBody"
          }
        },
        "required": [
          "error"
        ],
        "title": "ErrorEnvelope",
        "type": "object"
      },
      "ExpiresAfterRequest": {
        "additionalProperties": false,
        "properties": {
          "anchor": {
            "const": "created_at",
            "default": "created_at",
            "title": "Anchor",
            "type": "string"
          },
          "seconds": {
            "default": 60,
            "maximum": 600,
            "minimum": 1,
            "title": "Seconds",
            "type": "integer"
          }
        },
        "title": "ExpiresAfterRequest",
        "type": "object"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
          }
        },
        "title": "HTTPValidationError",
        "type": "object"
      },
      "IngressRequest": {
        "additionalProperties": false,
        "properties": {
          "hold_frames": {
            "anyOf": [
              {
                "maximum": 3,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Extra buffering for audio that arrives late, from 1 to 3; higher values tolerate more network variation at some latency. Defaults: 2 for transcription, 1 for live.",
            "title": "Hold Frames"
          }
        },
        "title": "IngressRequest",
        "type": "object"
      },
      "IngressResponse": {
        "properties": {
          "backlog_frames": {
            "title": "Backlog Frames",
            "type": "integer"
          },
          "frame_ms": {
            "title": "Frame Ms",
            "type": "integer"
          },
          "hold_frames": {
            "title": "Hold Frames",
            "type": "integer"
          }
        },
        "required": [
          "hold_frames",
          "frame_ms",
          "backlog_frames"
        ],
        "title": "IngressResponse",
        "type": "object"
      },
      "ModelAudioResponse": {
        "properties": {
          "frame_ms": {
            "title": "Frame Ms",
            "type": "integer"
          },
          "input_formats": {
            "items": {
              "type": "string"
            },
            "title": "Input Formats",
            "type": "array"
          },
          "voices": {
            "items": {
              "type": "string"
            },
            "title": "Voices",
            "type": "array"
          }
        },
        "required": [
          "input_formats",
          "frame_ms",
          "voices"
        ],
        "title": "ModelAudioResponse",
        "type": "object"
      },
      "ModelIngressResponse": {
        "properties": {
          "backlog_frames": {
            "title": "Backlog Frames",
            "type": "integer"
          },
          "hold_frames": {
            "items": {
              "type": "integer"
            },
            "title": "Hold Frames",
            "type": "array"
          }
        },
        "required": [
          "hold_frames",
          "backlog_frames"
        ],
        "title": "ModelIngressResponse",
        "type": "object"
      },
      "ModelListResponse": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/ModelResponse"
            },
            "title": "Data",
            "type": "array"
          },
          "object": {
            "const": "list",
            "title": "Object",
            "type": "string"
          }
        },
        "required": [
          "object",
          "data"
        ],
        "title": "ModelListResponse",
        "type": "object"
      },
      "ModelModalityResponse": {
        "properties": {
          "input": {
            "items": {
              "type": "string"
            },
            "title": "Input",
            "type": "array"
          },
          "output": {
            "items": {
              "type": "string"
            },
            "title": "Output",
            "type": "array"
          }
        },
        "required": [
          "input",
          "output"
        ],
        "title": "ModelModalityResponse",
        "type": "object"
      },
      "ModelResponse": {
        "properties": {
          "audio": {
            "$ref": "#/components/schemas/ModelAudioResponse"
          },
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "languages": {
            "items": {
              "type": "string"
            },
            "title": "Languages",
            "type": "array"
          },
          "modality": {
            "$ref": "#/components/schemas/ModelModalityResponse"
          },
          "object": {
            "const": "model",
            "title": "Object",
            "type": "string"
          },
          "revision": {
            "title": "Revision",
            "type": "string"
          },
          "session": {
            "$ref": "#/components/schemas/ModelSessionResponse"
          }
        },
        "required": [
          "id",
          "object",
          "display_name",
          "revision",
          "modality",
          "audio",
          "languages",
          "session"
        ],
        "title": "ModelResponse",
        "type": "object"
      },
      "ModelSessionResponse": {
        "properties": {
          "end_of_utterance_silence_ms": {
            "items": {
              "type": "integer"
            },
            "title": "End Of Utterance Silence Ms",
            "type": "array"
          },
          "idle_timeout_s": {
            "title": "Idle Timeout S",
            "type": "integer"
          },
          "ingress": {
            "$ref": "#/components/schemas/ModelIngressResponse"
          },
          "max_duration_s": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Duration S"
          }
        },
        "required": [
          "max_duration_s",
          "idle_timeout_s",
          "ingress"
        ],
        "title": "ModelSessionResponse",
        "type": "object"
      },
      "ProjectLimitsResponse": {
        "properties": {
          "max_concurrent_sessions": {
            "title": "Max Concurrent Sessions",
            "type": "integer"
          },
          "monthly_spend_cap_usd": {
            "title": "Monthly Spend Cap Usd",
            "type": "number"
          },
          "session_rate_per_s": {
            "title": "Session Rate Per S",
            "type": "number"
          }
        },
        "required": [
          "max_concurrent_sessions",
          "session_rate_per_s",
          "monthly_spend_cap_usd"
        ],
        "title": "ProjectLimitsResponse",
        "type": "object"
      },
      "ProjectResponse": {
        "properties": {
          "account_id": {
            "title": "Account Id",
            "type": "string"
          },
          "current_month_spend_usd": {
            "title": "Current Month Spend Usd",
            "type": "number"
          },
          "enabled_models": {
            "items": {
              "type": "string"
            },
            "title": "Enabled Models",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "limits": {
            "$ref": "#/components/schemas/ProjectLimitsResponse"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "object": {
            "const": "project",
            "title": "Object",
            "type": "string"
          }
        },
        "required": [
          "id",
          "object",
          "account_id",
          "name",
          "enabled_models",
          "limits",
          "current_month_spend_usd"
        ],
        "title": "ProjectResponse",
        "type": "object"
      },
      "RequestedSession": {
        "additionalProperties": false,
        "properties": {
          "audio": {
            "$ref": "#/components/schemas/AudioRequest"
          },
          "ingress": {
            "$ref": "#/components/schemas/IngressRequest"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The model to open: `nemotron-voicechat` for a `live` session, `nemotron-asr-streaming` for a `transcription` session. Omitted, the session kind's model.",
            "examples": [
              "nemotron-voicechat",
              "nemotron-asr-streaming"
            ],
            "title": "Model"
          },
          "type": {
            "default": "live",
            "description": "The session kind: `live`, a full-duplex conversation with `nemotron-voicechat`, or `transcription`, streaming speech-to-text with `nemotron-asr-streaming`. `POST /v1/realtime/client_secrets` always opens a `transcription` session.",
            "enum": [
              "live",
              "transcription"
            ],
            "title": "Type",
            "type": "string"
          }
        },
        "title": "RequestedSession",
        "type": "object"
      },
      "SessionListResponse": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/SessionResponse"
            },
            "title": "Data",
            "type": "array"
          },
          "has_more": {
            "title": "Has More",
            "type": "boolean"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "object": {
            "const": "list",
            "title": "Object",
            "type": "string"
          }
        },
        "required": [
          "object",
          "data",
          "has_more",
          "next_cursor"
        ],
        "title": "SessionListResponse",
        "type": "object"
      },
      "SessionResponse": {
        "properties": {
          "admitted_at": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Admitted At"
          },
          "close_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Close Reason"
          },
          "closed_at": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closed At"
          },
          "configuration": {
            "additionalProperties": true,
            "title": "Configuration",
            "type": "object"
          },
          "connected_at": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Connected At"
          },
          "created_at": {
            "title": "Created At",
            "type": "integer"
          },
          "expires_at": {
            "title": "Expires At",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Metadata",
            "type": "object"
          },
          "model": {
            "title": "Model",
            "type": "string"
          },
          "object": {
            "title": "Object",
            "type": "string"
          },
          "pool": {
            "title": "Pool",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "region": {
            "title": "Region",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "usage": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "number"
                }
              ]
            },
            "title": "Usage",
            "type": "object"
          }
        },
        "required": [
          "id",
          "object",
          "project_id",
          "model",
          "pool",
          "region",
          "status",
          "created_at",
          "connected_at",
          "admitted_at",
          "closed_at",
          "expires_at",
          "close_reason",
          "usage",
          "metadata",
          "configuration"
        ],
        "title": "SessionResponse",
        "type": "object"
      },
      "TranscriptionRequest": {
        "additionalProperties": false,
        "properties": {
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": "auto",
            "description": "The language of the input audio. For a `transcription` session: `auto`, the model's own language detection, which is the default, or one of the languages `GET /v1/models` lists for the model; a `session.update` on the socket may change it until the first audio is sent. A `live` session runs in the duplex model's one language.",
            "examples": [
              "auto",
              "pt-BR"
            ],
            "title": "Language"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The model, for clients that set it here as in the OpenAI Realtime API: `nemotron-asr-streaming` for a `transcription` session. `session.model` takes precedence.",
            "examples": [
              "nemotron-asr-streaming"
            ],
            "title": "Model"
          },
          "prompt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prompt"
          }
        },
        "title": "TranscriptionRequest",
        "type": "object"
      },
      "TranscriptionResponse": {
        "properties": {
          "language": {
            "title": "Language",
            "type": "string"
          },
          "model": {
            "title": "Model",
            "type": "string"
          },
          "prompt": {
            "title": "Prompt",
            "type": "null"
          }
        },
        "required": [
          "model",
          "language"
        ],
        "title": "TranscriptionResponse",
        "type": "object"
      },
      "TurnDetectionRequest": {
        "additionalProperties": false,
        "properties": {
          "idle_timeout_ms": {
            "default": 30000,
            "maximum": 300000,
            "minimum": 10000,
            "title": "Idle Timeout Ms",
            "type": "integer"
          },
          "prefix_padding_ms": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prefix Padding Ms"
          },
          "silence_duration_ms": {
            "default": 3200,
            "maximum": 3200,
            "minimum": 400,
            "title": "Silence Duration Ms",
            "type": "integer"
          },
          "threshold": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Threshold"
          },
          "type": {
            "const": "server_vad",
            "default": "server_vad",
            "title": "Type",
            "type": "string"
          }
        },
        "title": "TurnDetectionRequest",
        "type": "object"
      },
      "TurnDetectionResponse": {
        "properties": {
          "idle_timeout_ms": {
            "title": "Idle Timeout Ms",
            "type": "integer"
          },
          "prefix_padding_ms": {
            "title": "Prefix Padding Ms",
            "type": "null"
          },
          "silence_duration_ms": {
            "title": "Silence Duration Ms",
            "type": "integer"
          },
          "threshold": {
            "title": "Threshold",
            "type": "null"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "type",
          "silence_duration_ms",
          "idle_timeout_ms"
        ],
        "title": "TurnDetectionResponse",
        "type": "object"
      },
      "UsageCountersResponse": {
        "properties": {
          "billable_seconds": {
            "title": "Billable Seconds",
            "type": "number"
          },
          "duplicate_frames": {
            "title": "Duplicate Frames",
            "type": "integer"
          },
          "frames": {
            "title": "Frames",
            "type": "integer"
          },
          "late_frames": {
            "title": "Late Frames",
            "type": "integer"
          },
          "missing_frames": {
            "title": "Missing Frames",
            "type": "integer"
          },
          "segments": {
            "title": "Segments",
            "type": "integer"
          },
          "symbols": {
            "title": "Symbols",
            "type": "integer"
          }
        },
        "required": [
          "frames",
          "billable_seconds",
          "late_frames",
          "missing_frames",
          "duplicate_frames",
          "symbols",
          "segments"
        ],
        "title": "UsageCountersResponse",
        "type": "object"
      },
      "UsageGroupResponse": {
        "properties": {
          "cost_usd": {
            "title": "Cost Usd",
            "type": "number"
          },
          "key": {
            "title": "Key",
            "type": "string"
          },
          "usage": {
            "$ref": "#/components/schemas/UsageCountersResponse"
          }
        },
        "required": [
          "key",
          "usage",
          "cost_usd"
        ],
        "title": "UsageGroupResponse",
        "type": "object"
      },
      "UsageListResponse": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/UsageGroupResponse"
            },
            "title": "Data",
            "type": "array"
          },
          "group_by": {
            "enum": [
              "day",
              "model"
            ],
            "title": "Group By",
            "type": "string"
          },
          "object": {
            "const": "list",
            "title": "Object",
            "type": "string"
          }
        },
        "required": [
          "object",
          "group_by",
          "data"
        ],
        "title": "UsageListResponse",
        "type": "object"
      },
      "ValidationError": {
        "properties": {
          "ctx": {
            "title": "Context",
            "type": "object"
          },
          "input": {
            "title": "Input"
          },
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      }
    }
  },
  "servers": [
    {
      "url": "https://api.dotwave.ai"
    }
  ]
}
