Documentazione API

Integra FreeOCR.AI nelle tue applicazioni con la nostra API.

Autenticazione

Tutte le richieste API richiedono una chiave API passata nell'header Authorization come token Bearer.

Authorization: Bearer focr_your_api_key_id

Crea e gestisci le tue chiavi API nella pagina Chiavi API.


Limiti di velocità

Limite di velocità predefinito: 200 richieste al minuto per chiave API.

I limiti di velocità possono essere regolati per chiave. Contatta il supporto per limiti personalizzati.


POST /ocr

Demo live

Estrai testo dalle immagini preservando il layout.

Parametri

multipartimage(richiesto) - File immagine
queryformat(opzionale) - Formato di risposta: json (predefinito), text, docx
queryversion(opzionale) - Versione modello: 261029 (predefinito), 260428

Risposta

jsonContent-Type: application/json
{
  "text": "# Document Title\n\nExtracted markdown content..."
}

Restituisce GitHub Flavored Markdown con conservazione del layout, incluse tabelle HTML e formule LaTeX.

textContent-Type: application/json
{
  "text": "Document Title\n\nExtracted plain text content..."
}

Il Markdown viene convertito in testo semplice tramite conversione interna.

docxContent-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document

Download di file binario. Content-Disposition: attachment; filename="result.docx"

Esempio

Format:
curl -X POST "https://freeocr.ai/api/v1/platform/ocr" \
  -H "Authorization: Bearer focr_your_key" \
  -F "image=@document.png"

POST /table

Demo live

Estrai tabelle dalle immagini in dati strutturati.

Parametri

multipartimage(richiesto) - File immagine
queryformat(opzionale) - Formato di risposta: json (predefinito), csv, xlsx
queryversion(opzionale) - Versione modello: 261029 (predefinito), 260428

Risposta

jsonContent-Type: application/json
{
  "tables": [
    {
      "title": "Sales Report",
      "html": "<table><tr><th>Item</th><th>Qty</th></tr><tr><td>Apple</td><td>10</td></tr></table>"
    }
  ]
}

Ogni tabella include un title e il suo contenuto come stringa di tabella HTML.

csvContent-Type: text/csv; charset=utf-8

Download di file CSV in testo semplice. Tabelle multiple sono separate da delimitatori --- SheetName ---. Content-Disposition: attachment; filename="tables.csv"

xlsxContent-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Download di file XLSX binario. Ogni tabella diventa un foglio separato con il nome del suo titolo. Content-Disposition: attachment; filename="tables.xlsx"

Esempio

Format:
curl -X POST "https://freeocr.ai/api/v1/platform/table" \
  -H "Authorization: Bearer focr_your_key" \
  -F "image=@spreadsheet.png"

POST /extract

Demo live

Estrai campi specifici dalle immagini utilizzando l'IA.

Parametri

multipartimage(richiesto) - File immagine
queryfields(richiesto) - Campi da estrarre (parametro ripetuto o array JSON)
queryformat(opzionale) - Formato di risposta: json (predefinito), csv, xlsx
queryversion(opzionale) - Versione modello: 261029 (predefinito), 260428

Risposta

jsonContent-Type: application/json
{
  "result": [
    { "key": "name", "values": ["John Doe"] },
    { "key": "date", "values": ["2024-03-15"] },
    { "key": "amount", "values": ["$1,234.56"] }
  ]
}

Ogni campo richiesto viene restituito come key con un array di values estratti.

csvContent-Type: text/csv; charset=utf-8

File CSV con le chiavi dei campi come intestazioni di colonna e i valori estratti come righe. Content-Disposition: attachment; filename="extraction.csv"

xlsxContent-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

File XLSX con un singolo foglio "Results", stesso layout del CSV. Content-Disposition: attachment; filename="extraction.xlsx"

Esempio

Format:
curl -X POST "https://freeocr.ai/api/v1/platform/extract?fields=name&fields=date&fields=amount" \
  -H "Authorization: Bearer focr_your_key" \
  -F "image=@invoice.png"

Risposte di errore

401

Non autorizzato

{ "error": { "code": "unauthorized", "message": "Chiave API non valida" } }
402

Saldo insufficiente

{ "error": { "code": "insufficient_credits", "message": "Saldo insufficiente. Si prega di ricaricare." } }
429

Limite di velocità superato

{ "error": { "code": "rate_limit_exceeded", "message": "Limite di velocità superato. Riprova più tardi." } }
500

Errore interno

{ "error": { "code": "internal_error", "message": "Elaborazione dell'immagine fallita" } }