Documentation

Scanno API

Extract structured data from PDF documents.

Scanno API

Extract structured data from PDF documents.

Base URL: https://api.scanno.fr

Authentication

All /v1/* routes require x-api-key: <key>.

Quickstart

# 1. Create folder
curl -X POST https://api.scanno.fr/v1/folders \
  -H "x-api-key: $SCANNO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Dupont","type":"personal"}'

# 2. Upload document
curl -X POST https://api.scanno.fr/v1/documents \
  -H "x-api-key: $SCANNO_API_KEY" \
  -F "file=@document.pdf" \
  -F "folder_id=<FOLDER_ID>"

# 3. Get extracted data
curl -H "x-api-key: $SCANNO_API_KEY" \
  https://api.scanno.fr/v1/folders/<FOLDER_ID>/documents

Flow

  1. POST /v1/folders — create folder
  2. POST /v1/documents — upload document (PDF, max 50 MB). Processing runs automatically.
  3. GET /v1/folders/{id}/documentsextracted_data, normalized_data, document_type

Optional: webhook_url on upload (HTTPS only). GET /v1/documents/{id} for a single document.

Webhook

Pass webhook_url as a form field on POST /v1/documents. Scanno calls it once when processing finishes (done or failed). Without it, poll GET /v1/folders/{id}/documents.

curl -X POST https://api.scanno.fr/v1/documents \
  -H "x-api-key: $SCANNO_API_KEY" \
  -F "file=@document.pdf" \
  -F "folder_id=<FOLDER_ID>" \
  -F "webhook_url=https://your-app.com/scanno/webhook"

Payload (POST to your URL):

{
  "job_id": "uuid",
  "folder_id": "uuid",
  "status": "done",
  "file_name": "document.pdf",
  "documents_count": 2,
  "document_ids": ["uuid", "uuid"],
  "error_message": null
}

Then fetch extractions: GET /v1/folders/{folder_id}/documents.

API Reference

API Reference tab — Folders, Documents.