Para desarrolladores

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.

IdentidadConversiones/díaVoz/díaComprobaciones/día
Anónimo (por IP) — L120330
Clave API (por clave) — L2b50020300

Las cuotas se restablecen a medianoche UTC; las conversiones fallidas se reembolsan automáticamente. Las escrituras están limitadas a 30 solicitudes por minuto por IP.

# 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"

401 INVALID_API_KEY: se presentó una clave como token Bearer pero falló la validación (inválida o revocada) — una clave presentada siempre se rechaza, nunca se degrada a anónima. Las solicitudes sin clave, o con una cabecera Authorization que no sea una clave Bearer, simplemente cuentan contra la cuota anónima L1. 429 QUOTA_EXCEEDED: la cuota diaria de esta identidad está agotada; error.reset_at indica la hora exacta de restablecimiento (medianoche UTC).

¿Quieres más margen? — emite una clave API en tu página de cuenta.

Endpoints

MétodoRutaQué realiza
POST/api/public/detectIdentifica un archivo (campo multipart file). Síncrono, ≤20 s.
POST/api/public/convertEnví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=20Tus 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}/timelineTrayectoria de eventos legible de la conversión.
GET/api/public/statsEstadísticas de tasa de éxito en vivo.
GET/api/public/conversionsEl catálogo de conversiones (todos los pares admitidos).
GET/api/public/catalogEl 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/docx

Códigos de error

EstadoCódigoSignificado
401INVALID_API_KEYSe 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.
429QUOTA_EXCEEDEDCuota diaria gratuita agotada (se restablece a medianoche UTC; error.reset_at indica la hora exacta). Las conversiones fallidas se reembolsan automáticamente.
422UNSUPPORTED_CONVERSIONEl par de conversión no está en el catálogo.
404ARTIFACT_EXPIREDEl resultado caducó y fue eliminado (retención de 24 h) — convierte de nuevo.
413/422INTAKE_FAILEDLa subida falló o se superaron los 200 MB.
502CONVERT_FAILEDLos 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.
400INVALID_SOURCE_URLsource_url falta o no es una URL pública http(s) válida.
400SOURCE_URL_BLOCKEDLa URL de origen resuelve a una dirección privada, de loopback o link-local y fue bloqueada (protección SSRF).
502SOURCE_URL_FETCH_FAILEDNo se pudo descargar la URL de origen — sin conexión, tiempo agotado, demasiado grande o no accesible públicamente.
503CONVERT_API_UNAVAILABLEInterrupció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.