openapi: 3.0.3 info: title: Cartesia Agents Datasets 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: Datasets description: Audio/text collections used to build custom fine-tunes and voices. paths: /datasets: get: operationId: listDatasets tags: - Datasets summary: List Datasets parameters: - $ref: '#/components/parameters/CartesiaVersion' responses: '200': description: A page of datasets. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Dataset' has_more: type: boolean '401': $ref: '#/components/responses/Unauthorized' /datasets/: post: operationId: createDataset tags: - Datasets summary: Create Dataset parameters: - $ref: '#/components/parameters/CartesiaVersion' requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string description: type: string responses: '200': description: The created dataset. content: application/json: schema: $ref: '#/components/schemas/Dataset' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /datasets/{id}: parameters: - $ref: '#/components/parameters/DatasetId' get: operationId: getDataset tags: - Datasets summary: Get Dataset parameters: - $ref: '#/components/parameters/CartesiaVersion' responses: '200': description: The requested dataset. content: application/json: schema: $ref: '#/components/schemas/Dataset' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateDataset tags: - Datasets summary: Update Dataset parameters: - $ref: '#/components/parameters/CartesiaVersion' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: type: string responses: '200': description: The updated dataset. content: application/json: schema: $ref: '#/components/schemas/Dataset' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteDataset tags: - Datasets summary: Delete Dataset 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' /datasets/{id}/files: parameters: - $ref: '#/components/parameters/DatasetId' get: operationId: listDatasetFiles tags: - Datasets summary: List files in a dataset parameters: - $ref: '#/components/parameters/CartesiaVersion' responses: '200': description: A page of dataset files. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/DatasetFile' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' post: operationId: uploadDatasetFile tags: - Datasets summary: Upload a file to a dataset parameters: - $ref: '#/components/parameters/CartesiaVersion' requestBody: required: true content: multipart/form-data: schema: type: object required: - file properties: file: type: string format: binary responses: '200': description: The uploaded file. content: application/json: schema: $ref: '#/components/schemas/DatasetFile' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /datasets/{id}/files/{file_id}: parameters: - $ref: '#/components/parameters/DatasetId' - name: file_id in: path required: true description: The ID of the dataset file. schema: type: string delete: operationId: deleteDatasetFile tags: - Datasets summary: Remove a file from a dataset 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: DatasetFile: type: object properties: id: type: string dataset_id: type: string name: type: string size_bytes: type: integer created_at: type: string format: date-time DeleteResponse: type: object properties: id: type: string deleted: type: boolean Dataset: type: object properties: id: type: string name: type: string description: type: string 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' DatasetId: name: id in: path required: true description: The ID of the dataset. schema: type: string 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.'