Gumzo AI API Documentation
Integrate speech-to-text and translation capabilities
API Reference
More Resources
Overview
The Gumzo AI API provides speech-to-text transcription and translation capabilities. This documentation describes how to integrate with our API to add powerful audio processing features to your applications.
!Base URL
https://api.gumzoai.com/api/v2/Authentication
All API requests require authentication using your API token. Include the token in theAuthorizationheader with the Token prefix.
Authorization: Token sk_autoscribe_1234567890abcdef1234567890abcdef
!Keep your token secure
Your API token grants full access to your account. Do not expose it in client-side code or public repositories. Regenerate your token immediately if you suspect it's been compromised.
/transcribe/
Transcribes audio files into text with speaker diarization and formatting options.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| file | File | Yes | Audio file to transcribe (MP3, WAV, FLAC, OGG) |
| job_language | String | Yes | BCP-47 language code (e.g., "en", "es", "fr") |
| job_type | String | Yes | Transcription type ("Verbatim", "Smart", "Summary") |
| skip_diarization | Boolean | No | Set to "true" to disable speaker identification |
| webhook_url | String | No | URL for completion callback |
Example Request
import requests
BASE_URL = "https://api.gumzoai.com/api/v2/"
TOKEN = "sk_autoscribe_1234567890abcdef1234567890abcdef"
# Create transcription
response = requests.post(
f"{BASE_URL}transcribe/",
files={"file": open("audio.mp3", "rb")},
headers={"Authorization": f"Token {TOKEN}"},
data={
"job_language": "en",
"job_type": "Verbatim",
"skip_diarization": "false",
"webhook_url": "https://example.com/callback"
}
)
print(response.json())Response
{
"job_id": "trans_1234567890abcdef",
"status": "processing",
"estimated_wait": 30,
"created_at": "2025-07-18T14:30:00Z"
}/translate/
Translates existing transcriptions into other languages while preserving formatting.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| job_id | String | Yes | ID of completed transcription job |
| to_language | String | Yes | Target BCP-47 language code |
| webhook_url | String | No | URL for completion callback |
Example Request
import requests
BASE_URL = "https://api.gumzoai.com/api/v2/"
TOKEN = "sk_autoscribe_1234567890abcdef1234567890abcdef"
# Create translation
data = {
"job_id": "TRANSCRIPTION_ID",
"to_language": "fr",
"webhook_url": "https://example.com/callback"
}
response = requests.post(
f"{BASE_URL}translate/",
json=data,
headers={"Authorization": f"Token {TOKEN}"}
)
print(response.json())Response
{
"translation_id": "translat_1234567890abcdef",
"status": "queued",
"estimated_wait": 45,
"created_at": "2025-07-18T14:35:00Z"
}Webhooks
Receive notifications when transcription or translation jobs complete by providing awebhook_urlparameter. We'll send a POST request to your endpoint when the job status changes.
Webhook Payload
{
"event": "job_completed",
"job_id": "trans_1234567890abcdef",
"job_type": "transcription",
"status": "completed",
"result_url": "https://api.gumzoai.com/results/trans_1234567890abcdef",
"created_at": "2025-07-18T14:45:00Z"
}Verification
All webhook requests include a signature header for verification:
Header
X-Gumzo-SignatureVerification Method
HMAC-SHA256Error Codes
| Status | Code | Description |
|---|---|---|
| 400 | invalid_request | Invalid parameters or malformed request |
| 401 | authentication_failed | Invalid or missing API token |
| 403 | forbidden | Insufficient permissions |
| 404 | not_found | Resource not found |
| 429 | rate_limit_exceeded | Too many requests |
| 500 | server_error | Internal server error |