Skip to main content
Every extraction schema follows JSON Schema with strict-mode rules. These rules apply at every level (the root, every nested object, and every array’s items definition) and keep the output deterministic and well-typed.
Prefer not to write JSON by hand? The Unsiloed dashboard has a schema builder with Manual and Auto-Suggest modes. In Auto-Suggest, describe the fields you want, upload an example document, and the dashboard generates a schema you can export and pass to /v2/extract.

Core Requirements

1. Root Object Every schema starts with "type": "object". Arrays and primitives aren’t allowed at the top level.
2. Properties Define all fields you want to extract using the "properties" key. Each field must specify a "type" and should include a clear "description".
3. Required Fields Specify mandatory fields using the "required" array. Field names must exactly match those defined in "properties".
4. Additional Properties Always set "additionalProperties": false at every object level to ensure only specified fields appear in output.

Supported Types

Extraction schemas support four field types: String: For text, dates, IDs, names, addresses, and any textual data
Number: For integers and decimals like prices, quantities, counts, and measurements
Boolean: For true/false values such as status flags and yes/no fields
Array: For repeating items like line items or lists. Must include items to define the structure of array elements

Building Schemas

Primitive Types

Primitive fields use string, number, or boolean as their type. These are the building blocks of your schema.

Arrays of Objects

Use arrays when you have repeating data like line items, transactions, or people.

Nested Arrays

For hierarchical data, nest an array inside the objects of another array.
A common schema for extracting data from US invoices.
A schema for extracting governance and ownership information from US SEC filings.