{"openapi":"3.1.0","info":{"title":"Deepgram (BYOK) API","version":"0.1.0","description":"Deepgram (BYOK) lets an AI assistant read your own Deepgram data through the Deepgram API with a key you supply (API key (with usage and billing scopes for those tools)). Read-only: 9 tools (list_projects, get_project, list_speech_to_text_models, list_text_to_speech_models, get_balances, list_purchases, get_usage_breakdown, get_billing_breakdown, list_requests). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-deepgram.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-deepgram/docs"},"termsOfService":"https://connectorbay.com/byok-deepgram/terms"},"servers":[{"url":"https://byok-deepgram.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-deepgram/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_projects":{"post":{"operationId":"list_projects","summary":"List the Deepgram projects the key can access with id and name. Use for \"Which Deepgram projects does my key belong to\".","description":"List the Deepgram projects the key can access with id and name. Use for \"Which Deepgram projects does my key belong to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_projectsArguments","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_project":{"post":{"operationId":"get_project","summary":"Get one Deepgram project by id: name and model-improvement opt-out flag. Use for \"What is the name of my Deepgram projec","description":"Get one Deepgram project by id: name and model-improvement opt-out flag. Use for \"What is the name of my Deepgram project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Deepgram project id (UUID); list_projects returns it.","maxLength":200,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"get_projectArguments","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_speech_to_text_models":{"post":{"operationId":"list_speech_to_text_models","summary":"List Deepgram speech-to-text models with architecture, version, languages and whether they support batch and streaming. ","description":"List Deepgram speech-to-text models with architecture, version, languages and whether they support batch and streaming. Use for \"Which Deepgram speech-to-text models support streaming\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_outdated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include outdated model versions.","title":"Include Outdated"}},"title":"list_speech_to_text_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_text_to_speech_models":{"post":{"operationId":"list_text_to_speech_models","summary":"List Deepgram text-to-speech voices and models with architecture, version, languages and accent or age metadata. Use for","description":"List Deepgram text-to-speech voices and models with architecture, version, languages and accent or age metadata. Use for \"Which Deepgram text-to-speech voices are available\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_outdated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include outdated model versions.","title":"Include Outdated"}},"title":"list_text_to_speech_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/get_balances":{"post":{"operationId":"get_balances","summary":"Show the prepaid credit balances of a Deepgram project with amount and units. Use for \"How much Deepgram credit do I hav","description":"Show the prepaid credit balances of a Deepgram project with amount and units. Use for \"How much Deepgram credit do I have left\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Deepgram project id (UUID); list_projects returns it.","maxLength":200,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"get_balancesArguments","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_purchases":{"post":{"operationId":"list_purchases","summary":"List credit purchases (orders) of a Deepgram project with amount, units, type and dates. Use for \"What Deepgram credits ","description":"List credit purchases (orders) of a Deepgram project with amount, units, type and dates. Use for \"What Deepgram credits have I bought\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Deepgram project id (UUID); list_projects returns it.","maxLength":200,"title":"Project Id","type":"string"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many orders to return (1 to 1000, default 10).","title":"Limit"}},"required":["project_id"],"title":"list_purchasesArguments","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_usage_breakdown":{"post":{"operationId":"get_usage_breakdown","summary":"Show Deepgram usage for a date range: hours, requests, tokens and text-to-speech characters, optionally grouped by endpo","description":"Show Deepgram usage for a date range: hours, requests, tokens and text-to-speech characters, optionally grouped by endpoint, model, method and more. Use for \"How many hours of audio did I transcribe with Deepgram this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Deepgram project id (UUID); list_projects returns it.","maxLength":200,"title":"Project Id","type":"string"},"start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Start date, YYYY-MM-DD.","title":"Start"},"end":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"End date, YYYY-MM-DD.","title":"End"},"grouping":{"anyOf":[{"enum":["accessor","endpoint","feature_set","models","method","tags","deployment"],"type":"string"},{"type":"null"}],"default":null,"description":"Group results by one dimension.","title":"Grouping"},"endpoint":{"anyOf":[{"enum":["listen","read","speak","agent"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this endpoint.","title":"Endpoint"},"method":{"anyOf":[{"enum":["sync","async","streaming"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this request method.","title":"Method"}},"required":["project_id"],"title":"get_usage_breakdownArguments","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_billing_breakdown":{"post":{"operationId":"get_billing_breakdown","summary":"Show Deepgram billing in dollars for a date range, optionally grouped by line item, deployment, tags or accessor. Use fo","description":"Show Deepgram billing in dollars for a date range, optionally grouped by line item, deployment, tags or accessor. Use for \"How many dollars did I spend on Deepgram last month by line item\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Deepgram project id (UUID); list_projects returns it.","maxLength":200,"title":"Project Id","type":"string"},"start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Start date, YYYY-MM-DD.","title":"Start"},"end":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"End date, YYYY-MM-DD.","title":"End"},"deployment":{"anyOf":[{"enum":["hosted","beta","self-hosted"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this deployment type.","title":"Deployment"},"line_item":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this billing line item, for example a model or feature name.","title":"Line Item"}},"required":["project_id"],"title":"get_billing_breakdownArguments","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_requests":{"post":{"operationId":"list_requests","summary":"List recent Deepgram API requests of a project with id, time, path, deployment, HTTP-style status code and API key id. T","description":"List recent Deepgram API requests of a project with id, time, path, deployment, HTTP-style status code and API key id. Transcripts are not returned. Use for \"Which of my recent Deepgram requests failed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Deepgram project id (UUID); list_projects returns it.","maxLength":200,"title":"Project Id","type":"string"},"start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range: YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS.","title":"Start"},"end":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, same formats.","title":"End"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Requests per page (1 to 1000, default 10).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number.","title":"Page"},"status":{"anyOf":[{"enum":["succeeded","failed"],"type":"string"},{"type":"null"}],"default":null,"description":"Only requests that succeeded or failed.","title":"Status"},"endpoint":{"anyOf":[{"enum":["listen","read","speak","agent"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this endpoint.","title":"Endpoint"}},"required":["project_id"],"title":"list_requestsArguments","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}}}}