{"openapi":"3.1.0","info":{"title":"Azure AI Speech Batch (BYOK) API","version":"0.1.0","description":"Azure AI Speech Batch (BYOK) lets an AI assistant read your own Azure AI Speech Batch data through the Azure AI Speech Batch API with a key you supply (Azure AI Speech resource key (Keys and Endpoint page of the resource)). Read-only: 10 tools (list_transcriptions, get_transcription, list_base_models, get_base_model, list_custom_models, list_projects, list_endpoints, list_datasets,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-azure-ai-speech-batch.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-azure-ai-speech-batch/docs"},"termsOfService":"https://connectorbay.com/byok-azure-ai-speech-batch/terms"},"servers":[{"url":"https://byok-azure-ai-speech-batch.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-azure-ai-speech-batch/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_transcriptions":{"post":{"operationId":"list_transcriptions","summary":"List the batch transcription jobs of the resource with name, locale, status, dates and duration. Does not return transcr","description":"List the batch transcription jobs of the resource with name, locale, status, dates and duration. Does not return transcript text or audio links. Use for \"Which batch transcription jobs ran on my Azure Speech resource\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource":{"description":"Your Azure AI Speech resource name: the part before .cognitiveservices.azure.com, for example 'contoso-speech' (the resource needs a custom subdomain).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Resource","type":"string"},"api_version":{"anyOf":[{"const":"2025-10-15","type":"string"},{"type":"null"}],"default":"2025-10-15","description":"Speech to text REST API version (fixed).","title":"Api Version"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Skip this many items, for paging.","title":"Skip"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Top"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter expression over displayName, locale, status, createdDateTime, for example status eq 'Succeeded'. Operators eq, ne, gt, ge, lt, le, and, or, not.","title":"Filter"}},"required":["resource"],"title":"list_transcriptionsArguments","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_transcription":{"post":{"operationId":"get_transcription","summary":"Get one batch transcription job by id: name, locale, status, model, project, dates, duration and any error. Use for \"Wha","description":"Get one batch transcription job by id: name, locale, status, model, project, dates, duration and any error. Use for \"What is the status of transcription job 5f4e3d2c\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource":{"description":"Your Azure AI Speech resource name: the part before .cognitiveservices.azure.com, for example 'contoso-speech' (the resource needs a custom subdomain).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Resource","type":"string"},"transcription_id":{"description":"Transcription id (the last part of the job's self URL), for example '5f4e3d2c-1a2b-4c3d-9e8f-123456789abc'.","maxLength":64,"title":"Transcription Id","type":"string"},"api_version":{"anyOf":[{"const":"2025-10-15","type":"string"},{"type":"null"}],"default":"2025-10-15","description":"Speech to text REST API version (fixed).","title":"Api Version"}},"required":["resource","transcription_id"],"title":"get_transcriptionArguments","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_base_models":{"post":{"operationId":"list_base_models","summary":"List the Microsoft base speech models available for transcription and adaptation, with locale, status, features and depr","description":"List the Microsoft base speech models available for transcription and adaptation, with locale, status, features and deprecation dates. Use for \"Which base speech models can I use for en-US\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource":{"description":"Your Azure AI Speech resource name: the part before .cognitiveservices.azure.com, for example 'contoso-speech' (the resource needs a custom subdomain).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Resource","type":"string"},"api_version":{"anyOf":[{"const":"2025-10-15","type":"string"},{"type":"null"}],"default":"2025-10-15","description":"Speech to text REST API version (fixed).","title":"Api Version"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Skip this many items, for paging.","title":"Skip"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Top"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter expression over locale, displayName, createdDateTime, for example locale eq 'en-US'. Operators eq, ne, gt, ge, lt, le, and, or, not.","title":"Filter"}},"required":["resource"],"title":"list_base_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_base_model":{"post":{"operationId":"get_base_model","summary":"Get one base speech model by id with its locale, status, supported features and deprecation dates. Use for \"Show details","description":"Get one base speech model by id with its locale, status, supported features and deprecation dates. Use for \"Show details of base speech model aa11bb22\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource":{"description":"Your Azure AI Speech resource name: the part before .cognitiveservices.azure.com, for example 'contoso-speech' (the resource needs a custom subdomain).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Resource","type":"string"},"model_id":{"description":"Base model id (the last part of the model's self URL), for example 'aa11bb22-0000-4000-8000-123456789abc'.","maxLength":64,"title":"Model Id","type":"string"},"api_version":{"anyOf":[{"const":"2025-10-15","type":"string"},{"type":"null"}],"default":"2025-10-15","description":"Speech to text REST API version (fixed).","title":"Api Version"}},"required":["resource","model_id"],"title":"get_base_modelArguments","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_custom_models":{"post":{"operationId":"list_custom_models","summary":"List the custom speech models trained in the resource with base model, locale, status and dates. Use for \"Which custom s","description":"List the custom speech models trained in the resource with base model, locale, status and dates. Use for \"Which custom speech models have I trained\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource":{"description":"Your Azure AI Speech resource name: the part before .cognitiveservices.azure.com, for example 'contoso-speech' (the resource needs a custom subdomain).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Resource","type":"string"},"api_version":{"anyOf":[{"const":"2025-10-15","type":"string"},{"type":"null"}],"default":"2025-10-15","description":"Speech to text REST API version (fixed).","title":"Api Version"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Skip this many items, for paging.","title":"Skip"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Top"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter expression over displayName, locale, status, createdDateTime, for example status eq 'Succeeded'. Operators eq, ne, gt, ge, lt, le, and, or, not.","title":"Filter"}},"required":["resource"],"title":"list_custom_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_projects":{"post":{"operationId":"list_projects","summary":"List the custom speech projects of the resource with name, locale and creation date. Use for \"Which custom speech projec","description":"List the custom speech projects of the resource with name, locale and creation date. Use for \"Which custom speech projects do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource":{"description":"Your Azure AI Speech resource name: the part before .cognitiveservices.azure.com, for example 'contoso-speech' (the resource needs a custom subdomain).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Resource","type":"string"},"api_version":{"anyOf":[{"const":"2025-10-15","type":"string"},{"type":"null"}],"default":"2025-10-15","description":"Speech to text REST API version (fixed).","title":"Api Version"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Skip this many items, for paging.","title":"Skip"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Top"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter expression over displayName, locale, createdDateTime, for example locale eq 'en-US'. Operators eq, ne, gt, ge, lt, le, and, or, not.","title":"Filter"}},"required":["resource"],"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/list_endpoints":{"post":{"operationId":"list_endpoints","summary":"List the custom speech endpoints with model, locale, status and dates. Does not return audio logs. Use for \"Which custom","description":"List the custom speech endpoints with model, locale, status and dates. Does not return audio logs. Use for \"Which custom speech endpoints are deployed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource":{"description":"Your Azure AI Speech resource name: the part before .cognitiveservices.azure.com, for example 'contoso-speech' (the resource needs a custom subdomain).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Resource","type":"string"},"api_version":{"anyOf":[{"const":"2025-10-15","type":"string"},{"type":"null"}],"default":"2025-10-15","description":"Speech to text REST API version (fixed).","title":"Api Version"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Skip this many items, for paging.","title":"Skip"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Top"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter expression over displayName, locale, status, createdDateTime, for example status eq 'Succeeded'. Operators eq, ne, gt, ge, lt, le, and, or, not.","title":"Filter"}},"required":["resource"],"title":"list_endpointsArguments","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 the speech datasets (audio, transcripts, language data) used to train and test custom models, with kind, locale, st","description":"List the speech datasets (audio, transcripts, language data) used to train and test custom models, with kind, locale, status and line counts. Use for \"Which speech training datasets have I uploaded\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource":{"description":"Your Azure AI Speech resource name: the part before .cognitiveservices.azure.com, for example 'contoso-speech' (the resource needs a custom subdomain).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Resource","type":"string"},"api_version":{"anyOf":[{"const":"2025-10-15","type":"string"},{"type":"null"}],"default":"2025-10-15","description":"Speech to text REST API version (fixed).","title":"Api Version"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Skip this many items, for paging.","title":"Skip"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Top"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter expression over displayName, kind, locale, status, createdDateTime, for example kind eq 'Language'. Operators eq, ne, gt, ge, lt, le, and, or, not.","title":"Filter"}},"required":["resource"],"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}},"/v1/tools/list_evaluations":{"post":{"operationId":"list_evaluations","summary":"List accuracy evaluations of speech models with the compared models, status, dates and word error rates. Use for \"How di","description":"List accuracy evaluations of speech models with the compared models, status, dates and word error rates. Use for \"How did my custom speech models score in evaluations\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource":{"description":"Your Azure AI Speech resource name: the part before .cognitiveservices.azure.com, for example 'contoso-speech' (the resource needs a custom subdomain).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Resource","type":"string"},"api_version":{"anyOf":[{"const":"2025-10-15","type":"string"},{"type":"null"}],"default":"2025-10-15","description":"Speech to text REST API version (fixed).","title":"Api Version"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Skip this many items, for paging.","title":"Skip"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Top"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter expression over displayName, locale, status, createdDateTime, for example status eq 'Succeeded'. Operators eq, ne, gt, ge, lt, le, and, or, not.","title":"Filter"}},"required":["resource"],"title":"list_evaluationsArguments","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_project_transcriptions":{"post":{"operationId":"list_project_transcriptions","summary":"List the batch transcription jobs that belong to one speech project, with status, locale and dates. Use for \"Which trans","description":"List the batch transcription jobs that belong to one speech project, with status, locale and dates. Use for \"Which transcription jobs belong to project 1a2b3c4d\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource":{"description":"Your Azure AI Speech resource name: the part before .cognitiveservices.azure.com, for example 'contoso-speech' (the resource needs a custom subdomain).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Resource","type":"string"},"project_id":{"description":"Project id (the last part of the project's self URL), for example '1a2b3c4d-0000-4000-8000-123456789abc'.","maxLength":64,"title":"Project Id","type":"string"},"api_version":{"anyOf":[{"const":"2025-10-15","type":"string"},{"type":"null"}],"default":"2025-10-15","description":"Speech to text REST API version (fixed).","title":"Api Version"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Skip this many items, for paging.","title":"Skip"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Top"}},"required":["resource","project_id"],"title":"list_project_transcriptionsArguments","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}}}}