API v1 documentation

Files and versioning

Supported file types, processing behavior, limits, API versions, and OpenAPI contract details.

Supported file types

Start with PDFs for invoice workflows. Use other formats when the source system already produces them. exdata checks file content signatures and scanner status before the requested extraction, analysis, validation, or thumbnail work begins. The general upload limit is 500 MB; lower format-specific processing limits are shown below.

Processing modes

The matrix describes the standard extraction workflow. processing_mode=validation accepts only PDF or XML and returns the structured-invoice assessment without general extraction, persisted previews, a thumbnail, or retained document text. With processing_mode=thumbnail, exdata creates only a JPEG thumbnail—without OCR, AI, structured extraction, persisted previews, an extraction run, or an extraction credit. Video thumbnails use the same representative-frame behavior listed below.

Documents

Documents file capabilities
Format Extensions Extraction Preview Limits and notes
PDF Invoices, credit notes, statements, letters, contracts, and exported reports. PDF Extracts native text and uses bounded OCR for pages that need visual recovery before standard structured extraction. Uses the first page for the thumbnail and creates a complete JPEG page set when the requested pages fit within the visual processing limits. Maximum PDF OCR pages: 200 pages Maximum rendered PDF page area: 18,000,000 pixels Maximum rendered PDF page file size: 32 MiB Maximum rendered PDF data per document: 512 MiB Maximum retained PDF OCR text per document: 8 MiB Visual OCR and rendered previews are bounded by page, rendered-image, cumulative render-data, and recognized-text limits; native text extraction remains the primary path when available.
Word Word documents such as contracts, letters, statements, and reports. DOC DOCX Converts the document to PDF, extracts native text when available, and uses OCR as a fallback before standard structured extraction. Creates a PDF preview and a JPEG preview of the first page for the thumbnail. General upload limit applies.

Images

Images file capabilities
Format Extensions Extraction Preview Limits and notes
JPEG Photographed documents, scanned pages, and image captures from mobile workflows. JPG JPEG When AI processing is enabled and the file is within the visual AI input size limit, uses the source image as visual evidence for structured extraction. OCR text supports non-AI extraction, fallback, and cross-checking. Normalizes the image to a JPEG preview and uses it for the thumbnail. Maximum visual AI input size: 46.7 MiB
PNG Scanned document pages, screenshots, and image-only uploads. PNG When AI processing is enabled and the file is within the visual AI input size limit, uses the source image as visual evidence for structured extraction. OCR text supports non-AI extraction, fallback, and cross-checking. Normalizes the image to a JPEG preview and uses it for the thumbnail. Maximum visual AI input size: 46.7 MiB
GIF GIF image uploads containing document content. GIF Runs OCR on the rendered image before standard structured extraction. Renders the image as a JPEG preview and uses it for the thumbnail. Animated content is not analyzed as a timeline.
TIFF Single-page and multi-page scanned document images. TIFF TIF Renders each page and runs OCR before standard structured extraction. Creates a JPEG preview for every page and a combined PDF preview for multi-page files. General upload limit applies.
BMP Bitmap document scans and image exports. BMP Runs OCR on the image before standard structured extraction. Normalizes the image to a JPEG preview and uses it for the thumbnail. General upload limit applies.
ICO Icon image files containing text or document-like content. ICO Runs OCR on the rendered image before standard structured extraction. Renders the image as a JPEG preview and uses it for the thumbnail. General upload limit applies.
PSD Photoshop document images and flattened design exports. PSD Runs OCR on the rendered image before standard structured extraction. Renders the composite image as a JPEG preview and uses it for the thumbnail. Layers are not returned as separate documents.
WebP Web-native document images and browser-generated image exports. WEBP When AI processing is enabled and the file is within the visual AI input size limit, uses the source image as visual evidence for structured extraction. OCR text supports non-AI extraction, fallback, and cross-checking. Normalizes the image to a JPEG preview and uses it for the thumbnail. Maximum visual AI input size: 46.7 MiB
HEIC and HEIF High-efficiency photos and document captures from supported devices. HEIC HEIF Runs OCR on the rendered image before standard structured extraction. Normalizes the image to a JPEG preview and uses it for the thumbnail. General upload limit applies.

Video

Video file capabilities
Format Extensions Extraction Preview Limits and notes
MPEG-4 video MPEG-4 video uploads, camera exports, and Apple-compatible video files. MP4 M4V Extracts one representative frame, runs OCR on that frame, and uses it for standard structured extraction. Creates one representative JPEG frame for the preview and thumbnail. Maximum decoded video frame: 33,177,600 pixels (8K UHD) The container must include a decodable video stream. Audio is not transcribed and the full timeline is not analyzed.
QuickTime video QuickTime video files from cameras and editing workflows. MOV Extracts one representative frame, runs OCR on that frame, and uses it for standard structured extraction. Creates one representative JPEG frame for the preview and thumbnail. Maximum decoded video frame: 33,177,600 pixels (8K UHD) The container must include a decodable video stream. Audio is not transcribed and the full timeline is not analyzed.
WebM video Web-native video files and browser recordings. WEBM Extracts one representative frame, runs OCR on that frame, and uses it for standard structured extraction. Creates one representative JPEG frame for the preview and thumbnail. Maximum decoded video frame: 33,177,600 pixels (8K UHD) The container must include a decodable video stream. Audio is not transcribed and the full timeline is not analyzed.
Ogg video Ogg container video files from open media workflows. OGV OGG Extracts one representative frame, runs OCR on that frame, and uses it for standard structured extraction. Creates one representative JPEG frame for the preview and thumbnail. Maximum decoded video frame: 33,177,600 pixels (8K UHD) The container must include a decodable video stream. Audio is not transcribed and the full timeline is not analyzed.

Text and structured data

Text and structured data file capabilities
Format Extensions Extraction Preview Limits and notes
HTML Saved web documents, rendered invoice templates, and HTML exports. HTML Reads the HTML source as document evidence before standard structured extraction. Renders the uploaded markup as the page it describes and creates a JPEG screenshot for the thumbnail. The page is shown inert, keeping its own inline styles and data-URI images while scripts, embedded objects, and navigation never run. Link elements are removed and no external stylesheet, image, font, or other resource is loaded or connected to, so opening a preview stays invisible to whoever sent the document. A source above the rendering limit is shown as readable text up to the source text limit instead, and the preview says that it was truncated. Maximum rendered markup preview: 4 MiB Maximum previewed source text: 512 KiB
Plain text Plain-text documents and text exported by upstream systems. TXT Uses the source text directly as evidence for standard structured extraction. Renders escaped source text to HTML and creates a JPEG screenshot for the thumbnail. Longer sources are shown up to the preview limit and the preview says that it was truncated. Maximum previewed source text: 512 KiB
CSV Tabular exports whose document data is already arranged in rows. CSV Uses the source text directly as evidence for standard structured extraction. Renders escaped source text to HTML and creates a JPEG screenshot for the thumbnail. Longer sources are shown up to the preview limit and the preview says that it was truncated. Maximum previewed source text: 512 KiB
JSON Structured source payloads to normalize into the standard extraction response. JSON Uses the source text directly as evidence for standard structured extraction. Renders escaped source text to HTML and creates a JPEG screenshot for the thumbnail. Longer sources are shown up to the preview limit and the preview says that it was truncated. Maximum previewed source text: 512 KiB
EDI Electronic data interchange payloads used in operations and procurement workflows. EDI Uses the source text directly as evidence for standard structured extraction. Renders escaped source text to HTML and creates a JPEG screenshot for the thumbnail. Longer sources are shown up to the preview limit and the preview says that it was truncated. Maximum previewed source text: 512 KiB
IDoc SAP IDoc exports and integration payloads. IDOC Uses the source text directly as evidence for standard structured extraction. Renders escaped source text to HTML and creates a JPEG screenshot for the thumbnail. Longer sources are shown up to the preview limit and the preview says that it was truncated. Maximum previewed source text: 512 KiB

Email

Email file capabilities
Format Extensions Extraction Preview Limits and notes
Email message RFC email and Outlook message files with envelope, body, and attachment evidence. EML MSG Parses envelope fields and message text, then analyzes bounded PDF, XML, and common image attachment evidence when present. Renders the readable text of the message body to HTML and creates a JPEG screenshot for the thumbnail. The message keeps its text, not its own styling, and previewable inline images follow the body. A longer body is shown up to the preview limit and the preview says that it was truncated. Maximum email container size: 64 MiB Maximum supported email attachments: 8 attachments Maximum individual email attachment size: 20 MiB Maximum combined email attachment size: 32 MiB Maximum pages per attached PDF: 100 pages Maximum previewed message body: 488.3 KiB Email processing is bounded to 8 attachments, with 20 MiB per attachment and 32 MiB combined.

XML and e-invoices

XML and e-invoices file capabilities
Format Extensions Extraction Preview Limits and notes
XML and e-invoice XML CII, Factur-X/ZUGFeRD 2, the exact ZUGFeRD 1.0 COMFORT profile, XRechnung, UBL e-invoices, and generic XML exports. XML Uses deterministic schema, business-rule, and arithmetic validation plus document-level extraction for supported e-invoices. Standard XRechnung 3.0 UBL and CII and the exact Extension profile in UBL and CII syntax use their matching pinned KoSIT scenarios and report xml_profile_conformance. The exact CVD profile in CII syntax uses its matching pinned KoSIT scenario but reports structural_and_business; UBL CVD is not claimed as supported. The exact ZUGFeRD 1.0 COMFORT profile uses its bundled XSD and Schematron with pinned artifact checksums and reports structural_and_business. Generic XML is accepted but normally returns type other without standard document AI extraction. Creates one human-readable HTML invoice visualization for every supported e-invoice in CII, UBL, and ZUGFeRD 1.0 COMFORT syntax, so the same invoice layout is returned regardless of the source format. Extension XRechnung 3.0 additionally keeps its source-ordered recursive invoice-line view. For exceptionally large line sets or repeatable review sections, the affected content is shown as a clearly labelled bounded prefix so browser rendering remains safe; the original XML remains unchanged. This HTML file is the canonical preview; the accompanying JPEG is only a representative thumbnail and visual fallback. Remaining safe XML is shown as pretty-printed XML. The visualization is labelled in the document locale; English and German are available. Maximum XML source size: 5 MiB Maximum XML elements: 200,000 elements Maximum XML nesting depth: 100 levels Valid standard XRechnung 3.0 invoices in UBL and CII syntax, the exact Extension profile in UBL and CII syntax, the exact CVD profile in CII syntax, and the exact ZUGFeRD 1.0 COMFORT profile are supported. UBL CVD, ZUGFeRD 1.0 BASIC and EXTENDED, oversized, unsafe, or invalid invoices, and invoices with unknown or unsupported profiles fail closed instead of returning empty invoice data. XML is admitted on element count and nesting depth as well as byte size, because a small source can still describe a disproportionately large document tree. A source past either bound is rejected before it is parsed, and reports structured_xml_complexity_limit. Extension XRechnung 3.0 maps the document-level v1 fields. Recursive line hierarchy, embedded attachment metadata, and third-party payment rows feed the generated HTML visualization but are not returned as v1 extraction fields; exceptionally large line sets or repeatable review sections are shown as clearly labelled source-order prefixes. Multiple ambiguous payee accounts remain validation-only and leave the singular iban and bic fields null. ZUGFeRD 1.0 COMFORT maps its validated document, party, payment, amount, tax, billing-period, and note values into the document-level v1 fields. The same support applies to authoritative XML embedded in a visibly matching PDF and to XML email attachments. ZUGFeRD 1.0 COMFORT support is bounded to invoices with TypeCode 380 or 84 and the published tax TypeCodes VAT, ZF_INSURANCE_TAX (insurance tax), or AAJ (second-hand-parts tax); other document and tax codes fail closed. For Extension XRechnung 3.0, gross_amount is the tax-inclusive invoice total (BT-112), not the remaining amount due after prepaid or third-party payment allocation. For ZUGFeRD 1.0 COMFORT, gross_amount is GrandTotalAmount; the optional DuePayableAmount is validation and linkage evidence, not the extracted gross total. CVD XRechnung 0.9 CII and ZUGFeRD 1.0 COMFORT remain supported and fully execute their stated validators, but report structural_and_business without claiming complete XML profile conformance.

API versioning

Use /api/v1 for document API integrations. Breaking API changes will be introduced under a new versioned base path.

OpenAPI contract

The OpenAPI YAML is available publicly for client generation and schema review. Client collections and receiver examples are listed under Tools and downloads.

OpenAPI contract
https://www.exdata.app/docs/api/openapi.yaml

Data handling links

Review these documents before sending production customer files through the API.

  • Privacy policy for how personal data is handled.
  • DPA for controller/processor terms.
  • TOMs for technical and organizational measures.
  • Security overview for access controls, audit context, and service safeguards.
  • Data residency for regional processing information.
  • Subprocessors for third-party processing dependencies.
  • Terms for product and account usage terms.