Skip to content

Guide

What LandingAI built

Agentic Document Extraction as a product: three APIs, two generations, two DPT-3 models, and the operating envelope around them.

Three APIs

API Input Output Billing
Parse PDF, image, DOCX, PPTX, ODT, RTF (Gen2); spreadsheets and legacy Office in Gen1 reading-order markdown, a structure tree of pages and blocks, per-block grounding by output characters (Gen2); Verity about 40% of Pro's credits
Extract markdown from any source plus a JSON Schema values matching the schema, each with character ranges into the markdown by input and output characters
Ground Parse structure plus Extract extraction_metadata the blocks, pages and boxes each extracted value was quoted from free, synchronous

Gen1 keeps four more: Classify (document type per page), Split (cut a batch into sub-documents, detecting repeated identifiers such as invoice numbers), Section, and Build Extract Schema. Gen1 Parse takes custom_prompts for figure descriptions and split=page.

Sources: Overview, ADE agent skill, Gen1 overview.

Two generations

Gen1 (DPT-2) Gen2 (DPT-3)
Endpoint api.va.landing.ai/v1/ade/parse api.ade.landing.ai/v2/parse
Response chunks list, 0-indexed pages, boxes as left/top/right/bottom structure tree, 1-indexed pages, boxes as xmin/ymin/xmax/ymax, range into markdown
Tables pipe markdown HTML by default (merged cells), markdown optional
Confidence block and cell level (preview, Feb 2026), gone after the September 2026 provider change per word, Verity only
Figure prompts custom_prompts.figure none; blocks.figure.markdown on/off
Models dpt-2, dated snapshots dpt-3-pro-20260710, dpt-3-verity-20260804-preview
Pricing 3 credits per page by characters; "25% to 80% lower for mixed workloads"

Gen1 code does not run on Gen2 without changes; Extract schemas carry over. Source: migration guide.

Two DPT-3 models

DPT-3 Pro (default): scans, handwriting, non-Latin scripts, math, detailed figure descriptions, markdown styling, line-level grounding, no confidence. DPT-3 Verity (preview, formerly DPT-3 Fast): digitally created Latin-script documents, word-level grounding with per-word confidence, no styling, basic figure markers, lower latency and cost. Automated routing between them is "planned for fall 2026." Details and evidence on how DPT-3 works.

Languages

Strong support: English, Chinese (Simplified and Traditional), Dutch, French, German, Italian, Japanese, Korean, Portuguese, Russian, Spanish. Moderate: Arabic, Czech, Danish, Finnish, Greek, Hebrew, Hindi, Indonesian, Norwegian, Polish, Swedish, Thai, Turkish, Vietnamese. Basic: Amharic, Bengali, Gujarati, Malayalam, Tamil, Telugu, Urdu and other complex scripts. The tiers apply to DPT-2 and DPT-3 Pro; Verity reads Latin scripts only. Source: supported languages.

Operating envelope

  • Files: up to 1 GiB for PDFs, 50 MiB for images; page limits per plan; Office files converted to PDF before parsing.
  • Modes: synchronous (priority tier, inline result) or jobs (standard tier at half the credits, poll or webhook); results can be written to S3, Azure Blob or GCS presigned URLs for zero-data-retention organisations.
  • Deployment: US and EU cloud, customer VPC on AWS, Azure or Google Cloud, Snowflake native app, on-premises including air-gapped (enterprise).
  • Compliance claims: SOC 2 Type II, GDPR, HIPAA.
  • Throughput claims: "thousands of pages per minute" and "under 2 second processing time" on the marketing site; measured duration_ms is returned per request.

Sources: file types, sync vs async, Gen2 blog, landing.ai.

Open-source surface

LandingAI's GitHub organisation holds the client side, never the model: ade-python, ade-typescript, ade-cli, the ade-document-processing-skills agent skill, ade-sample-projects, and the ade-docvqa-benchmark that reports 99.156% on DocVQA validation by parsing with DPT-2 and answering with Claude Sonnet 4.5. The legacy agentic-doc library and vision-agent tools are deprecated.

Accessing ADE from code

from pathlib import Path
from landingai_ade import LandingAIADE   # pip install landingai-ade

client = LandingAIADE()                   # reads VISION_AGENT_API_KEY
job = client.v2.parse_jobs.create(document=Path("deck.pdf"), model="dpt-3-pro-latest", service_tier="standard")
done = client.v2.parse_jobs.wait(job.job_id, timeout=3600, raise_on_failure=True)
Path("parse-response.json").write_text(done.result.model_dump_json(indent=2))

The evaluation recipe wraps this so ADE's output lands in the same folder layout as the local pipeline's.