API Reference
Base URL: https://escribelo.4l3.org
Auth
Actualmente público sin auth (beta). Rate limited por IP. Cuando active el tier pagado, será Authorization: Bearer YOUR_API_KEY.
POST /v1/transcribe
Transcribe un archivo de audio a texto. Request multipart/form-data.
Parámetros
| Campo | Tipo | Default | Descripción |
|---|---|---|---|
file | file (required) | — | Audio. mp3, wav, m4a, ogg, flac, mp4, webm, aac, opus. Max 100 MB. |
tier | string | standard | fast (small, ~12× realtime, WER ~10%) · standard (medium, ~5× realtime, WER ~6%) · accuracy (large-v3-turbo, ~8× realtime, mejor calidad) |
language | string | es | ISO 639-1. Para autodetect: null o vacío. |
output | string | json | json (con timestamps) · text (plain) · srt (subtítulos) · vtt (web video) |
vad | bool | true | Voice Activity Detection (Silero). Evita alucinaciones en silencio/música. |
Respuesta JSON (output=json)
{
"text": "Texto transcrito completo concatenado.",
"language": "es",
"duration_s": 12.34,
"model": "medium",
"tier": "standard",
"segments": [
{"start": 0.0, "end": 4.5, "text": "Primer segmento."},
{"start": 4.5, "end": 12.3, "text": "Segundo segmento."}
]
}
Respuesta SRT (output=srt)
1
00:00:00,000 --> 00:00:04,500
Primer segmento.
2
00:00:04,500 --> 00:00:12,340
Segundo segmento.
Códigos de respuesta
| Código | Significado |
|---|---|
| 200 | OK — transcripción exitosa |
| 400 | Bad Request — formato no soportado, archivo vacío, tier inválido |
| 413 | Payload Too Large — >100 MB |
| 429 | Rate Limit — superaste el cap del tier (60 min Free, 5h Pro, 30h Scale) |
| 500 | Server Error — transcripción falló (audio corrupto, modelo crashed) |
| 503 | Service Unavailable — cola saturada, reintenta |
GET /api
Status + capabilities del servicio.
{
"name": "Escribelo",
"version": "1.0.0",
"tiers": ["fast", "standard", "accuracy"],
"outputs": ["json", "text", "srt", "vtt"],
"max_file_mb": 100,
"sync_max_min": 5,
"status": "ok"
}
GET /pricing
{
"free": {"minutes_month": 60, "tier_max": "standard", "price_usd": 0},
"pro": {"minutes_month": 300, "tier_max": "accuracy", "price_usd_mo": 9, "overage_per_min": 0.03},
"scale": {"minutes_month": 1800, "tier_max": "accuracy", "price_usd_mo": 29, "overage_per_min": 0.016},
"paygo": {"price_per_min": 0.005, "no_subscription": true}
}
Roadmap API
- Async API + webhook:
POST /v1/transcribe/async+GET /v1/jobs/{id}para audios >5 min. - Bearer auth: API keys con cap por mes según tier.
- Speaker diarization: detección de quién habla cuándo.
- Custom vocabulary: glosarios para términos técnicos/marcas.
- Translation: ES→EN automatic en el mismo endpoint.