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/v1Uwierzytelnianie
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
/v1/extractPrześ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)
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
file | File | Tak | Obraz (JPG, PNG, WebP) lub PDF (do 10 stron). Maks. 20 MB. |
output | String | Nie | "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. |
detail | String | Nie | "high" (domyślnie, najlepsze dla gęstych dokumentów) lub "low" (szybciej, mniej tokenów obrazu). |
webhook_url | String | Nie | Adres 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
| Pole | Typ | Opis |
|---|---|---|
id | String | Trwały identyfikator ekstrakcji — użyj go z GET /v1/extractions/{id} |
status | String | completed lub failed |
title | String | Tytuł dokumentu wygenerowany przez AI |
rows | String[][] | Tablica 2D z wartościami komórek. Pierwszy wiersz to zwykle nagłówki. |
pages | Number | Liczba przetworzonych stron (= pobrane kredyty) |
usage | Object | credits_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.