API HTTP
El sitio web es un cliente de una API HTTP sencilla — todo lo que hace la zona de arrastre, puedes hacerlo tú con curl. La API es gratuita durante la beta, sin clave requerida. Límites de frecuencia: 30 solicitudes de escritura por minuto por IP, además de las cuotas diarias gratuitas (20 conversiones / 3 de voz / 30 comprobaciones — los fallos se reembolsan). Agentes de IA: apúntalos a /skill.md — contiene toda esta página en un formato apto para agentes.
Autenticación y cuotas
La API está abierta sin ninguna clave: las llamadas anónimas comparten la capa gratuita por IP (L1). Los agentes y scripts que necesitan más margen pueden usar una clave API (L2b) — emite una en tu página de cuenta y envíala como token Bearer; cada clave tiene sus propias cuotas diarias. Las claves se almacenan como hashes SHA-256, el texto plano se muestra una sola vez al crearlas y nunca aparece en los registros.
| Identidad | Conversiones/día | Voz/día | Comprobaciones/día |
|---|---|---|---|
| Anónimo (por IP) — L1 | 20 | 3 | 30 |
| Clave API (por clave) — L2b | 500 | 20 | 300 |
# Anónimo (L1) — no se necesita clave
curl -X POST https://liteconvert.cc/api/public/detect -F "file=@document.pdf"
# Con una clave API (L2b) — sustituye sk-… por tu clave
curl -X POST https://liteconvert.cc/api/public/convert \
-H "Authorization: Bearer sk-…" \
-F 'meta={"conversion":"pdf-docx"};type=application/json' \
-F "file=@document.pdf"¿Quieres más margen? — emite una clave API en tu página de cuenta.
Endpoints
| Método | Ruta | Qué realiza |
|---|---|---|
| POST | /api/public/detect | Identifica un archivo (campo multipart file). Síncrono, ≤20 s. |
| POST | /api/public/convert | Envía una conversión (multipart meta + file). Devuelve request_id. |
| GET | /api/public/requests/{id} | Estado, progreso y artefactos de una solicitud. |
| GET | /api/public/requests/recent?limit=20 | Tus conversiones recientes en este dispositivo (cabecera X-Owner-Token, anónimo). |
| GET | /api/public/requests/{id}/artifacts/{name} | Redirección 302 a la URL de descarga prefirmada. |
| GET | /api/public/requests/{id}/timeline | Trayectoria de eventos legible de la conversión. |
| GET | /api/public/stats | Estadísticas de tasa de éxito en vivo. |
| GET | /api/public/conversions | El catálogo de conversiones (todos los pares admitidos). |
| GET | /api/public/catalog | El manifiesto de compilación (claves canónicas con familia/lossy/steps) para constructores de sitios. |
Detectar un archivo
curl -X POST https://liteconvert.cc/api/public/detect -F "file=@document.pdf"{
"request_id": "c0af…",
"status": "succeeded",
"report": { "declared": "pdf", "detected": "pdf", "match": true,
"mime": "application/pdf", "confidence": 0.99 }
}Convertir y descargar
# 1. Enviar (los orígenes URL envían meta con source_url y sin la parte de file)
curl -X POST https://liteconvert.cc/api/public/convert \
-F 'meta={"conversion":"pdf-docx"};type=application/json' \
-F "file=@document.pdf"
# → 202 { "request_id": "…", "status": "running" }
# 2. Consultar
curl https://liteconvert.cc/api/public/requests/REQUEST_ID
# → { "status": "succeeded", "artifacts": [{ "name": "docx", "download": "…", … }] }
# 3. Descargar (302 a la URL prefirmada, válida 1 h)
curl -L -o result.docx https://liteconvert.cc/api/public/requests/REQUEST_ID/artifacts/docxCódigos de error
| Estado | Código | Significado |
|---|---|---|
| 401 | INVALID_API_KEY | Se presentó una clave inválida o la clave fue revocada. La revocación surte efecto de inmediato — emite una nueva clave en la página de cuenta. |
| 429 | QUOTA_EXCEEDED | Cuota diaria gratuita agotada (se restablece a medianoche UTC; error.reset_at indica la hora exacta). Las conversiones fallidas se reembolsan automáticamente. |
| 422 | UNSUPPORTED_CONVERSION | El par de conversión no está en el catálogo. |
| 404 | ARTIFACT_EXPIRED | El resultado caducó y fue eliminado (retención de 24 h) — convierte de nuevo. |
| 413/422 | INTAKE_FAILED | La subida falló o se superaron los 200 MB. |
| 502 | CONVERT_FAILED | Los motores lo intentaron y no pudieron leer este archivo. Los códigos de detalle (NEEDS_OCR, ENCRYPTED_DOCUMENT, MALFORMED_DOCUMENT) se devuelven en error.code de la solicitud con mensajes fijos. |
| 400 | INVALID_SOURCE_URL | source_url falta o no es una URL pública http(s) válida. |
| 400 | SOURCE_URL_BLOCKED | La URL de origen resuelve a una dirección privada, de loopback o link-local y fue bloqueada (protección SSRF). |
| 502 | SOURCE_URL_FETCH_FAILED | No se pudo descargar la URL de origen — sin conexión, tiempo agotado, demasiado grande o no accesible públicamente. |
| 503 | CONVERT_API_UNAVAILABLE | Interrupción temporal — reintenta en un minuto. |
Para agentes de IA
Obtén /skill.md — es una hoja de instrucciones autocontenida con los endpoints anteriores, ejemplos resueltos y la declaración de la capa gratuita. Vuelve a leerla ante la duda; se actualiza junto con la API.