{"openapi":"3.1.0","info":{"title":"Cartesia Voices (BYOK) API","version":"0.1.0","description":"Cartesia Voices (BYOK) lets an AI assistant read your own Cartesia Voices data through the Cartesia Voices API with a key you supply (API key). Read-only: 7 tools (list_voices, get_voice, list_accents, list_models, list_pronunciation_dictionaries, list_fine_tunes, list_datasets). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-cartesia-voices.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-cartesia-voices/docs"},"termsOfService":"https://connectorbay.com/byok-cartesia-voices/terms"},"servers":[{"url":"https://byok-cartesia-voices.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-cartesia-voices/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_voices":{"post":{"operationId":"list_voices","summary":"List Cartesia voices (library and your own) with name, tagline, description, gender, language, accents and ownership, fi","description":"List Cartesia voices (library and your own) with name, tagline, description, gender, language, accents and ownership, filterable by search text, gender, language or owner. Use for \"Find feminine English voices in Cartesia that I could use for customer support\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many voices per page (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging: the id of the last item of the previous page (next_page), to get the following page.","title":"Starting After"},"ending_before":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging: the id of the first item of the current page, to get the previous page.","title":"Ending Before"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search text matched against voice name, description or voice id.","title":"Q"},"gender":{"anyOf":[{"enum":["masculine","feminine","gender_neutral"],"type":"string"},{"type":"null"}],"default":null,"description":"Only voices with this gender presentation.","title":"Gender"},"language":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Language or language-locale to filter by, for example en or en-GB.","title":"Language"},"is_owner":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return only voices owned by your organization.","title":"Is Owner"},"include_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include archived voices.","title":"Include Archived"}},"title":"list_voicesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_voice":{"post":{"operationId":"get_voice","summary":"Get one Cartesia voice by id: name, tagline, description, gender, language, accents, access and creation time. Use for \"","description":"Get one Cartesia voice by id: name, tagline, description, gender, language, accents, access and creation time. Use for \"Show the details of one Cartesia voice\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"voice_id":{"description":"Voice id from list_voices.","maxLength":100,"title":"Voice Id","type":"string"}},"required":["voice_id"],"title":"get_voiceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_accents":{"post":{"operationId":"list_accents","summary":"List the accents Cartesia supports with language, locale and whether a voice can be localized into each, optionally filt","description":"List the accents Cartesia supports with language, locale and whether a voice can be localized into each, optionally filtered. Use for \"Which accents can Cartesia localize a voice into for Spanish\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"language":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only accents of this language code, for example es.","title":"Language"},"locale":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only accents of this locale such as es-MX.","title":"Locale"},"is_localizable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only accents a voice can be localized into.","title":"Is Localizable"}},"title":"list_accentsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_models":{"post":{"operationId":"list_models","summary":"List the Cartesia speech models (text to speech and speech to text) with capability and, for speech to text, batch or st","description":"List the Cartesia speech models (text to speech and speech to text) with capability and, for speech to text, batch or streaming modes. Use for \"Which text to speech models does Cartesia offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"capability":{"anyOf":[{"enum":["tts","stt"],"type":"string"},{"type":"null"}],"default":null,"description":"Only models with this capability.","title":"Capability"}},"title":"list_modelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_pronunciation_dictionaries":{"post":{"operationId":"list_pronunciation_dictionaries","summary":"List pronunciation dictionaries with name, ownership, pinned flag, creation time and the text-to-pronunciation items the","description":"List pronunciation dictionaries with name, ownership, pinned flag, creation time and the text-to-pronunciation items they hold. Use for \"Which pronunciation dictionaries do I have in Cartesia\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many dictionaries per page (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging: the id of the last item of the previous page (next_page), to get the following page.","title":"Starting After"},"ending_before":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging: the id of the first item of the current page, to get the previous page.","title":"Ending Before"}},"title":"list_pronunciation_dictionariesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_fine_tunes":{"post":{"operationId":"list_fine_tunes","summary":"List voice fine-tunes with name, language, accent, compatible model ids, dataset and training status including any user ","description":"List voice fine-tunes with name, language, accent, compatible model ids, dataset and training status including any user errors. Use for \"What is the training status of my Cartesia fine-tunes\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many fine-tunes per page (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging: the id of the last item of the previous page (next_page), to get the following page.","title":"Starting After"},"ending_before":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging: the id of the first item of the current page, to get the previous page.","title":"Ending Before"}},"title":"list_fine_tunesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_datasets":{"post":{"operationId":"list_datasets","summary":"List fine-tuning datasets with name, id and creation time (file contents are not returned). Use for \"Which fine-tuning d","description":"List fine-tuning datasets with name, id and creation time (file contents are not returned). Use for \"Which fine-tuning datasets have I uploaded to Cartesia\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many datasets per page (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging: the id of the last item of the previous page (next_page), to get the following page.","title":"Starting After"},"ending_before":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging: the id of the first item of the current page, to get the previous page.","title":"Ending Before"}},"title":"list_datasetsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}