openapi: 3.0.3 info: title: Cartesia Agents Providers API description: 'The Cartesia REST API for real-time voice AI - text-to-speech and voice-changer generation (single-shot bytes or Server-Sent Events), batch speech-to-text transcription, voice management and cloning, audio infill, custom datasets, pronunciation dictionaries, API keys and scoped access tokens, the Voice Agents platform (agents, calls, call batches, phone numbers, telephony providers, webhooks, deployments, knowledge base documents/folders, and evaluation metrics), and usage reporting. All requests require a `Cartesia-Version` header and an `Authorization: Bearer` API key (`sk_car_...`) or short-lived access token. The lowest-latency, streaming surface for TTS and STT is a separate WebSocket protocol documented in the companion AsyncAPI document at asyncapi/cartesia-ai-asyncapi.yml.' version: '2026-03-01' contact: name: Cartesia url: https://cartesia.ai license: name: API documentation - Cartesia Terms of Service url: https://cartesia.ai/terms-of-service servers: - url: https://api.cartesia.ai description: Cartesia production API security: - bearerAuth: [] tags: - name: Providers description: Linked telephony provider accounts. paths: /providers: get: operationId: listProviders tags: - Providers summary: List Providers description: List telephony provider accounts linked to your account. parameters: - $ref: '#/components/parameters/CartesiaVersion' responses: '200': description: A page of provider accounts. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Provider' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createProvider tags: - Providers summary: Create Provider description: Link a telephony provider account. parameters: - $ref: '#/components/parameters/CartesiaVersion' requestBody: required: true content: application/json: schema: type: object required: - type properties: type: type: string description: e.g. twilio, telnyx. credentials: type: object additionalProperties: true responses: '200': description: The linked provider account. content: application/json: schema: $ref: '#/components/schemas/Provider' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /providers/{id}: parameters: - name: id in: path required: true description: The ID of the provider account. schema: type: string get: operationId: getProvider tags: - Providers summary: Get Provider parameters: - $ref: '#/components/parameters/CartesiaVersion' responses: '200': description: The requested provider account. content: application/json: schema: $ref: '#/components/schemas/Provider' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateProvider tags: - Providers summary: Update Provider description: Update a provider's credentials. parameters: - $ref: '#/components/parameters/CartesiaVersion' requestBody: content: application/json: schema: type: object properties: credentials: type: object additionalProperties: true responses: '200': description: The updated provider account. content: application/json: schema: $ref: '#/components/schemas/Provider' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteProvider tags: - Providers summary: Delete Provider parameters: - $ref: '#/components/parameters/CartesiaVersion' responses: '200': description: Deletion confirmation. content: application/json: schema: $ref: '#/components/schemas/DeleteResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: schemas: DeleteResponse: type: object properties: id: type: string deleted: type: boolean Provider: type: object properties: id: type: string type: type: string description: e.g. twilio, telnyx. created_at: type: string format: date-time Error: type: object properties: title: type: string message: type: string error_code: type: string status_code: type: integer doc_url: type: string request_id: type: string responses: Unauthorized: description: Missing, invalid, or expired API key / access token. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' ValidationError: description: The request payload failed validation. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: CartesiaVersion: name: Cartesia-Version in: header required: true description: API version date, e.g. 2026-03-01. schema: type: string example: '2026-03-01' securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: sk_car_... API key or short-lived access token description: 'Cartesia API key (sk_car_...) or a short-lived access token minted via POST /access-token, passed as Authorization: Bearer . Every request also requires the Cartesia-Version header.'