Get Started

API Overview

ImageToTable.ai's v1 API extracts structured data from photos, scans, and PDFs of real-world documents — invoices, receipts, bank statements, purchase orders, and similar — and hands it back as JSON. This page introduces the four resources everything else in these docs is built from.

Core concepts

Four resources cover the whole surface of the API. Every endpoint in the Reference section operates on one of these.

  • Document — a single processed page. You create one by uploading an image, or a PDF page (a multi-page PDF upload produces multiple documents, one per page — see Documents reference). A document moves through a status lifecycle (queuedprocessingsucceeded / failed / canceled) explained in full in the Async Task Model guide.
  • Batch — a named group of documents that get uploaded and processed together. Every document belongs to exactly one batch, identified by its batch_name (a string you choose, or one the API generates for you on upload). You start processing, poll status, and fetch results at the batch level.
  • Template — a saved, reusable set of fields you want extracted every time (for example, a "Vendor Invoice" template with invoice_number, vendor_name, and total_amount). Templates let you skip re-declaring the same fields on every process call.
  • Field — a single named value you want pulled out of a document (an invoice number, a date, a line-item amount). Fields either live on a Template, or can be declared inline, one-off, on a single process call without ever creating a Template.

How they fit together

You upload one or more files into a batch, each upload becoming a Document. You then start processing that batch, telling the API what Fields you want back — either by pointing it at a saved Template, or by listing Fields inline in the request body. If you specify neither, the API infers reasonable columns on its own. Once processing finishes, you fetch the batch's results: each Document comes back with a line_items array of objects keyed by field name.

JSON is the primary format

JSON is the canonical, fully-supported response format for every endpoint. Excel (.xlsx) and Word (.docx) exports exist as a convenience download on top of the same data (see Batches reference) — they are not a separate data model, and API integrations should build against the JSON shape.

Authentication and access

Every v1 request is authenticated with an API key sent as Authorization: Bearer <key> — no session cookie fallback, even if you're logged in from the same browser. The v1 API is available to paid plans (Basic and above, including teams on Growth and above); Free-plan accounts receive a plan_required error. See Environment Setup for where to find your key.

Next steps

Ready to make your first call? Quickstart walks through getting a key, uploading a document, starting processing, and fetching results — start to finish in about five minutes. For the full endpoint list, see API Reference. If you're using an AI coding assistant to integrate, point it at the OpenAPI 3.1 spec directly — it's the same schema behind every Reference page, machine-readable end to end.

📮 contact email: [email protected]