REST API

ScanToExcel API

Wbuduj ekstrakcję danych z dokumentów opartą na AI bezpośrednio w swoją aplikację. Wyślij zdjęcie lub PDF i odbierz uporządkowane dane arkusza w formacie JSON, .xlsx lub CSV.

Bazowy URL

https://scantoexcel.ai/api/v1

Uwierzytelnianie

Każde żądanie do API wymaga klucza API przesłanego w nagłówku Authorization.

Authorization: Bearer sk_live_your_api_key

Wygeneruj klucz API za darmo w panelu. Klucz jest wyświetlany tylko raz, przy tworzeniu, i przechowywany wyłącznie jako hash — skopiuj go od razu. W panelu możesz go w każdej chwili wygenerować ponownie lub unieważnić. Liczba kredytów określa, ile stron możesz przetworzyć.

Szybki start

Wyodrębnij dane ze zdjęcia dokumentu lub PDF jednym wywołaniem 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"], ...]

Dokumentacja API

POST/v1/extract

Prześlij zdjęcie dokumentu lub PDF i odbierz uporządkowane dane arkusza. AI analizuje układ wizualny i przypisuje każdy fragment tekstu do właściwego wiersza i kolumny. Wielostronicowe pliki PDF są zwracane jako jedna tablica rows, od góry do dołu. Opłata wynosi 1 kredyt za stronę; nieudane ekstrakcje są zwracane automatycznie.

Żądanie (multipart/form-data)

ParametrTypWymaganyOpis
fileFileTakObraz (JPG, PNG, WebP) lub PDF (do 10 stron). Maks. 20 MB.
outputStringNie"json" (domyślnie), "xlsx" lub "csv". JSON zwraca dane strukturalne; xlsx/csv zwracają plik jako binarne body z nagłówkami X-Extraction-Id, X-Pages, X-Credits-Used i X-Credits-Remaining.
detailStringNie"high" (domyślnie, najlepsze dla gęstych dokumentów) lub "low" (szybciej, mniej tokenów obrazu).
webhook_urlStringNieAdres HTTPS, na który po zakończeniu ekstrakcji wysyłamy POST z pełnym wynikiem. Zobacz sekcję Webhooki poniżej.

Odpowiedź (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
  }
}

Pola odpowiedzi

PoleTypOpis
idStringTrwały identyfikator ekstrakcji — użyj go z GET /v1/extractions/{id}
statusStringcompleted lub failed
titleStringTytuł dokumentu wygenerowany przez AI
rowsString[][]Tablica 2D z wartościami komórek. Pierwszy wiersz to zwykle nagłówki.
pagesNumberLiczba przetworzonych stron (= pobrane kredyty)
usageObjectcredits_used i credits_remaining (null w planach bez limitu)

Limity zapytań

60 żądań/minutę na klucz API

1000 wywołań API/miesiąc w planie API (zobacz cennik)

20 MB maks. rozmiar pliku

10 stron maks. na PDF (1 kredyt za stronę)

Potrzebujesz wyższych limitów? Skontaktuj się z nami w sprawie planów dla firm.

Webhooki

Dodaj do żądania pole formularza webhook_url z adresem HTTPS, a gdy tylko ekstrakcja się zakończy, wyślemy tam POST z pełnym wynikiem (8 s limitu czasu dostarczenia, bez ponowień).

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

Zacznij budować ze ScanToExcel

Pobierz klucz API i zacznij wyodrębniać dane w kilka minut.