Per i costruttori

API HTTP

Il sito web è il client di una semplice API HTTP — tutto ciò che fa la zona di trascinamento, puoi farlo tu con curl. L'API è gratuita durante la beta, senza chiave richiesta. Limiti di frequenza: 30 richieste di scrittura al minuto per IP, più le quote gratuite giornaliere (20 conversioni / 3 vocali / 30 verifiche — i fallimenti vengono rimborsati). Agenti IA: puntateli a /skill.md — contiene tutta questa pagina in forma adatta agli agenti.

Autenticazione e quote

L'API è aperta senza alcuna chiave: le chiamate anonime condividono il livello gratuito per IP (L1). Agenti e script che servono più margine possono usare una chiave API (L2b) — emettine una nella pagina del tuo account e inviala come token Bearer; ogni chiave ha le sue quote giornaliere. Le chiavi sono conservate come hash SHA-256, il testo in chiaro viene mostrato una sola volta alla creazione e non appare mai nei log.

IdentitàConversioni/giornoVoci/giornoVerifiche di file/giorno
Anonimo (per IP) — L120330
Chiave API (per chiave) — L2b50020300

Le quote si azzerano alla mezzanotte UTC; le conversioni non riuscite vengono rimborsate automaticamente. Le scritture sono limitate a 30 richieste al minuto per IP.

# Anonimo (L1) — nessuna chiave necessaria
curl -X POST https://liteconvert.cc/api/public/detect -F "file=@document.pdf"

# Con una chiave API (L2b) — sostituisci sk-… con la tua chiave
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: una chiave è stata presentata come token Bearer ma ha fallito la validazione (invalida o revocata) — una chiave presentata viene sempre rifiutata, mai degradata ad anonima. Le richieste senza chiave, o con un'intestazione Authorization che non è una chiave Bearer, contano semplicemente sulla quota anonima L1. 429 QUOTA_EXCEEDED: la quota giornaliera di questa identità è esaurita; error.reset_at riporta l'ora esatta di reset (mezzanotte UTC).

Pronto per più margine — emetti una chiave API nella pagina del tuo account.

Endpoint

MetodoPercorsoChe cosa fa
POST/api/public/detectIdentifica un file (campo multipart file). Sincrono, ≤20 s.
POST/api/public/convertInvia una conversione (multipart meta + file). Restituisce request_id.
GET/api/public/requests/{id}Stato, avanzamento e artefatti di una richiesta.
GET/api/public/requests/recent?limit=20Le tue conversioni recenti su questo dispositivo (intestazione X-Owner-Token, anonimo).
GET/api/public/requests/{id}/artifacts/{name}Reindirizzamento 302 all'URL di download prefirmato.
GET/api/public/requests/{id}/timelineTraccia di eventi leggibile della conversione.
GET/api/public/statsStatistiche live del tasso di successo.
GET/api/public/conversionsIl catalogo delle conversioni (tutte le coppie supportate).
GET/api/public/catalogIl manifest di build (chiavi canoniche con famiglia/lossy/steps) per chi costruisce siti.

Rileva un file

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 }
}

Converti e scarica

# 1. Invia (le sorgenti URL inviano meta con source_url e senza la parte 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. Interroga
curl https://liteconvert.cc/api/public/requests/REQUEST_ID
# → { "status": "succeeded", "artifacts": [{ "name": "docx", "download": "…", … }] }

# 3. Scarica (302 all'URL prefirmato, valido 1 h)
curl -L -o result.docx https://liteconvert.cc/api/public/requests/REQUEST_ID/artifacts/docx

Codici di errore

StatoCodiceSignificato
401INVALID_API_KEYÈ stata presentata una chiave invalida, oppure la chiave è stata revocata. La revoca ha effetto immediato — emetti una nuova chiave nella pagina dell'account.
429QUOTA_EXCEEDEDQuota gratuita giornaliera esaurita (si azzera alla mezzanotte UTC; error.reset_at riporta l'ora esatta). Le conversioni non riuscite vengono rimborsate automaticamente.
422UNSUPPORTED_CONVERSIONLa coppia di conversione non è nel catalogo.
404ARTIFACT_EXPIREDIl risultato è scaduto ed è stato eliminato (conservazione 24 h) — riconverti.
413/422INTAKE_FAILEDCaricamento non riuscito o oltre i 200 MB.
502CONVERT_FAILEDI motori hanno provato ma non sono riusciti a leggere questo file. I codici di dettaglio (NEEDS_OCR, ENCRYPTED_DOCUMENT, MALFORMED_DOCUMENT) vengono restituiti in error.code della richiesta con messaggi fissi.
400INVALID_SOURCE_URLsource_url manca o non è un URL pubblico http(s) valido.
400SOURCE_URL_BLOCKEDL'URL di origine risolve a un indirizzo privato, di loopback o link-local ed è stato bloccato (protezione SSRF).
502SOURCE_URL_FETCH_FAILEDNon è stato possibile scaricare l'URL di origine — offline, tempo scaduto, troppo grande o non raggiungibile pubblicamente.
503CONVERT_API_UNAVAILABLEInterruzione temporanea — riprova tra un minuto.

Per gli agenti IA

Scarica /skill.md — è un foglio di istruzioni autosufficiente con gli endpoint qui sopra, esempi risolti e la dichiarazione del livello gratuito. Rileggilo nel dubbio; si aggiorna insieme all'API.