{"openapi":"3.0.0","info":{"title":"AI Services API","description":"","termsOfService":"https://zoom.us/docs/en-us/zoom_api_license_and_tou.html","contact":{"name":"Zoom Developers","url":"https://developer.zoom.us/"},"version":"2"},"externalDocs":{"description":"Find out more about Swagger","url":"https://swagger.io"},"servers":[{"url":"https://api.zoom.us/v2"}],"paths":{"/aiservices/scribe/jobs":{"get":{"tags":["Scribe"],"summary":"List Batch Jobs","description":"Retrieves a paginated list of batch transcription jobs for the authenticated tenant.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:read:list_scribe_batch_jobs:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listBatchJobs","parameters":[{"name":"state","in":"query","description":"This field filters jobs by processing state. Omit to return jobs in all states.","required":false,"schema":{"type":"string","example":"QUEUED","enum":["QUEUED","PROCESSING","SUCCEEDED","PARTIAL","FAILED","CANCELED"]}},{"name":"page_size","in":"query","description":"The maximum number of jobs to return per page.","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32","example":50,"default":50}},{"name":"next_page_token","in":"query","description":"The pagination token from the previous response's `next_page_token`field.","required":false,"schema":{"type":"string","example":"eyJqb2JfaWQiOiJqb2JfYWJjMTIzIn0"}}],"responses":{"200":{"description":"Jobs listed successfully","content":{"application/json":{"schema":{"required":["jobs"],"type":"object","properties":{"jobs":{"maxItems":100,"type":"array","description":"The list of batch jobs.","items":{"required":["job_id","state","submitted_at"],"type":"object","properties":{"job_id":{"type":"string","description":"The job identifier.","example":"job_abc123"},"state":{"type":"string","description":"The overall job processing state.","example":"PROCESSING","enum":["QUEUED","PROCESSING","SUCCEEDED","PARTIAL","FAILED","CANCELED"]},"submitted_at":{"type":"string","description":"The job submission timestamp.","format":"date-time","example":"2026-01-05T18:34:12Z"},"input":{"type":"object","properties":{"mode":{"type":"string","description":"The input mode specifying how files are provided.","example":"INPUT_PREFIX","enum":["SINGLE","INPUT_PREFIX","MANIFEST"]},"source":{"type":"string","description":"The storage provider where input files are located.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The URI path to input files or manifest.","example":"s3://acme-bucket/audio/"}},"description":"The input configuration."},"output":{"type":"object","properties":{"destination":{"type":"string","description":"The storage provider for output transcripts.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The URI path where transcripts will be written.","example":"s3://acme-bucket/transcripts/"},"layout":{"type":"string","description":"The output file organization pattern.","example":"PREFIX","enum":["ADJACENT","PREFIX"]}},"description":"The output configuration."},"config":{"type":"object","properties":{"language":{"type":"string","description":"The language code. See following page for details: https://developers.zoom.us/docs/api/references/abbreviations/","example":"en-US"},"timestamps":{"type":"boolean","description":"The include segment-level timestamps.","example":true,"default":true},"word_time_offsets":{"type":"boolean","description":"The include word-level timestamps.","example":false,"default":false},"channel_separation":{"type":"boolean","description":"Whether to transcribe stereo channels separately.","example":false,"default":false},"diarization":{"type":"boolean","description":"Whether to enable stretch or premium feature for speaker diarization.","example":false},"profanity_filter":{"type":"boolean","description":"Whether to enable profanity filtering.","example":false},"output_format":{"type":"string","description":"The output format (default json). Reserved for future (srt/vtt).","example":"json"}},"description":"The ASR configuration."},"summary":{"type":"object","properties":{"total_files":{"type":"integer","description":"The total number of files in the job.","example":2487},"queued":{"type":"integer","description":"The number of files waiting in the queue.","example":0},"processing":{"type":"integer","description":"The number of files currently being processed.","example":23},"succeeded":{"type":"integer","description":"The number of successfully processed files.","example":2450},"failed":{"type":"integer","description":"The number of files that failed processing.","example":14},"skipped":{"type":"integer","description":"The number of files skipped due to filters or errors.","example":0},"canceled":{"type":"integer","description":"The number of files canceled by user request.","example":0}},"description":"The job progress summary."},"error":{"type":"object","properties":{"code":{"type":"string","description":"The error code indicating the failure reason.","example":"INVALID_CREDENTIALS"},"message":{"type":"string","description":"The human-readable error message.","example":"AWS credentials expired"},"details":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional error context and details."}},"description":"Job-level error (only when state=FAILED).","nullable":true}}}},"next_page_token":{"type":"string","description":"The pagination token for fetching next page of results. Empty if no more results.","example":"eyJqb2JfaWQiOiJqb2JfZGVmNDU2In0"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:read:list_scribe_batch_jobs:admin"]}},"post":{"tags":["Scribe"],"summary":"Submit Batch Scribe Job","description":"Submits a batch transcription job for asynchronous processing. \n\nSupports three input modes: single file (mode inferred when uri points to single file), prefix/container enumeration (with optional filters), or explicit manifest (list of URIs). \n\nMaximum of 1000 files per manifest.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:write:scribe_batch_job:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"submitBatchAsr","requestBody":{"content":{"application/json":{"schema":{"required":["config","input","output"],"type":"object","properties":{"input":{"required":["source"],"type":"object","properties":{"mode":{"type":"string","description":"The input processing mode. Optional - can be inferred: 'SINGLE' if uri points to single file, 'PREFIX' if uri is directory/prefix, 'MANIFEST' if manifest array provided.","example":"PREFIX","enum":["SINGLE","PREFIX","MANIFEST"]},"source":{"type":"string","description":"The storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The S3 URI Blob URL for single file or prefix/container. Required for single and prefix modes.","format":"uri","example":"s3://acme-bucket/audio/2025/11/"},"manifest":{"maxItems":1000,"minItems":1,"type":"array","description":"The explicit list of file URIs for manifest mode. Each URI can include SAS tokens or signed URLs. Required when mode is 'manifest'. Maximum 1000 files per batch job.","example":["https://acct.blob.core.windows.net/audio/a1.mp3?sv=...sig=...","https://acct.blob.core.windows.net/audio/a2.wav?sv=...sig=..."],"items":{"type":"string","format":"uri"}},"filters":{"type":"object","properties":{"include_globs":{"maxItems":10,"type":"array","description":"The include only files that match the glob patterns. Supports wildcards: * (any chars), ** (recursive), ? (single char). Applied first.","example":["**/*.wav","**/*.mp3"],"items":{"type":"string"}},"exclude_globs":{"maxItems":10,"type":"array","description":"The exclude files that match the glob patterns. Applied after include_globs.","example":["**/tmp/**","*_draft.*"],"items":{"type":"string"}}},"description":"The file filtering options for prefix mode. Use glob patterns to include/exclude files from processing."},"auth":{"type":"object","properties":{"aws":{"required":["access_key_id","secret_access_key","session_token"],"type":"object","properties":{"access_key_id":{"type":"string","description":"The AWS access key ID.","example":"AKIAIOSFODNN7EXAMPLE"},"secret_access_key":{"type":"string","description":"The AWS secret access key.","example":"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"},"session_token":{"type":"string","description":"The AWS session token for temporary credentials (recommended for security).","example":"FwoGZXIvYXdzE..."}},"description":"The AWS credentials for S3 access. Required when source is 's3' and URIs are not pre-signed. Use session tokens for enhanced security."}},"description":"The authentication credentials for the input source."}},"description":"The input source configuration. Either 'uri' (for single/prefix modes) or 'manifest' (for manifest mode) must be provided."},"output":{"required":["destination","uri"],"type":"object","properties":{"destination":{"type":"string","description":"The output storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The output base URI for a single transcript file or a path for multiple transcript files.","format":"uri","example":"s3://acme-bucket/transcripts/2025/11/"},"layout":{"type":"string","description":"The output file layout strategy. 'SINGLE': use 'uri' for output file (single file mode). 'PREFIX': use output uri as base directory. 'ADJACENT': place output next to input file (same directory).","example":"PREFIX","enum":["SINGLE","PREFIX","ADJACENT"]},"auth":{"type":"object","properties":{"aws":{"required":["access_key_id","secret_access_key","session_token"],"type":"object","properties":{"access_key_id":{"type":"string","description":"The AWS access key ID.","example":"AKIAIOSFODNN7EXAMPLE"},"secret_access_key":{"type":"string","description":"The AWS secret access key.","example":"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"},"session_token":{"type":"string","description":"The AWS session token for temporary credentials (recommended for security).","example":"FwoGZXIvYXdzE..."}},"description":"The AWS credentials for S3 access. Required when source is 's3' and URIs are not pre-signed. Use session tokens for enhanced security."}},"description":"The authentication credentials for the output destination."}},"description":"The output destination configuration."},"config":{"type":"object","properties":{"language":{"type":"string","description":"The language code. See following page for details: https://developers.zoom.us/docs/api/references/abbreviations/","example":"en-US"},"word_time_offsets":{"type":"boolean","description":"The include word-level timestamps.","example":false,"default":false},"channel_separation":{"type":"boolean","description":"Whether to transcribe stereo channels separately.","example":false,"default":false},"diarization":{"type":"boolean","description":"The stretch or premium feature for speaker diarization.","example":false},"profanity_filter":{"type":"boolean","description":"Whether to enable profanity filtering.","example":false},"output_format":{"type":"string","description":"The output format. The default is JSON. Reserved for future (srt/vtt).","example":"json"},"segmentation_mode":{"type":"string","description":"The VAD option. The default value is 'auto'. auto: use default VAD behavior, none: disable VAD segmentation.","example":"auto","enum":["auto","none"]}},"description":"The ASR transcription configuration."},"reference_id":{"maxLength":256,"type":"string","description":"The customer-provided reference ID for tracking and correlation.","example":"import-2025-11"},"notifications":{"required":["webhook_url"],"type":"object","properties":{"webhook_url":{"type":"string","description":"The HTTPS webhook URL for job status notifications. It will receive POST requests on job state changes.","format":"uri","example":"https://example.com/hooks/scribe"},"secret":{"maxLength":256,"type":"string","description":"The HMAC secret for webhook signature verification. Used to sign notification payloads.","example":"hmac-secret"}},"description":"The webhook notification settings for job status updates."}}}}}},"responses":{"201":{"description":"Job submitted successfully and queued for processing.","content":{"application/json":{"schema":{"required":["job_id","state","submitted_at"],"type":"object","properties":{"job_id":{"type":"string","description":"The unique job identifier for tracking and status queries.","example":"job_abc123"},"state":{"type":"string","description":"The initial job state (typically 'QUEUED').","example":"QUEUED","enum":["QUEUED","PROCESSING","SUCCEEDED","PARTIAL","FAILED","CANCELED"]},"submitted_at":{"type":"string","description":"The job submission timestamp in ISO 8601 format.","format":"date-time","example":"2026-01-05T18:34:12Z"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"415":{"description":"**HTTP Status Code:** `415` <br>\n Unsupported Media Type  \n\n "},"422":{"description":"**HTTP Status Code:** `422` <br>\n Unprocessable Entity  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:write:scribe_batch_job:admin"]}}},"/aiservices/scribe/jobs/{jobId}":{"get":{"tags":["Scribe"],"summary":"Get Batch Job Status","description":"Retrieves job-level summary for a batch transcription job.\n\nReturns overall job state and progress statistics. Use `GET /ai/scribe/jobs/{jobId}/files` to retrieve per-file status with pagination.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:read:scribe_batch_job:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getBatchJobStatus","parameters":[{"name":"jobId","in":"path","description":"The unique identifier for the batch transcription job.","required":true,"schema":{"type":"string","example":"job_abc123"}}],"responses":{"200":{"description":"Job status retrieved successfully","content":{"application/json":{"schema":{"required":["job_id","state","submitted_at","summary"],"type":"object","properties":{"job_id":{"type":"string","description":"The job identifier.","example":"job_abc123"},"state":{"type":"string","description":"The overall job processing state. PARTIAL indicates some files succeeded while others failed.","example":"PARTIAL","enum":["QUEUED","PROCESSING","SUCCEEDED","PARTIAL","FAILED","CANCELED"]},"submitted_at":{"type":"string","description":"The job submission timestamp in ISO 8601 format.","format":"date-time","example":"2026-01-05T18:34:12Z"},"summary":{"required":["failed","processing","queued","skipped","succeeded","total_files"],"type":"object","properties":{"total_files":{"type":"integer","description":"The total number of files in job.","example":2487},"queued":{"type":"integer","description":"The files waiting in the queue.","example":0},"processing":{"type":"integer","description":"The files currently being processed.","example":23},"succeeded":{"type":"integer","description":"The successfully processed files.","example":2450},"failed":{"type":"integer","description":"The files that failed processing.","example":14},"skipped":{"type":"integer","description":"The files that are skipped due to filters or errors.","example":0}},"description":"The aggregated job progress statistics."}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:read:scribe_batch_job:admin"]}},"delete":{"tags":["Scribe"],"summary":"Cancel Batch Job","description":"Cancels a batch transcription job.\n\nOnly jobs in QUEUED or PROCESSING state can be canceled. \n\nSuccessfully canceled jobs  transition to CANCELED state. Jobs that are already COMPLETED, FAILED, or CANCELED cannot be canceled.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:delete:scribe_batch_job:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"cancelBatchJob","parameters":[{"name":"jobId","in":"path","description":"The unique identifier for the batch transcription job.","required":true,"schema":{"type":"string","example":"job_abc123"}}],"responses":{"204":{"description":"Job canceled successfully. No content returned. For details of job use get job status API. "},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:delete:scribe_batch_job:admin"]}}},"/aiservices/scribe/jobs/{jobId}/files":{"get":{"tags":["Scribe"],"summary":"List Batch Job Files","description":"Retrieves per-file processing status for a batch transcription job.\n\nUse `page_size` and `next_page_token` for pagination.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:read:list_scribe_batch_job_files:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listBatchJobFiles","parameters":[{"name":"jobId","in":"path","description":"The unique identifier for the batch transcription job.","required":true,"schema":{"type":"string","example":"job_abc123"}},{"name":"page_size","in":"query","description":"The maximum number of files to return per page.","required":false,"schema":{"maximum":1000,"minimum":1,"type":"integer","format":"int32","example":200,"default":200}},{"name":"next_page_token","in":"query","description":"The pagination token from the previous response's `next_page_token` field.","required":false,"schema":{"type":"string","example":"eyJ0YXNrX2lkIjoidGFza18wMDEifQ"}}],"responses":{"200":{"description":"Job files listed successfully.","content":{"application/json":{"schema":{"required":["files"],"type":"object","properties":{"files":{"maxItems":10000,"type":"array","description":"The per-file processing status results for the job.","items":{"required":["file_id","input_uri","output_uri","state"],"type":"object","properties":{"file_id":{"type":"string","description":"The unique file identifier within the job.","example":"f_001"},"input_uri":{"type":"string","description":"The source audio file URI.","example":"s3://acme-bucket/audio/2025/11/call_0001.wav"},"state":{"type":"string","description":"The current processing state of this file.","example":"FILE_SUCCEEDED","enum":["FILE_QUEUED","FILE_PROCESSING","FILE_SUCCEEDED","FILE_FAILED","FILE_CANCELED","FILE_SKIPPED"]},"output_uri":{"type":"string","description":"The transcript output URI. Null if file failed or not yet processed.","example":"s3://acme-bucket/transcripts/2025/11/call_0001.json"},"duration_sec":{"type":"number","description":"The audio duration in seconds (if successfully analyzed).","example":3520.2},"error":{"required":["code","message"],"type":"object","properties":{"code":{"type":"string","description":"The error code indicating the failure reason.","example":"UNSUPPORTED_MEDIA"},"message":{"type":"string","description":"The human-readable error description.","example":"OGG not enabled for MVP"}},"description":"The error details (only present when state=FAILED).","nullable":true}}}},"next_page_token":{"type":"string","description":"The pagination token for fetching the next page of results. Empty if no more results.","example":"eyJ0YXNrX2lkIjoidGFza18wMDIifQ"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:read:list_scribe_batch_job_files:admin"]}}},"/aiservices/scribe/jobs/{jobId}/files/{fileId}":{"get":{"tags":["Scribe"],"summary":"Get Batch Scribe Job File","description":"Retrieves the processing result for a specific file within a batch Scribe transcription job.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:read:scribe_batch_job_file:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getBatchScribeJobFile","parameters":[{"name":"jobId","in":"path","description":"The unique identifier of the batch Scribe job.","required":true,"schema":{"type":"string","example":"job_abc123"}},{"name":"fileId","in":"path","description":"The unique identifier of the file within the job.","required":true,"schema":{"type":"string","example":"f_001"}}],"responses":{"200":{"description":"File result retrieved successfully.","content":{"application/json":{"schema":{"required":["file_id","input_uri","state"],"type":"object","properties":{"file_id":{"type":"string","description":"The unique file identifier within the job.","example":"f_001"},"input_uri":{"type":"string","description":"The source audio file URI.","example":"s3://acme-bucket/audio/2025/11/meeting_001.mp3"},"state":{"type":"string","description":"The current processing state of this file.","example":"FILE_SUCCEEDED","enum":["FILE_QUEUED","FILE_PROCESSING","FILE_SUCCEEDED","FILE_FAILED","FILE_CANCELED","FILE_SKIPPED"]},"output_uri":{"type":"string","description":"The URI of the transcription result file. Null if not yet processed or failed.","nullable":true,"example":"s3://acme-bucket/transcripts/2025/11/meeting_001.json"},"duration_sec":{"type":"number","description":"The duration of the audio file in seconds. Present only when state is `FILE_SUCCEEDED`.","format":"double","nullable":true,"example":183.5},"error":{"type":"object","properties":{"code":{"type":"string","description":"The error code indicating the failure reason.","example":"UNSUPPORTED_CONTENT_TYPE"},"message":{"type":"string","description":"A human-readable error description.","example":"Content type application/pdf is not supported for transcription"},"details":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional error context."}},"description":"The error details. Only present when state is `FILE_FAILED`.","nullable":true}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:read:scribe_batch_job_file:admin"]}}},"/aiservices/scribe/live":{"get":{"tags":["Scribe"],"summary":"Live Scribe WebSocket","description":"Opens a WebSocket session for real-time transcription. This endpoint is backed by `LiveASRService.LiveTranscribe`, but the public wire contract is WebSocket frames, not direct protobuf JSON. Use the `live-asr` subprotocol when possible.\n\nAfter the WebSocket upgrade succeeds, the first client text frame should be a `session.update` ASR configuration event. Supported configuration fields are `input_audio_format` (`pcm16` only; omitted value defaults to `pcm16` with a non-fatal warning), `language`, `turn_detection.threshold`, `turn_detection.prefix_padding_ms`, `turn_detection.silence_duration_ms`, `turn_detection.min_pause_duration_ms`, `transcription.phrase_list`, and `transcription.enable_partial_results`.\n\nExample first text frame: `{ \"type\": \"session.update\", \"input_audio_format\": \"pcm16\", \"language\": \"en-US\", \"turn_detection\": { \"threshold\": 0.5, \"prefix_padding_ms\": 300, \"silence_duration_ms\": 350, \"min_pause_duration_ms\": 100 }, \"transcription\": { \"phrase_list\": [\"Zoom\"], \"enable_partial_results\": true } }`.\n\nAfter configuration, clients stream raw PCM16, 16 kHz, mono, 16-bit signed little-endian audio as binary frames. OpenAPI can describe the HTTP upgrade request; the post-upgrade bidirectional frame contract is documented in `x-websocket` and component schemas.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:write:live_transcribe:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"liveTranscribe","parameters":[{"name":"Sec-WebSocket-Protocol","in":"header","description":"WebSocket subprotocol requested by the client.","required":true,"schema":{"type":"string","example":"live-asr","enum":["live-asr"]}}],"responses":{"101":{"description":"WebSocket upgrade accepted. The connection switches to the WebSocket protocol and uses the frame contract described in `x-websocket`.","headers":{"Upgrade":{"description":"The selected upgraded protocol.","schema":{"type":"string","example":"websocket"}},"Connection":{"description":"Whether the connection was upgraded.","schema":{"type":"string","example":"Upgrade"}},"Sec-WebSocket-Protocol":{"description":"The selected WebSocket subprotocol when the client requested `live-asr`.","schema":{"type":"string","example":"live-asr","enum":["live-asr"]}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"426":{"description":"**HTTP Status Code:** `426` <br>\n Upgrade Required  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "},"503":{"description":"**HTTP Status Code:** `503` <br>\n Service Unavailable  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:write:live_transcribe:admin"]}}},"/aiservices/scribe/transcribe":{"post":{"tags":["Scribe"],"summary":"Scribe (Synchronous)","description":"Uploads a single audio file and receive transcript inline. Synchronous operation response returns immediately after the transcription completes.\n\nMaximum file size: 100MB. Maximum duration: 2 hours.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:write:transcribe:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createFastAsr","requestBody":{"description":"Uploads audio files with ASR configuration for synchronous transcription.","content":{"application/json":{"schema":{"required":["config","file"],"type":"object","properties":{"file":{"type":"string","description":"The audio file to transcribe. Supported formats: wav, mp3, m4a, flac, ogg, webm, mp4, mov. Max size: 100MB. Max duration: 2 hours.","format":"binary","example":"Vm0wd2QyUXlVWGxWV0d4WFlURndVRlpzWkZOWFZsbDNXa2M1V0Zac2JETlhhMUpUVmpGS2MySkVUbGhoTWsweFZtcEtTMUl5U2tWVWJHaG9UVlZ3VlZadGNFdFRNVTVJVm10a1dHSkdjRTlaVjNSR1pVWmFkR05GWkZwV01VcEpWbTEwVjFWdFNsWlhiR2hYWWxob2VsUlVSbUZrUjA1R1drWlNUbUpGY0VwV2JURXdWakZXZEZOclpGaGlSMmhoV1ZSR1lVMHhXbk5YYlhSWFRWaENTbGt3WkRSVk1rcElaSHBHVjJFeVVYZFpla3BIVmpGT2RWVnNXbWxTTW1oWFZtMTBWMlF5VW5OWGEyUllZbFZhY1ZSV1duZE5SbFowWlVkMFZXSkdjREZWVjNodlZqRktjMk5HYUZkaGEzQklWVEJhWVdSV1NuTlRiR1JUVFRBd01RPT0="},"config":{"type":"object","properties":{"language":{"type":"string","description":"Language code. See following page for details: https://developers.zoom.us/docs/api/references/abbreviations/","example":"en-US"},"timestamps":{"type":"boolean","description":"Include segment-level timestamps.","example":true,"default":true},"word_time_offsets":{"type":"boolean","description":"Include word-level timestamps.","example":false,"default":false},"channel_separation":{"type":"boolean","description":"Transcribe stereo channels separately.","example":false,"default":false},"diarization":{"type":"boolean","description":"Stretch/premium feature for speaker diarization.","example":false},"profanity_filter":{"type":"boolean","description":"Enable profanity filtering.","example":false},"output_format":{"type":"string","description":"Output format (default json). Reserved for future (srt/vtt).","example":"json"}},"description":"ASR configuration options"}}}}}},"responses":{"200":{"description":"Transcription completed successfully","content":{"application/json":{"schema":{"required":["duration_sec","request_id","result"],"type":"object","properties":{"request_id":{"type":"string","description":"The unique request identifier.","example":"req_123"},"duration_sec":{"type":"number","description":"The audio duration in seconds.","example":27.4},"result":{"required":["text_display"],"type":"object","properties":{"text_display":{"type":"string","description":"The formatted display text with punctuation and capitalization.","example":"Hello and welcome to the meeting..."},"segments":{"maxItems":10000,"type":"array","description":"The transcript segments with timing information. Only present when timestamps=true in config.","items":{"required":["text"],"type":"object","properties":{"start":{"type":"number","description":"The segment start time in seconds.","example":0},"end":{"type":"number","description":"The segment end time in seconds.","example":3.24},"text":{"type":"string","description":"The segment text.","example":"Hello and welcome..."},"channel":{"type":"integer","description":"The audio channel identifier for this segment.","format":"int32","example":0},"speaker":{"type":"string","description":"The speaker tag (e.g., 'speaker_1', 'speaker_2'). Only present when diarization=true in config.","example":"speaker_1"},"words":{"maxItems":100,"type":"array","description":"The word-level data with timing. Only present when `word_time_offsets=true` in config.","items":{"required":["word"],"type":"object","properties":{"word":{"type":"string","description":"The word text.","example":"Hello"},"start":{"type":"number","description":"The word start time in seconds.","example":0},"end":{"type":"number","description":"The word end time in seconds.","example":0.2}}}}}}}},"description":"Transcription result object containing text and optional timing or speaker data."},"model":{"type":"string","description":"The ASR model identifier for transcription.","example":"zoom-asr-en-v1"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"413":{"description":"**HTTP Status Code:** `413` <br>\n Payload Too Large  \n\n "},"415":{"description":"**HTTP Status Code:** `415` <br>\n Unsupported Media Type  \n\n "},"422":{"description":"**HTTP Status Code:** `422` <br>\n Unprocessable Entity  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:write:transcribe:admin"]}}},"/aiservices/summarizer/jobs":{"get":{"tags":["Summarizer"],"summary":"List Batch Summarizer Jobs","description":"Retrieves a paginated list of batch summarization jobs for the authenticated tenant.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:read:list_summarizer_batch_jobs:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listBatchSummarizerJobs","parameters":[{"name":"state","in":"query","description":"Filter jobs by processing state. Omit to return jobs in all states.","required":false,"schema":{"type":"string","example":"QUEUED","enum":["QUEUED","PROCESSING","SUCCEEDED","PARTIAL","FAILED","CANCELED"]}},{"name":"page_size","in":"query","description":"The maximum number of jobs to return per page.","required":false,"schema":{"maximum":1000,"minimum":1,"type":"integer","format":"int32","example":50,"default":50}},{"name":"next_page_token","in":"query","description":"The pagination token from the previous response's `next_page_token` field.","required":false,"schema":{"type":"string","example":"eyJqb2JfaWQiOiJqb2JfYWJjMTIzIn0"}}],"responses":{"200":{"description":"Jobs listed successfully.","content":{"application/json":{"schema":{"required":["jobs"],"type":"object","properties":{"jobs":{"maxItems":1000,"type":"array","description":"List of batch summarization jobs.","items":{"required":["job_id","state","submitted_at"],"type":"object","properties":{"job_id":{"type":"string","description":"The job identifier.","example":"job_abc123"},"state":{"type":"string","description":"The overall job processing state.","example":"PROCESSING","enum":["QUEUED","PROCESSING","SUCCEEDED","PARTIAL","FAILED","CANCELED"]},"submitted_at":{"type":"string","description":"The job submission timestamp in ISO 8601 format.","format":"date-time","example":"2026-01-05T18:34:12Z"},"input":{"type":"object","properties":{"mode":{"type":"string","description":"The input mode.","example":"PREFIX","enum":["SINGLE","PREFIX","MANIFEST"]},"source":{"type":"string","description":"The storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The URI path to input files.","example":"s3://acme-bucket/transcripts/"}},"description":"The input configuration."},"output":{"type":"object","properties":{"destination":{"type":"string","description":"The output storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The URI path where summaries are written.","example":"s3://acme-bucket/summaries/"},"layout":{"type":"string","description":"The output file layout strategy.","example":"PREFIX","enum":["ADJACENT","PREFIX"]}},"description":"The output configuration."},"config":{"type":"object","properties":{"summary_type":{"type":"string","description":"The type of content being summarized. Defaults to `CONVERSATION`.","example":"CONVERSATION","default":"CONVERSATION","enum":["CONVERSATION"]},"task":{"type":"string","description":"The summarization task type. Defaults to `full_summary` if not specified. Accepted values are `full_summary`, `recap`, `action_items`, and `summary`.","example":"full_summary","enum":["full_summary","recap","action_items","summary"]},"language":{"type":"string","description":"The output language ISO locale code. Supported values: `en-US`, `zh-CN`, `zh-Hans`, `ja-JP`, `es-ES`, `fr-FR`, `de-DE`, `pt-PT`, `pt-BR`, `it-IT`, `ar-SA`, `ar-AE`.","example":"en-US"},"output_format":{"type":"string","description":"The output format. Defaults to `text`. Currently only `text` is supported.","example":"text","enum":["text"]}},"description":"The summarization configuration."},"summary":{"type":"object","properties":{"total_files":{"type":"integer","description":"The total number of files in the job.","example":2487},"queued":{"type":"integer","description":"The number of files waiting in the queue.","example":0},"processing":{"type":"integer","description":"The number of files currently being processed.","example":23},"succeeded":{"type":"integer","description":"The number of successfully processed files.","example":2450},"failed":{"type":"integer","description":"The number of files that failed processing.","example":14},"skipped":{"type":"integer","description":"The number of files skipped due to filters or limits.","example":0},"canceled":{"type":"integer","description":"The number of files canceled by user request.","example":0}},"description":"The job progress summary."},"error":{"type":"object","properties":{"code":{"type":"string","description":"The error code indicating the failure reason.","example":"INVALID_CREDENTIALS"},"message":{"type":"string","description":"A human-readable error message.","example":"AWS credentials expired"}},"description":"The job-level error. Only present when state is `FAILED`.","nullable":true},"usage":{"type":"object","properties":{"input_units":{"type":"number","description":"The total input characters processed across all succeeded files.","example":985430},"output_units":{"type":"number","description":"The total output characters generated across all succeeded files.","example":62140},"unit_type":{"type":"string","description":"The unit of measurement for billing.","example":"characters"}},"description":"The aggregate character usage for this job. Null until at least one file has been processed.","nullable":true}}}},"next_page_token":{"type":"string","description":"The pagination token for fetching the next page. Empty if no more results.","example":"eyJqb2JfaWQiOiJqb2JfZGVmNDU2In0"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:read:list_summarizer_batch_jobs:admin"]}},"post":{"tags":["Summarizer"],"summary":"Submit Batch Summarizer Job","description":"Submits a batch summarization job for asynchronous processing.\n\nSupports three input modes: single file (mode inferred when the URI points to a single file), prefix or container enumeration (with optional filters), or explicit manifest (list of URIs).\n\nMaximum of 1,000 files per manifest.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:write:summarizer_batch_job:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"submitBatchSummarizer","requestBody":{"content":{"application/json":{"schema":{"required":["input","output"],"type":"object","properties":{"input":{"required":["source"],"type":"object","properties":{"mode":{"type":"string","description":"The input processing mode. Optional — can be inferred: `MANIFEST` if a manifest array is provided, `SINGLE` if the URI points to a single file, or `PREFIX` if the URI is a directory/prefix.","example":"PREFIX","enum":["SINGLE","PREFIX","MANIFEST"]},"source":{"type":"string","description":"The storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The S3 URI for a single file or prefix/container. Required for SINGLE and PREFIX modes.","format":"uri","example":"s3://acme-bucket/transcripts/2025/11/"},"manifest":{"maxItems":1000,"minItems":1,"type":"array","description":"The explicit list of file URIs for MANIFEST mode. Required when mode is `MANIFEST`. Maximum of 1,000 files per batch job.","example":["s3://acme-bucket/transcripts/meeting_001.vtt","s3://acme-bucket/transcripts/meeting_002.vtt"],"items":{"type":"string","format":"uri"}},"filters":{"type":"object","properties":{"include_globs":{"maxItems":10,"type":"array","description":"The include only files matching these glob patterns. Supports wildcards: `*` (any characters), `**` (recursive), `?` (single character). Applied before `exclude_globs`.","example":["**/*.vtt","**/*.txt"],"items":{"type":"string"}},"exclude_globs":{"maxItems":10,"type":"array","description":"The exclude files matching these glob patterns. Applied after `include_globs`.","example":["**/tmp/**","*_draft.*"],"items":{"type":"string"}}},"description":"The file filtering options for PREFIX mode. Use glob patterns to include or exclude files."},"auth":{"type":"object","properties":{"aws":{"required":["access_key_id","secret_access_key","session_token"],"type":"object","properties":{"access_key_id":{"type":"string","description":"The AWS access key ID.","example":"YOUR_AWS_ACCESS_KEY_ID"},"secret_access_key":{"type":"string","description":"The AWS secret access key.","example":"YOUR_AWS_SECRET_ACCESS_KEY"},"session_token":{"type":"string","description":"The AWS session token for temporary credentials (recommended).","example":"FwoGZXIvYXdzE..."}},"description":"The AWS credentials for S3 access. Required when the source is S3 and URIs are not pre-signed."}},"description":"The storage authentication credentials."}},"description":"The input source configuration. Provide `uri` (for SINGLE/PREFIX modes) or `manifest` (for MANIFEST mode)."},"output":{"required":["destination","uri"],"type":"object","properties":{"destination":{"type":"string","description":"The output storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The base output URI where summarization results will be written.","format":"uri","example":"s3://acme-bucket/summaries/2025/11/"},"layout":{"type":"string","description":"The output file layout strategy. `ADJACENT`: places output next to the input file. `PREFIX`: uses the output URI as the base directory.","example":"PREFIX","enum":["ADJACENT","PREFIX"]},"overwrite":{"type":"boolean","description":"Whether to overwrite existing output files.","example":false,"default":false},"auth":{"type":"object","properties":{"aws":{"required":["access_key_id","secret_access_key","session_token"],"type":"object","properties":{"access_key_id":{"type":"string","description":"The AWS access key ID.","example":"YOUR_AWS_ACCESS_KEY_ID"},"secret_access_key":{"type":"string","description":"The AWS secret access key.","example":"YOUR_AWS_SECRET_ACCESS_KEY"},"session_token":{"type":"string","description":"The AWS session token for temporary credentials (recommended).","example":"FwoGZXIvYXdzE..."}},"description":"The AWS credentials for S3 write access."}},"description":"The storage authentication credentials."}},"description":"The output destination configuration."},"config":{"type":"object","properties":{"summary_type":{"type":"string","description":"The type of content being summarized. Defaults to `CONVERSATION`.","example":"CONVERSATION","default":"CONVERSATION","enum":["CONVERSATION"]},"task":{"type":"string","description":"The summarization task type. Defaults to `full_summary` if not specified. Accepted values are `full_summary`, `recap`, `action_items`, and `summary`.","example":"full_summary","default":"full_summary","enum":["full_summary","recap","action_items","summary"]},"language":{"type":"string","description":"The output language as an ISO locale code. Supported: `en-US`, `zh-CN`, `zh-Hans`, `ja-JP`, `es-ES`, `fr-FR`, `de-DE`, `pt-PT`, `pt-BR`, `it-IT`, `ar-SA`, `ar-AE`. Defaults to `en-US`.","example":"en-US"},"output_format":{"type":"string","description":"The output format. Defaults to `text`. Currently only `text` is supported.","example":"text","default":"text","enum":["text"]}},"description":"The summarization configuration."},"reference_id":{"maxLength":256,"type":"string","description":"The customer-provided reference ID for deduplication and correlation. Submitting the same `reference_id` twice returns the existing job instead of creating a duplicate.","example":"summarize-2025-11"},"notifications":{"type":"object","properties":{"webhook_url":{"type":"string","description":"The HTTPS webhook URL to receive POST notifications on job state changes.","format":"uri","example":"https://example.com/hooks/summarizer"},"secret":{"maxLength":256,"type":"string","description":"The shared secret used to sign webhook payloads. Used as the HMAC key when `security_type` is `WEBHOOK_SECURITY_HMAC`, or as the JWT signing key when `security_type` is `WEBHOOK_SECURITY_JWT`.","example":"hmac-secret"},"security_type":{"type":"string","description":"The webhook payload signature scheme. Defaults to `WEBHOOK_SECURITY_HMAC`.","example":"WEBHOOK_SECURITY_HMAC","default":"WEBHOOK_SECURITY_HMAC","enum":["WEBHOOK_SECURITY_HMAC","WEBHOOK_SECURITY_JWT"]},"audience":{"type":"string","description":"The JWT audience (`aud` claim) for the signed webhook token. Required when `security_type` is `WEBHOOK_SECURITY_JWT`.","example":"https://example.com/hooks/summarizer"}},"description":"The webhook notification settings for job status updates."},"limits":{"type":"object","properties":{"max_files":{"type":"integer","description":"The maximum number of files to process. Excess files are skipped.","example":500}},"description":"The job processing limits."}}}}}},"responses":{"201":{"description":"Job submitted successfully and queued for processing.","content":{"application/json":{"schema":{"required":["job_id","state","submitted_at"],"type":"object","properties":{"job_id":{"type":"string","description":"The unique job identifier for tracking and status queries.","example":"job_abc123"},"state":{"type":"string","description":"The initial job state (typically `QUEUED`).","example":"QUEUED","enum":["QUEUED","PROCESSING","SUCCEEDED","PARTIAL","FAILED","CANCELED"]},"submitted_at":{"type":"string","description":"The job submission timestamp in ISO 8601 format.","format":"date-time","example":"2026-01-05T18:34:12Z"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  A job with the same `reference_id` already exists. \n\n "},"422":{"description":"**HTTP Status Code:** `422` <br>\n Unprocessable Entity  The request body contains invalid or missing fields. \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:write:summarizer_batch_job:admin"]}}},"/aiservices/summarizer/jobs/{jobId}":{"get":{"tags":["Summarizer"],"summary":"Get Batch Summarizer Job","description":"Retrieves job-level status, configuration, and progress summary for a batch summarization job.\n\nTo list individual file results, use the List Batch Job Files endpoint.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:read:summarizer_batch_job:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getBatchSummarizerJob","parameters":[{"name":"jobId","in":"path","description":"The unique identifier of the batch summarization job.","required":true,"schema":{"type":"string","example":"job_abc123"}}],"responses":{"200":{"description":"Job status retrieved successfully.","content":{"application/json":{"schema":{"required":["job_id","state","submitted_at"],"type":"object","properties":{"job_id":{"type":"string","description":"The job identifier.","example":"job_abc123"},"state":{"type":"string","description":"Overall job processing state. `PARTIAL` indicates some files succeeded while others failed.","example":"PROCESSING","enum":["QUEUED","PROCESSING","SUCCEEDED","PARTIAL","FAILED","CANCELED"]},"submitted_at":{"type":"string","description":"The job submission timestamp in ISO 8601 format.","format":"date-time","example":"2026-01-05T18:34:12Z"},"input":{"type":"object","properties":{"mode":{"type":"string","description":"The input mode.","example":"PREFIX","enum":["SINGLE","PREFIX","MANIFEST"]},"source":{"type":"string","description":"The storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The URI path to input files.","example":"s3://acme-bucket/transcripts/2025/11/"}},"description":"The input configuration used when the job was submitted."},"output":{"type":"object","properties":{"destination":{"type":"string","description":"The output storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The URI path where summaries are written.","example":"s3://acme-bucket/summaries/2025/11/"},"layout":{"type":"string","description":"The output file layout strategy.","example":"PREFIX","enum":["ADJACENT","PREFIX"]}},"description":"The output configuration used when the job was submitted."},"config":{"type":"object","properties":{"summary_type":{"type":"string","description":"The type of content being summarized. Defaults to `CONVERSATION`.","example":"CONVERSATION","default":"CONVERSATION","enum":["CONVERSATION"]},"task":{"type":"string","description":"The summarization task type. Defaults to `full_summary` if not specified. Accepted values are `full_summary`, `recap`, `action_items`, and `summary`.","example":"full_summary","enum":["full_summary","recap","action_items","summary"]},"language":{"type":"string","description":"The output language ISO locale code. Supported values: `en-US`, `zh-CN`, `zh-Hans`, `ja-JP`, `es-ES`, `fr-FR`, `de-DE`, `pt-PT`, `pt-BR`, `it-IT`, `ar-SA`, `ar-AE`.","example":"en-US"},"output_format":{"type":"string","description":"The output format. Defaults to `text`. Currently only `text` is supported.","example":"text","enum":["text"]}},"description":"The summarization configuration used for this job."},"summary":{"type":"object","properties":{"total_files":{"type":"integer","description":"The total number of files in the job.","example":2487},"queued":{"type":"integer","description":"The number of files waiting in the queue.","example":0},"processing":{"type":"integer","description":"The number of files currently being processed.","example":23},"succeeded":{"type":"integer","description":"The number of successfully processed files.","example":2450},"failed":{"type":"integer","description":"The number of files that failed processing.","example":14},"skipped":{"type":"integer","description":"The number of files skipped due to filters or limits.","example":0},"canceled":{"type":"integer","description":"The number of files canceled by user request.","example":0}},"description":"Aggregated job progress statistics."},"error":{"type":"object","properties":{"code":{"type":"string","description":"The error code indicating the failure reason.","example":"INVALID_CREDENTIALS"},"message":{"type":"string","description":"A human-readable error message.","example":"AWS credentials expired"},"details":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional error context."}},"description":"The job-level error. Only present when state is `FAILED`.","nullable":true},"usage":{"type":"object","properties":{"input_units":{"type":"number","description":"The total input characters processed across all succeeded files.","example":985430},"output_units":{"type":"number","description":"The total output characters generated across all succeeded files.","example":62140},"unit_type":{"type":"string","description":"The unit of measurement for billing.","example":"characters"}},"description":"The aggregate character usage for the entire batch job. Null until at least one file has been processed.","nullable":true}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:read:summarizer_batch_job:admin"]}},"delete":{"tags":["Summarizer"],"summary":"Cancel Batch Summarizer Job","description":"Cancels a batch summarization job.\n\nOnly jobs in a `QUEUED` or `PROCESSING` state can be canceled.\n\nSuccessfully canceled jobs transition to the `CANCELED` state. Jobs that are already in a `SUCCEEDED`, `FAILED`, or `CANCELED` state cannot be canceled.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:delete:summarizer_batch_job:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"cancelBatchSummarizerJob","parameters":[{"name":"jobId","in":"path","description":"The unique identifier of the batch summarization job to cancel.","required":true,"schema":{"type":"string","example":"job_abc123"}}],"responses":{"204":{"description":"Job canceled successfully. No content returned."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  The job is already in a terminal state (`SUCCEEDED`, `FAILED`, or `CANCELED`). \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:delete:summarizer_batch_job:admin"]}}},"/aiservices/summarizer/jobs/{jobId}/files":{"get":{"tags":["Summarizer"],"summary":"List Batch Summarizer Job Files","description":"Retrieves a paginated list of individual file results for a batch summarization job.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:read:list_summarizer_batch_job_files:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listBatchSummarizerJobFiles","parameters":[{"name":"jobId","in":"path","description":"The unique identifier of the batch summarization job.","required":true,"schema":{"type":"string","example":"job_abc123"}},{"name":"state","in":"query","description":"This field enables you to filter files by processing state. If you omit this parameter, the API returns files in all states.","required":false,"schema":{"type":"string","example":"FILE_SUCCEEDED","enum":["FILE_QUEUED","FILE_PROCESSING","FILE_SUCCEEDED","FILE_FAILED","FILE_CANCELED","FILE_SKIPPED"]}},{"name":"page_size","in":"query","description":"The maximum number of files to return per page.","required":false,"schema":{"maximum":1000,"minimum":1,"type":"integer","format":"int32","example":100,"default":100}},{"name":"next_page_token","in":"query","description":"The pagination token from the previous response's `next_page_token` field.","required":false,"schema":{"type":"string","example":"eyJmaWxlX2lkIjoiZl8wMDEifQ"}}],"responses":{"200":{"description":"Files listed successfully.","content":{"application/json":{"schema":{"required":["files"],"type":"object","properties":{"files":{"maxItems":1000,"type":"array","description":"The list of file results for this page.","items":{"required":["file_id","input_uri","state"],"type":"object","properties":{"file_id":{"type":"string","description":"The unique file identifier within the job.","example":"f_001"},"input_uri":{"type":"string","description":"The source transcript file URI.","example":"s3://acme-bucket/transcripts/2025/11/meeting_001.vtt"},"state":{"type":"string","description":"The current processing state of this file.","example":"FILE_SUCCEEDED","enum":["FILE_QUEUED","FILE_PROCESSING","FILE_SUCCEEDED","FILE_FAILED","FILE_CANCELED","FILE_SKIPPED"]},"output_uri":{"type":"string","description":"The URI of the summarization result JSON file. Null if not yet processed or failed.","nullable":true,"example":"s3://acme-bucket/summaries/2025/11/meeting_001.json"},"usage":{"type":"object","properties":{"input_units":{"type":"number","description":"The number of input characters processed.","example":4820},"output_units":{"type":"number","description":"The number of output characters generated.","example":312},"unit_type":{"type":"string","description":"The unit of measurement for billing.","example":"characters"},"details":{"type":"object","properties":{"summarizer":{"type":"object","properties":{"task":{"type":"string","description":"The task type.","example":"full_summary"},"summary_type":{"type":"string","description":"The type of content summarized.","example":"CONVERSATION"}},"description":"Summarizer-specific usage details."}},"description":"Service-specific billing details."}},"description":"Character usage for billing. Null until processing completes.","nullable":true},"error":{"type":"object","properties":{"code":{"type":"string","description":"Error code indicating the failure reason.","example":"UNSUPPORTED_CONTENT_TYPE"},"message":{"type":"string","description":"Human-readable error description.","example":"Content type audio/wav is not supported for summarization"}},"description":"Error details. Only present when state is `FILE_FAILED`.","nullable":true}}}},"next_page_token":{"type":"string","description":"Pagination token for fetching the next page. Empty if no more results.","example":"eyJmaWxlX2lkIjoiZl8xMDEifQ"}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:read:list_summarizer_batch_job_files:admin"]}}},"/aiservices/summarizer/jobs/{jobId}/files/{fileId}":{"get":{"tags":["Summarizer"],"summary":"Get Batch Summarizer Job File","description":"Retrieves the processing result for a specific file within a batch summarization job.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:read:summarizer_batch_job_file:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getBatchSummarizerJobFile","parameters":[{"name":"jobId","in":"path","description":"The unique identifier of the batch summarization job.","required":true,"schema":{"type":"string","example":"job_abc123"}},{"name":"fileId","in":"path","description":"The unique identifier of the file within the job.","required":true,"schema":{"type":"string","example":"f_001"}}],"responses":{"200":{"description":"File result retrieved successfully.","content":{"application/json":{"schema":{"required":["file_id","input_uri","state"],"type":"object","properties":{"file_id":{"type":"string","description":"The unique identifier of the file within the job.","example":"f_001"},"input_uri":{"type":"string","description":"The source transcript file URI.","example":"s3://acme-bucket/transcripts/2025/11/meeting_001.vtt"},"state":{"type":"string","description":"The current processing state of this file.","example":"FILE_SUCCEEDED","enum":["FILE_QUEUED","FILE_PROCESSING","FILE_SUCCEEDED","FILE_FAILED","FILE_CANCELED","FILE_SKIPPED"]},"output_uri":{"type":"string","description":"The URI of the summarization result JSON file. This value is `null` if the file has not yet been processed or processing failed.","nullable":true,"example":"s3://acme-bucket/summaries/2025/11/meeting_001.json"},"usage":{"type":"object","properties":{"input_units":{"type":"number","description":"The number of input characters processed.","example":4820},"output_units":{"type":"number","description":"The number of output characters generated.","example":312},"unit_type":{"type":"string","description":"The unit of measurement for billing.","example":"characters"},"details":{"type":"object","properties":{"summarizer":{"type":"object","properties":{"task":{"type":"string","description":"The task type.","example":"full_summary"},"summary_type":{"type":"string","description":"The type of content summarized.","example":"CONVERSATION"}},"description":"Summarizer-specific usage details."}},"description":"Service-specific billing details."}},"description":"The character usage for billing. This value is `null` until processing completes.","nullable":true},"error":{"type":"object","properties":{"code":{"type":"string","description":"The error code indicating the failure reason.","example":"UNSUPPORTED_CONTENT_TYPE"},"message":{"type":"string","description":"A human-readable error description.","example":"Content type audio/wav is not supported for summarization"},"details":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional error context."}},"description":"Error details. Only present when the state is `FILE_FAILED`.","nullable":true}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:read:summarizer_batch_job_file:admin"]}}},"/aiservices/summarizer/summarize":{"post":{"tags":["Summarizer"],"summary":"Summarize (Synchronous)","description":"Submit transcript text and receive a summary inline. This is a synchronous operation — the response is returned immediately after summarization completes.\n\nSupported task types: full summary (recap + section summary + action items, also returned combined as markdown), recap only, action items only, or section summary only.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:write:summarize:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"summarize","requestBody":{"content":{"application/json":{"schema":{"required":["input"],"type":"object","properties":{"input":{"required":["text"],"type":"object","properties":{"text":{"type":"string","description":"The transcript text to summarize.","example":"Alice: Good morning everyone, let's get started.\nBob: I finished the auth module last week.\nAlice: Great. Bob, can you document the API by Friday?\nBob: Sure, I'll have that done."}},"description":"The input content to summarize."},"config":{"type":"object","properties":{"summary_type":{"type":"string","description":"The type of content being summarized. Defaults to `CONVERSATION`.","example":"CONVERSATION","default":"CONVERSATION","enum":["CONVERSATION"]},"task":{"type":"string","description":"The summarization task type. Defaults to `full_summary` if not specified. Accepted values: `full_summary`, `recap`, `action_items`, and `summary`.","example":"full_summary","default":"full_summary","enum":["full_summary","recap","action_items","summary"]},"language":{"type":"string","description":"The output language as an ISO locale code. Supported values: `en-US`, `zh-CN`, `zh-Hans`, `ja-JP`, `es-ES`, `fr-FR`, `de-DE`, `pt-PT`, `pt-BR`, `it-IT`, `ar-SA`, `ar-AE`. Defaults to `en-US`.","example":"en-US"},"output_format":{"type":"string","description":"The output format. Defaults to `text`. Currently, only `text` is supported.","example":"text","default":"text","enum":["text"]}},"description":"Summarization configuration options."}}}}}},"responses":{"200":{"description":"Summarization completed successfully.","content":{"application/json":{"schema":{"required":["model","request_id","result","task","usage"],"type":"object","properties":{"request_id":{"type":"string","description":"The unique request identifier.","example":"req_abc123"},"task":{"type":"string","description":"The task that was executed.","example":"full_summary","enum":["full_summary","recap","action_items","summary"]},"result":{"type":"object","properties":{"recap":{"type":"string","description":"A high-level meeting recap. Present when the task is `full_summary` or `recap`.","example":"The team aligned on deliverables: Bob will document the auth API by Friday."},"summary_text":{"type":"string","description":"A section-by-section summary. Present when the task is `full_summary` or `summary`.","example":"**Authentication Module**\nBob completed the auth module. Documentation is due Friday."},"action_items":{"type":"string","description":"The extracted action items. Present when the task is `full_summary` or `action_items`.","example":"- **Bob**: Document the auth API by Friday"},"full_summary":{"type":"string","description":"A combined markdown summary with recap, section summary, and action items formatted as sections. Present when the task is `full_summary`.","example":"## Recap\nThe team aligned on deliverables: Bob will document the auth API by Friday.\n\n## Summary\n**Authentication Module**\nBob completed the auth module. Documentation is due Friday.\n\n## Action Items\n- **Bob**: Document the auth API by Friday"}},"description":"The summarization result. The fields populated depend on the `task` value."},"model":{"type":"string","description":"The model identifier used for summarization.","example":"zoom-summarizer-v1"},"usage":{"type":"object","properties":{"input_units":{"type":"integer","description":"The number of input characters processed.","example":4820},"output_units":{"type":"integer","description":"The number of output characters generated.","example":312},"unit_type":{"type":"string","description":"The unit of measurement for billing.","example":"characters"},"details":{"type":"object","properties":{"summarizer":{"type":"object","properties":{"task":{"type":"string","description":"The task type used.","example":"full_summary"},"summary_type":{"type":"string","description":"The type of content summarized.","example":"CONVERSATION"}},"description":"The summarizer-specific usage details."}},"description":"The service-specific billing details."}},"description":"The token and character usage for billing."}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"422":{"description":"**HTTP Status Code:** `422` <br>\n Unprocessable Entity  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:write:summarize:admin"]}}},"/aiservices/translator/jobs":{"get":{"tags":["Translator"],"summary":"List Batch Translator Jobs","description":"Retrieves a paginated list of batch translation jobs for the authenticated tenant.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:read:list_translator_batch_jobs:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listBatchTranslatorJobs","parameters":[{"name":"state","in":"query","description":"Filter jobs by processing state. Omit to return jobs in all states.","required":false,"schema":{"type":"string","example":"QUEUED","enum":["QUEUED","PROCESSING","SUCCEEDED","PARTIAL","FAILED","CANCELED"]}},{"name":"page_size","in":"query","description":"The maximum number of jobs to return per page.","required":false,"schema":{"maximum":1000,"minimum":1,"type":"integer","format":"int32","example":50,"default":50}},{"name":"next_page_token","in":"query","description":"The pagination token from the previous response's `next_page_token` field.","required":false,"schema":{"type":"string","example":"eyJqb2JfaWQiOiJqb2JfYWJjMTIzIn0"}}],"responses":{"200":{"description":"Jobs listed successfully.","content":{"application/json":{"schema":{"required":["jobs"],"type":"object","properties":{"jobs":{"maxItems":1000,"type":"array","description":"List of batch translation jobs.","items":{"required":["job_id","state","submitted_at"],"type":"object","properties":{"job_id":{"type":"string","description":"The job identifier.","example":"job_abc123"},"state":{"type":"string","description":"The overall job processing state.","example":"PROCESSING","enum":["QUEUED","PROCESSING","SUCCEEDED","PARTIAL","FAILED","CANCELED"]},"submitted_at":{"type":"string","description":"The job submission timestamp in ISO 8601 format.","format":"date-time","example":"2026-01-05T18:34:12Z"},"input":{"type":"object","properties":{"mode":{"type":"string","description":"The input mode.","example":"PREFIX","enum":["SINGLE","PREFIX","MANIFEST"]},"source":{"type":"string","description":"The storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The URI path to the input files.","example":"s3://acme-bucket/text/"}},"description":"The input configuration."},"output":{"type":"object","properties":{"destination":{"type":"string","description":"The output storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The URI path where translations are written.","example":"s3://acme-bucket/translations/"},"layout":{"type":"string","description":"The output file layout strategy.","example":"PREFIX","enum":["ADJACENT","PREFIX"]}},"description":"The output configuration."},"config":{"type":"object","properties":{"source_language":{"type":"string","description":"The source language ISO locale code. Empty if auto-detected.\n\nSupported: `en-US`, `zh-CN`, `zh-Hans`, `zh-TW`, `zh-Hant`, `ja-JP`, `ko-KR`, `es-ES`, `fr-FR`, `de-DE`, `pt-PT`, `pt-BR`, `it-IT`","example":"en-US"},"target_languages":{"type":"array","description":"The target language ISO locale codes.\n\nSupported: `en-US`, `zh-CN`, `zh-Hans`, `zh-TW`, `zh-Hant`, `ja-JP`, `ko-KR`, `es-ES`, `fr-FR`, `de-DE`, `pt-PT`, `pt-BR`, `it-IT`","example":["es-ES"],"items":{"type":"string"}}},"description":"The translation configuration."},"summary":{"type":"object","properties":{"total_files":{"type":"integer","description":"The total number of files in the job.","example":2487},"queued":{"type":"integer","description":"The number of files waiting in the queue.","example":0},"processing":{"type":"integer","description":"The number of files currently being processed.","example":23},"succeeded":{"type":"integer","description":"The number of successfully processed files.","example":2450},"failed":{"type":"integer","description":"The number of files that failed processing.","example":14},"skipped":{"type":"integer","description":"The number of files skipped due to filters or limits.","example":0},"canceled":{"type":"integer","description":"The number of files canceled by user request.","example":0}},"description":"The job progress summary."},"error":{"type":"object","properties":{"code":{"type":"string","description":"The error code indicating the failure reason.","example":"INVALID_CREDENTIALS"},"message":{"type":"string","description":"A human-readable error message.","example":"AWS credentials expired"}},"description":"The job-level error. Only present when the state is `FAILED`.","nullable":true}}}},"next_page_token":{"type":"string","description":"The pagination token for fetching the next page. Empty if no more results.","example":"eyJqb2JfaWQiOiJqb2JfZGVmNDU2In0"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:read:list_translator_batch_jobs:admin"]}},"post":{"tags":["Translator"],"summary":"Submit Batch Translator Job","description":"Submits a batch translation job for asynchronous processing.\n\nSupports three input modes: single file (mode inferred when the URI points to a single file), prefix/container enumeration (with optional filters), or explicit manifest (list of URIs).\n\nMaximum of 1,000 files per manifest.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:write:translator_batch_job:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"submitBatchTranslator","requestBody":{"content":{"application/json":{"schema":{"required":["input","output"],"type":"object","properties":{"input":{"required":["source"],"type":"object","properties":{"mode":{"type":"string","description":"The input processing mode. Optional — can be inferred: `MANIFEST` if a manifest array is provided, `SINGLE` if the URI points to a single file, `PREFIX` if the URI is a directory/prefix.","example":"PREFIX","enum":["SINGLE","PREFIX","MANIFEST"]},"source":{"type":"string","description":"The storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The S3 URI for a single file or prefix/container. Required for SINGLE and PREFIX modes.","format":"uri","example":"s3://acme-bucket/text/2025/11/"},"manifest":{"maxItems":1000,"minItems":1,"type":"array","description":"The explicit list of file URIs for MANIFEST mode. Required when mode is `MANIFEST`. Maximum of 1,000 files per batch job.","example":["s3://acme-bucket/text/document_001.txt","s3://acme-bucket/text/document_002.txt"],"items":{"type":"string","format":"uri"}},"filters":{"type":"object","properties":{"include_globs":{"maxItems":10,"type":"array","description":"This field includes only files matching these glob patterns. Supports wildcards: `*` (any characters), `**` (recursive), `?` (single character). Applied before `exclude_globs`.","example":["**/*.txt","**/*.vtt"],"items":{"type":"string"}},"exclude_globs":{"maxItems":10,"type":"array","description":"The exclude files matching these glob patterns. Applied after `include_globs`.","example":["**/tmp/**","*_draft.*"],"items":{"type":"string"}}},"description":"The file filtering options for PREFIX mode. Use glob patterns to include or exclude files."},"auth":{"type":"object","properties":{"aws":{"required":["access_key_id","secret_access_key","session_token"],"type":"object","properties":{"access_key_id":{"type":"string","description":"The AWS access key ID.","example":"YOUR_AWS_ACCESS_KEY_ID"},"secret_access_key":{"type":"string","description":"The AWS secret access key.","example":"YOUR_AWS_SECRET_ACCESS_KEY"},"session_token":{"type":"string","description":"The AWS session token for temporary credentials (recommended).","example":"FwoGZXIvYXdzE..."}},"description":"The AWS credentials for S3 access. Required when the source is S3 and URIs are not pre-signed."}},"description":"The storage authentication credentials."}},"description":"The input source configuration. Provide `uri` (for SINGLE/PREFIX modes) or `manifest` (for MANIFEST mode)."},"output":{"required":["destination","uri"],"type":"object","properties":{"destination":{"type":"string","description":"The output storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The base output URI where translation results will be written.","format":"uri","example":"s3://acme-bucket/translations/2025/11/"},"layout":{"type":"string","description":"The output file layout strategy. `ADJACENT`: places output next to the input file. `PREFIX`: uses the output URI as the base directory.","example":"PREFIX","enum":["ADJACENT","PREFIX"]},"overwrite":{"type":"boolean","description":"Whether to overwrite existing output files.","example":false,"default":false},"auth":{"type":"object","properties":{"aws":{"required":["access_key_id","secret_access_key","session_token"],"type":"object","properties":{"access_key_id":{"type":"string","description":"The AWS access key ID.","example":"YOUR_AWS_ACCESS_KEY_ID"},"secret_access_key":{"type":"string","description":"The AWS secret access key.","example":"YOUR_AWS_SECRET_ACCESS_KEY"},"session_token":{"type":"string","description":"The AWS session token for temporary credentials (recommended).","example":"FwoGZXIvYXdzE..."}},"description":"The AWS credentials for S3 write access."}},"description":"The storage authentication credentials."}},"description":"The output destination configuration."},"config":{"type":"object","properties":{"source_language":{"type":"string","description":"The source language as an ISO locale code. Leave empty for automatic language detection.\n\nSupported: `en-US`, `zh-CN`, `zh-Hans`, `zh-TW`, `zh-Hant`, `ja-JP`, `ko-KR`, `es-ES`, `fr-FR`, `de-DE`, `pt-PT`, `pt-BR`, `it-IT`.","example":"en-US"},"target_languages":{"maxItems":1,"minItems":1,"type":"array","description":"The list of target language ISO locale codes to translate. Maximum of 1 target per request. One side of each pair must be English (`en-US`).\n\nSupported: `en-US`, `zh-CN`, `zh-Hans`, `zh-TW`, `zh-Hant`, `ja-JP`, `ko-KR`, `es-ES`, `fr-FR`, `de-DE`, `pt-PT`, `pt-BR`, `it-IT`.","example":["es-ES"],"items":{"type":"string"}}},"description":"The translation configuration."},"reference_id":{"maxLength":256,"type":"string","description":"The customer-provided reference ID for deduplication and correlation. Submitting the same `reference_id` twice returns the existing job instead of creating a duplicate.","example":"translate-2025-11"},"notifications":{"type":"object","properties":{"webhook_url":{"type":"string","description":"The HTTPS webhook URL to receive POST notifications on job state changes.","format":"uri","example":"https://example.com/hooks/translator"},"secret":{"maxLength":256,"type":"string","description":"The shared secret used to sign webhook payloads. Used as the HMAC key when `security_type` is `WEBHOOK_SECURITY_HMAC`, or as the JWT signing key when `security_type` is `WEBHOOK_SECURITY_JWT`.","example":"hmac-secret"},"security_type":{"type":"string","description":"The webhook payload signature scheme. Defaults to `WEBHOOK_SECURITY_HMAC`.","example":"WEBHOOK_SECURITY_HMAC","default":"WEBHOOK_SECURITY_HMAC","enum":["WEBHOOK_SECURITY_HMAC","WEBHOOK_SECURITY_JWT"]},"audience":{"type":"string","description":"The JWT audience (`aud` claim) for the signed webhook token. Required when `security_type` is `WEBHOOK_SECURITY_JWT`.","example":"https://example.com/hooks/translator"}},"description":"The webhook notification settings for job status updates."},"limits":{"type":"object","properties":{"max_files":{"type":"integer","description":"The maximum number of files to process. Excess files are skipped.","example":500}},"description":"The job processing limits."}}}}}},"responses":{"201":{"description":"Job submitted successfully and queued for processing.","content":{"application/json":{"schema":{"required":["job_id","state","submitted_at"],"type":"object","properties":{"job_id":{"type":"string","description":"The unique job identifier for tracking and status queries.","example":"job_abc123"},"state":{"type":"string","description":"The initial job state (typically `QUEUED`).","example":"QUEUED","enum":["QUEUED","PROCESSING","SUCCEEDED","PARTIAL","FAILED","CANCELED"]},"submitted_at":{"type":"string","description":"The job submission timestamp in ISO 8601 format.","format":"date-time","example":"2026-01-05T18:34:12Z"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  -- a job with the same `reference_id` already exists. \n\n "},"422":{"description":"**HTTP Status Code:** `422` <br>\n Unprocessable Entity  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:write:translator_batch_job:admin"]}}},"/aiservices/translator/jobs/{jobId}":{"get":{"tags":["Translator"],"summary":"Get Batch Translator Job","description":"Retrieves job-level status, configuration, and progress summary for a batch translation job.\n\nTo list individual file results, use the List Batch Job Files endpoint.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:read:translator_batch_job:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getBatchTranslatorJob","parameters":[{"name":"jobId","in":"path","description":"The unique identifier of the batch translation job.","required":true,"schema":{"type":"string","example":"job_abc123"}}],"responses":{"200":{"description":"Job status retrieved successfully.","content":{"application/json":{"schema":{"required":["job_id","state","submitted_at"],"type":"object","properties":{"job_id":{"type":"string","description":"The job identifier.","example":"job_abc123"},"state":{"type":"string","description":"Overall job processing state. `PARTIAL` indicates some files succeeded while others failed.","example":"PROCESSING","enum":["QUEUED","PROCESSING","SUCCEEDED","PARTIAL","FAILED","CANCELED"]},"submitted_at":{"type":"string","description":"Job submission timestamp in ISO 8601 format.","format":"date-time","example":"2026-01-05T18:34:12Z"},"input":{"type":"object","properties":{"mode":{"type":"string","description":"The input mode.","example":"PREFIX","enum":["SINGLE","PREFIX","MANIFEST"]},"source":{"type":"string","description":"The storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The URI path to input files.","example":"s3://acme-bucket/text/2025/11/"}},"description":"Input configuration used when the job was submitted."},"output":{"type":"object","properties":{"destination":{"type":"string","description":"The output storage provider.","example":"S3","enum":["S3"]},"uri":{"type":"string","description":"The URI path where translations are written.","example":"s3://acme-bucket/translations/2025/11/"},"layout":{"type":"string","description":"The output file layout strategy.","example":"PREFIX","enum":["ADJACENT","PREFIX"]}},"description":"Output configuration used when the job was submitted."},"config":{"type":"object","properties":{"source_language":{"type":"string","description":"Source language ISO locale code. Empty if auto-detected.\n\nSupported: `en-US`, `zh-CN`, `zh-Hans`, `zh-TW`, `zh-Hant`, `ja-JP`, `ko-KR`, `es-ES`, `fr-FR`, `de-DE`, `pt-PT`, `pt-BR`, `it-IT`.","example":"en-US"},"target_languages":{"type":"array","description":"Target language ISO locale codes.\n\nSupported: `en-US`, `zh-CN`, `zh-Hans`, `zh-TW`, `zh-Hant`, `ja-JP`, `ko-KR`, `es-ES`, `fr-FR`, `de-DE`, `pt-PT`, `pt-BR`, `it-IT`.","example":["es-ES"],"items":{"type":"string"}}},"description":"Translation configuration used for this job."},"summary":{"type":"object","properties":{"total_files":{"type":"integer","description":"The total number of files in the job.","example":2487},"queued":{"type":"integer","description":"The number of files waiting in the queue.","example":0},"processing":{"type":"integer","description":"The number of files currently being processed.","example":23},"succeeded":{"type":"integer","description":"The number of successfully processed files.","example":2450},"failed":{"type":"integer","description":"The number of files that failed processing.","example":14},"skipped":{"type":"integer","description":"The number of files skipped due to filters or limits.","example":0},"canceled":{"type":"integer","description":"The number of files canceled by user request.","example":0}},"description":"Aggregated job progress statistics."},"error":{"type":"object","properties":{"code":{"type":"string","description":"The error code indicating the failure reason.","example":"INVALID_CREDENTIALS"},"message":{"type":"string","description":"A human-readable error message.","example":"AWS credentials expired"},"details":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional error context."}},"description":"Job-level error. Only present when state is `FAILED`.","nullable":true}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:read:translator_batch_job:admin"]}},"delete":{"tags":["Translator"],"summary":"Cancel Batch Translator Job","description":"Cancels a batch translation job.\n\nOnly jobs in `QUEUED` or `PROCESSING` state can be canceled.\n\nSuccessfully canceled jobs transition to the `CANCELED` state. Jobs that are already in the `SUCCEEDED`, `FAILED`, or `CANCELED` state cannot be canceled.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:delete:translator_batch_job:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"cancelBatchTranslatorJob","parameters":[{"name":"jobId","in":"path","description":"The unique identifier of the batch translation job to cancel.","required":true,"schema":{"type":"string","example":"job_abc123"}}],"responses":{"204":{"description":"Job canceled successfully. No content returned."},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  The job is already in a terminal state (`SUCCEEDED`, `FAILED`, or `CANCELED`). \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:delete:translator_batch_job:admin"]}}},"/aiservices/translator/jobs/{jobId}/files":{"get":{"tags":["Translator"],"summary":"List Batch Translator Job Files","description":"Retrieves a paginated list of individual file results for a batch translation job.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:read:list_translator_batch_job_files:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listBatchTranslatorJobFiles","parameters":[{"name":"jobId","in":"path","description":"Unique identifier of the batch translation job.","required":true,"schema":{"type":"string","example":"job_abc123"}},{"name":"state","in":"query","description":"Filter files by processing state. Omit to return files in all states.","required":false,"schema":{"type":"string","example":"FILE_SUCCEEDED","enum":["FILE_QUEUED","FILE_PROCESSING","FILE_SUCCEEDED","FILE_FAILED","FILE_CANCELED","FILE_SKIPPED"]}},{"name":"page_size","in":"query","description":"Maximum number of files to return per page.","required":false,"schema":{"maximum":1000,"minimum":1,"type":"integer","format":"int32","example":100,"default":100}},{"name":"next_page_token","in":"query","description":"Pagination token from the previous response's `next_page_token` field.","required":false,"schema":{"type":"string","example":"eyJmaWxlX2lkIjoiZl8wMDEifQ"}}],"responses":{"200":{"description":"Files listed successfully.","content":{"application/json":{"schema":{"required":["files"],"type":"object","properties":{"files":{"maxItems":1000,"type":"array","description":"List of file results for this page.","items":{"required":["file_id","input_uri","state"],"type":"object","properties":{"file_id":{"type":"string","description":"Unique file identifier within the job.","example":"f_001"},"input_uri":{"type":"string","description":"Source text file URI.","example":"s3://acme-bucket/text/2025/11/document_001.txt"},"state":{"type":"string","description":"Current processing state of this file.","example":"FILE_SUCCEEDED","enum":["FILE_QUEUED","FILE_PROCESSING","FILE_SUCCEEDED","FILE_FAILED","FILE_CANCELED","FILE_SKIPPED"]},"output_uri":{"type":"string","description":"URI of the translation result file. Null if not yet processed or failed.","nullable":true,"example":"s3://acme-bucket/translations/2025/11/document_001.json"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Error code indicating the failure reason.","example":"UNSUPPORTED_LANGUAGE_PAIR"},"message":{"type":"string","description":"Human-readable error description.","example":"Translation between zh-CN and ja-JP is not supported"}},"description":"Error details. Only present when state is `FILE_FAILED`.","nullable":true}}}},"next_page_token":{"type":"string","description":"Pagination token for fetching the next page. Empty if no more results.","example":"eyJmaWxlX2lkIjoiZl8xMDEifQ"}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:read:list_translator_batch_job_files:admin"]}}},"/aiservices/translator/jobs/{jobId}/files/{fileId}":{"get":{"tags":["Translator"],"summary":"Get Batch Translator Job File","description":"Retrieves the processing result for a specific file within a batch translation job.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:read:translator_batch_job_file:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getBatchTranslatorJobFile","parameters":[{"name":"jobId","in":"path","description":"Unique identifier of the batch translation job.","required":true,"schema":{"type":"string","example":"job_abc123"}},{"name":"fileId","in":"path","description":"Unique identifier of the file within the job.","required":true,"schema":{"type":"string","example":"f_001"}}],"responses":{"200":{"description":"File result retrieved successfully.","content":{"application/json":{"schema":{"required":["file_id","input_uri","state"],"type":"object","properties":{"file_id":{"type":"string","description":"Unique identifier of the file within the job.","example":"f_001"},"input_uri":{"type":"string","description":"The URI of the source text file.","example":"s3://acme-bucket/text/2025/11/document_001.txt"},"state":{"type":"string","description":"The current processing state of this file.","example":"FILE_SUCCEEDED","enum":["FILE_QUEUED","FILE_PROCESSING","FILE_SUCCEEDED","FILE_FAILED","FILE_CANCELED","FILE_SKIPPED"]},"output_uri":{"type":"string","description":"The URI of the translation result file. This value is `null` if the file has not yet been processed or processing failed.","nullable":true,"example":"s3://acme-bucket/translations/2025/11/document_001.json"},"error":{"type":"object","properties":{"code":{"type":"string","description":"The error code indicating the failure reason.","example":"UNSUPPORTED_LANGUAGE_PAIR"},"message":{"type":"string","description":"A human-readable error description.","example":"Translation between zh-CN and ja-JP is not supported"},"details":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional error context."}},"description":"The error details. Only present when the state is `FILE_FAILED`.","nullable":true}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:read:translator_batch_job_file:admin"]}}},"/aiservices/translator/translate":{"post":{"tags":["Translator"],"summary":"Translate (Synchronous)","description":"Submit text and receive translations inline. This is a synchronous operation — the response is returned immediately after translation completes.\n\nSupports auto-detection of the source language and translation into a target language.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `aiservices:write:translate:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"translate","requestBody":{"content":{"application/json":{"schema":{"required":["text"],"type":"object","properties":{"text":{"type":"string","description":"The text to translate.","example":"Good morning everyone, let's get started with today's meeting."},"config":{"type":"object","properties":{"source_language":{"type":"string","description":"Source language as an ISO locale code. Leave empty for automatic language detection.\n\nSupported: `en-US`, `zh-CN`, `zh-Hans`, `zh-TW`, `zh-Hant`, `ja-JP`, `ko-KR`, `es-ES`, `fr-FR`, `de-DE`, `pt-PT`, `pt-BR`, `it-IT`.","example":"en-US"},"target_languages":{"maxItems":1,"minItems":1,"type":"array","description":"List of target language ISO locale codes to translate into. Maximum of 1 target per request. One side of each pair must be English (`en-US`).\n\nSupported: `en-US`, `zh-CN`, `zh-Hans`, `zh-TW`, `zh-Hant`, `ja-JP`, `ko-KR`, `es-ES`, `fr-FR`, `de-DE`, `pt-PT`, `pt-BR`, `it-IT`.","example":["es-ES"],"items":{"type":"string"}}},"description":"Translation configuration options."}}}}}},"responses":{"200":{"description":"Translation completed successfully.","content":{"application/json":{"schema":{"required":["model","request_id","result","usage"],"type":"object","properties":{"request_id":{"type":"string","description":"Unique request identifier.","example":"req_abc123"},"result":{"type":"object","properties":{"translations":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of target language codes to translated text.","example":{"es-ES":"Buenos días a todos, comencemos la reunión de hoy."}}},"description":"Translation results keyed by target language code."},"model":{"type":"string","description":"Model identifier used for translation.","example":"zoom-translator-v1"},"usage":{"type":"object","properties":{"input_units":{"type":"integer","description":"Number of input characters processed.","example":62},"output_units":{"type":"integer","description":"Number of output characters generated.","example":56},"unit_type":{"type":"string","description":"Unit of measurement for billing.","example":"characters"},"details":{"type":"object","properties":{"translator":{"type":"object","properties":{"source_language":{"type":"string","description":"Detected or specified source language.","example":"en-US"},"target_language":{"type":"string","description":"Target language for translation.","example":"es-ES"}},"description":"Translator-specific usage details."}},"description":"Service-specific billing details."}},"description":"Character usage for billing."}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"422":{"description":"**HTTP Status Code:** `422` <br>\n Unprocessable Entity  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["aiservices:write:translate:admin"]}}}},"components":{"securitySchemes":{"openapi_authorization":{"scheme":"bearer","type":"http"}}},"tags":[{"name":"Scribe"},{"name":"Summarizer"},{"name":"Translator"}]}