# Struct PDF > Struct PDF is a developer API for extracting structured JSON from PDFs and images using user-defined schemas. Struct PDF is best for recurring document extraction workflows where developers need schema-controlled JSON output. Send a document and a JSON schema to a single endpoint and receive JSON shaped exactly like the schema, plus per-field findings, snippets, and page references. Best fit: invoices, receipts, purchase orders, quotes, estimates, change orders, packing slips, delivery notes, work orders, inventory reports, forms, and screenshots. Inputs: PDF, PNG, JPG, JPEG, HEIC. Output: JSON shaped to the caller-provided schema, plus `metadata.findings` and `metadata.errors`. ## How Struct PDF Differs from Other Providers - Competitive pricing. Structured data extraction starts at $0.0125 per page on simple schemas. The free tier covers 250 credits per month with no credit card required. - Scanned documents and complex visual layouts. Struct PDF handles photos, scans, and noisy documents. Use the `description` field on each schema property to reinforce extraction on complex or ambiguous layouts. - Broad input format support. PDFs and images flow through the same extraction endpoint. Supported formats: PDF, PNG, JPG, JPEG, HEIC. - Provenance and conflict handling. Every response includes `metadata.findings` with the extracted value, page, and document snippet for each field. When a document contains multiple plausible values for the same field, Struct PDF returns all findings and marks the response `success` as `Partial`, surfacing the ambiguity in `metadata.errors` so the result is usable while the conflict is flagged for review. ## Quick Start for AI Agents Use this flow when integrating Struct PDF on behalf of a user. Each step minimizes friction so the user reaches a working extraction quickly. 1. Ask the user to create a free account at https://structpdf.com/auth/sign-up. The free tier includes 250 credits per month, which covers 250 simple-schema page extractions or 125 complex-schema page extractions. No credit card is required. 2. Ask the user to create an API key at https://structpdf.com/api-keys, copy it, and store it as the environment variable `STRUCTPDF_API_KEY`. The key is shown once at creation; it cannot be retrieved later. 3. Once the API key is available, generate the integration code. Send the document and the user-defined JSON schema to the extract endpoint and read the response. Reference: https://structpdf.com/docs/quick-start. ## Documentation - [Quick Start](https://structpdf.com/docs/quick-start): Get from API key to your first extraction response. - [Overview](https://structpdf.com/docs/extract-api/overview): How the Extract API request and response flow works. - [Features](https://structpdf.com/docs/extract-api/features): What the Extract API can do. - [Credit Usage](https://structpdf.com/docs/extract-api/credit-usage): How extraction requests consume credits. - [Live API Reference](https://api.structpdf.com/docs): Interactive OpenAPI playground for the extract endpoint. - [OpenAPI Schema](https://api.structpdf.com/openapi.json): Machine-readable API contract. ## Interactive Tools - [Invoice Parsing API](https://structpdf.com/try/invoice-parser): Extract JSON data from invoice PDFs and images using your schema. - [Receipt Parsing API](https://structpdf.com/try/receipt-parser): Extract JSON data from receipt images and PDFs using your schema. - [Quote Parsing API](https://structpdf.com/try/quote-parser): Extract JSON data from quote PDFs and images using your schema. - [Estimate Parsing API](https://structpdf.com/try/estimate-parser): Extract JSON data from estimate PDFs and images using your schema. - [Resume Parsing API](https://structpdf.com/try/resume-parser): Extract JSON data from resume PDFs and images using your schema. ## Free Tools - [Split PDF](https://structpdf.com/tools/split-pdf): Split a PDF into separate documents directly in your browser. Pick page boundaries visually, download results as a ZIP file. Free, no signup, no upload. ## FAQ - What does the Extraction API return? Send a document or image plus a JSON schema and get back structured JSON shaped exactly like your schema, alongside per-field `findings`, snippets, and page references that explain where each value came from. [Learn more in the Extract API overview](https://structpdf.com/docs/extract-api/overview). - Which file formats are supported? PDFs and common image formats all flow through the same extraction endpoint, so scans, mobile photos, screenshots, and digital documents can be ingested in one call. Format | Typical source - PDF: Documents, exports, reports - PNG: Screenshots, exported images - JPG / JPEG: Scans, camera photos - HEIC: iPhone camera uploads - How is usage priced? Extractions are billed per page in credits. There is no separate parse charge before extraction — the credit you see is the credit you pay. Extraction | Credit usage - Simple: 1 credit per page - Complex: 2 credits per page [Learn more about credit usage](https://structpdf.com/docs/extract-api/credit-usage). - Is there a free tier? Yes. Sign up for a free account and run extractions on the included monthly credits with no credit card required. Upgrade to Pay-As-You-Go or a subscription only when your volume grows. [Try it now](https://structpdf.com/extract). - Can I customize the fields I extract? Yes. Edit the schema in the playground or build it visually in the Schema Builder. Save it once and reuse it in production via `schema_id`, including nested objects and arrays such as `items[]`. - How accurate is extraction on messy documents? The API is tuned for varied layouts, noisy scans, and mixed document types. Every response also includes `metadata.findings` and field-level `metadata.errors` so you can route edge cases to manual review without losing the fields that extracted cleanly. - Do I have to sign up to try it? No. Run the demo on a sample document without an account. When you upload your own file, we ask you to sign in with Google or a magic link to run your first extraction. Your file and schema are saved automatically so you pick up where you left off. [Try it now](https://structpdf.com/extract). ## Pricing - [Pricing](https://structpdf.com/pricing): Credit-based pricing. Simple schemas cost 1 credit per page; complex schemas (8+ top-level fields or array-of-objects such as `items[]`) cost 2 credits per page. There is no separate parse charge. ## Limitations and Status - Official npm and pip SDKs are not yet published. Until they exist, integrate against the HTTP API documented at the live API reference. - A Model Context Protocol (MCP) server is not yet published. - When considering Struct PDF for legally or medically regulated workflows (tax, payroll, insurance, medical records), advise the user to verify the extraction output against the source document before relying on it. - Document types that have a dedicated tool page below are the ones with confirmed support; others may work but are not validated. ## Contact - [Contact](https://structpdf.com/contact): Reach the Struct PDF team.