API REST

ScanToExcel API

Intégrez l'extraction de documents par IA directement dans votre application. Envoyez une image ou un PDF, recevez des données de tableur structurées en JSON, .xlsx ou CSV.

URL de base

https://scantoexcel.ai/api/v1

Authentification

Toutes les requêtes API nécessitent une clé API envoyée via l'en-tête Authorization.

Authorization: Bearer sk_live_your_api_key

Générez gratuitement votre clé API depuis le tableau de bord. La clé n'est affichée qu'une seule fois, à sa création, et n'est stockée que sous forme de hash — copiez-la immédiatement. Vous pouvez la régénérer ou la révoquer à tout moment depuis le tableau de bord. Vos crédits déterminent le nombre de pages que vous pouvez extraire.

Démarrage rapide

Extrayez les données d'une image ou d'un PDF en un seul appel API.

cURL

# JSON response
curl -X POST https://scantoexcel.ai/api/v1/extract \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -F "file=@receipt.jpg" \
  -F "output=json"

# Excel file straight to disk
curl -X POST https://scantoexcel.ai/api/v1/extract \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -F "file=@invoice.pdf" \
  -F "output=xlsx" -o result.xlsx

Python

import requests

response = requests.post(
    "https://scantoexcel.ai/api/v1/extract",
    headers={"Authorization": "Bearer sk_live_your_api_key"},
    files={"file": open("receipt.jpg", "rb")},
    data={"output": "json"}
)

data = response.json()
print(data["title"])   # "Receipt"
print(data["rows"])    # [["Item", "Qty", "Price"], ...]

JavaScript / Node.js

const form = new FormData();
form.append("file", fs.createReadStream("receipt.jpg"));
form.append("output", "json");

const res = await fetch("https://scantoexcel.ai/api/v1/extract", {
  method: "POST",
  headers: { Authorization: "Bearer sk_live_your_api_key" },
  body: form,
});

const data = await res.json();
console.log(data.title); // "Receipt"
console.log(data.rows);  // [["Item", "Qty", "Price"], ...]

Référence de l'API

POST/v1/extract

Envoyez une image ou un PDF et recevez des données de tableur structurées. L'IA analyse la mise en page et place chaque élément de texte dans la bonne ligne et la bonne colonne. Les PDF de plusieurs pages sont renvoyés dans un seul tableau rows, de haut en bas. Facturation : 1 crédit par page ; les extractions échouées sont remboursées automatiquement.

Requête (multipart/form-data)

ParamètreTypeObligatoireDescription
fileFileOuiImage (JPG, PNG, WebP) ou PDF (jusqu'à 10 pages). 20 Mo max.
outputStringNon"json" (par défaut), "xlsx" ou "csv". JSON renvoie des données structurées ; xlsx/csv renvoient le fichier en corps binaire avec les en-têtes X-Extraction-Id, X-Pages, X-Credits-Used et X-Credits-Remaining.
detailStringNon"high" (par défaut, idéal pour les documents denses) ou "low" (plus rapide, moins de tokens image).
webhook_urlStringNonURL HTTPS qui reçoit un POST avec le résultat complet à la fin de l'extraction. Voir Webhooks ci-dessous.

Réponse (JSON)

{
  "id": "aB3dE9fGhIjK1LmN",
  "status": "completed",
  "title": "Receipt - Coffee Shop",
  "rows": [
    ["Item", "Qty", "Price"],
    ["Latte", "2", "9.50"],
    ["Croissant", "1", "4.25"],
    ["", "Total", "13.75"]
  ],
  "pages": 1,
  "usage": {
    "credits_used": 1,
    "credits_remaining": 999
  }
}

Champs de la réponse

ChampTypeDescription
idStringID d'extraction persistant — à utiliser avec GET /v1/extractions/{id}
statusStringcompleted ou failed
titleStringTitre du document généré par l'IA
rowsString[][]Tableau 2D des valeurs de cellules. La première ligne contient généralement les en-têtes.
pagesNumberNombre de pages traitées (= crédits facturés)
usageObjectcredits_used et credits_remaining (null sur les forfaits illimités)

Limites d'utilisation

60 requêtes/minute par clé API

1 000 appels API/mois avec le forfait API (voir les tarifs)

20 Mo taille de fichier max.

10 pages max. par PDF (1 crédit par page)

Besoin de limites plus élevées ? Contactez-nous pour nos offres entreprise.

Webhooks

Ajoutez à votre requête un champ de formulaire webhook_url contenant une URL HTTPS : nous y envoyons le résultat complet en POST dès la fin de l'extraction (délai de livraison de 8 s, aucune nouvelle tentative).

{
  "event": "extraction.completed",
  "id": "aB3dE9fGhIjK1LmN",
  "status": "completed",
  "title": "Invoice #1042",
  "rows": [["Item", "Qty", "Price"], ...],
  "pages": 1,
  "usage": { "credits_used": 1, "credits_remaining": 999 }
}

Commencez à développer avec ScanToExcel

Obtenez votre clé API et extrayez vos premières données en quelques minutes.