Inscribe · Schema
Document
Fraud PreventionDocument VerificationFinancial ServicesKYCKYBBank StatementsPaystubsIdentity VerificationRisk ManagementFintechArtificial IntelligenceMachine Learning
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/inscribe/main/json-schema/inscribe-document-schema.json",
"title": "Document",
"x-generated": "2026-10-14",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/inscribe-core-resources-openapi.yml#/components/schemas/Document",
"allOf": [
{
"$ref": "#/$defs/DocumentCompact"
},
{
"type": "object",
"properties": {
"tags": {
"type": "array",
"description": "A list of tags that you have assigned to a document. Tags are used to group documents together across customers.",
"items": {
"$ref": "#/$defs/Tag"
}
},
"collect_session": {
"type": [
"object",
"null"
],
"description": "An optional object, this will be non-null if this document was uploaded as part of a Collect session.",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Unique identifier for the Collect session."
},
"document_request_id": {
"type": "integer",
"description": "Unique identifier for the document request that this document document was uploaded to."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Time at which the session was created. In the format: yyyy-MM-dd'T'HH:mm:ssZ"
},
"completed_at": {
"type": "string",
"format": "date-time",
"description": "Time at which the session was completed. This will be null if the session has not been completed. In the format: yyyy-MM-dd'T'HH:mm:ssZ"
},
"live_capture_mode": {
"type": "boolean",
"description": "Indicates if the document was collected with Live Image Capture."
}
}
},
"checks": {
"type": "array",
"description": "A list of checks that were applied to the document.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the check"
},
"id": {
"type": "string",
"format": "uuid",
"description": "Unique identifier for the check."
},
"public": {
"type": "boolean",
"description": "Whether the check is shown to customers during collect sessions"
},
"passed": {
"type": "boolean",
"description": "Whether the check passed all of its conditions"
},
"triggers": {
"type": "array",
"description": "A list of trigger conditions that were satisfied, causing the check to be applied to the document",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the condition variable"
},
"operator": {
"type": "string",
"description": "The operator of the condition"
},
"value": {
"type": "string",
"description": "The value of the condition"
}
}
}
},
"requirements": {
"type": "array",
"description": "A list of requirement conditions applied to the document",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the condition variable"
},
"operator": {
"type": "string",
"description": "The operator of the condition"
},
"value": {
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "boolean"
},
{
"type": "integer"
},
{
"type": "number",
"format": "float"
}
],
"description": "The value of the condition"
},
"actual_value": {
"type": "string",
"description": "The value of the condition variable"
},
"passed": {
"type": "boolean",
"description": "Whether the requirement condition was met or not"
}
}
}
}
}
}
},
"verification": {
"type": "object",
"properties": {
"name": {
"type": "object",
"deprecated": true,
"description": "The name key will only exist if a name was submitted to be verified against this document. The values within will only be available when the document is in the PROCESSED state. **Warning** This field is deprecated and will be removed in a future release. Please use `names` instead.",
"properties": {
"verified": {
"type": "boolean",
"description": "Indicates if the name submitted was verified to be in the document. This value is only available when the document is in the PROCESSED state."
},
"input": {
"type": "string",
"description": "The name submitted to be verified in the document. This value is only available when the document is in the PROCESSED state."
},
"matched": {
"type": "string",
"description": "The name found in the document that matches the submitted name. This value is only available when the document is in the PROCESSED state."
}
}
},
"names": {
"type": "array",
"items": {
"type": "object",
"description": "The `names` key will only exist if a `names` array was submitted to be verified against this document. The values within will only be available when the document is in the PROCESSED state.",
"properties": {
"verified": {
"type": "boolean",
"description": "Indicates if the name submitted was verified to be in the document. This value is only available when the document is in the PROCESSED state."
},
"input": {
"type": "string",
"description": "The name submitted to be verified in the document. This value is only available when the document is in the PROCESSED state."
},
"matched": {
"type": "string",
"description": "The name found in the document that matches the submitted name. This value is only available when the document is in the PROCESSED state."
}
}
}
},
"address": {
"type": "object",
"deprecated": true,
"description": "The address key will only exist if an address was submitted to be verified against this document. The values within will only be available when the document is in the PROCESSED state. **warning** This field is deprecated and will be removed in a future release. Please use `addresses` instead.",
"properties": {
"verified": {
"type": "boolean",
"description": "Indicates if the address submitted was verified to be in the document. This value is only available when the document is in the PROCESSED state."
},
"input": {
"type": "string",
"description": "The address submitted to be verified in the document. This value is only available when the document is in the PROCESSED state."
},
"matched": {
"type": [
"string",
"null"
],
"description": "The address found in the document that matches the submitted address.This value is only available when the document is in the PROCESSED state."
},
"normalized": {
"type": "string",
"description": "The normalized version of the submitted address. This value is only available when the document is in the PROCESSED state."
},
"structured": {
"$ref": "#/$defs/Address"
}
}
},
"addresses": {
"type": "array",
"items": {
"type": "object",
"description": "The `addresses` key will only exist if a `addresses` array was submitted to be verified against this document. The values within will only be available when the document is in the PROCESSED state.",
"properties": {
"verified": {
"type": "boolean",
"description": "Indicates if the address submitted was verified to be in the document. This value is only available when the document is in the PROCESSED state."
},
"input": {
"type": "string",
"description": "The address submitted to be verified in the document. This value is only available when the document is in the PROCESSED state."
},
"matched": {
"type": [
"string",
"null"
],
"description": "The address found in the document that matches the submitted address. This value is only available when the document is in the PROCESSED state."
},
"normalized": {
"type": "string",
"description": "The normalized version of the submitted address. This value is only available when the document is in the PROCESSED state."
},
"structured": {
"$ref": "#/$defs/Address"
}
}
}
},
"company": {
"type": "object",
"deprecated": true,
"description": "The company key will only exist if a company was submitted to be verified against this document. The values within will only be available when the document is in the PROCESSED state. **Warning** This field is deprecated and will be removed in a future release. Please use `companies` instead.",
"properties": {
"verified": {
"type": "boolean",
"description": "Indicates if the company submitted was verified to be in the document. This value is only available when the document is in the PROCESSED state."
},
"input": {
"type": "string",
"description": "The company submitted to be verified in the document. This value is only available when the document is in the PROCESSED state."
},
"matched": {
"type": "string",
"description": "The company found in the document that matches the submitted company. This value is only available when the document is in the PROCESSED state."
}
}
},
"companies": {
"type": "array",
"items": {
"type": "object",
"description": "The `companies` key will only exist if a `companies` array was submitted to be verified against this document. The values within will only be available when the document is in the PROCESSED state.",
"properties": {
"verified": {
"type": "boolean",
"description": "Indicates if the company submitted was verified to be in the document. This value is only available when the document is in the PROCESSED state."
},
"input": {
"type": "string",
"description": "The company submitted to be verified in the document. This value is only available when the document is in the PROCESSED state."
},
"matched": {
"type": "string",
"description": "The company found in the document that matches the submitted company. This value is only available when the document is in the PROCESSED state."
}
}
}
},
"id_number": {
"type": "object",
"deprecated": true,
"description": "The id_number key will only exist if a id_number was submitted to be verified against this document. The values within will only be available when the document is in the PROCESSED state. **Warning** This field is deprecated and will be removed in a future release. Please use `id_numbers` instead.",
"properties": {
"verified": {
"type": "boolean",
"description": "Indicates if the id_number submitted was verified to be in the document. This value is only available when the document is in the PROCESSED state."
},
"input": {
"type": "string",
"description": "The id_number submitted to be verified in the document. This value is only available when the document is in the PROCESSED state."
},
"matched": {
"type": "string",
"description": "The id_number found in the document that matches the submitted id_number. This will not always be the exact same string as the input as we do some intelligent matching. This value is only available when the document is in the PROCESSED state."
}
}
},
"id_numbers": {
"type": "array",
"items": {
"type": "object",
"description": "The `id_numbers` key will only exist if a `id_numbers` array was submitted to be verified against this document. The values within will only be available when the document is in the PROCESSED state.",
"properties": {
"verified": {
"type": "boolean",
"description": "Indicates if the id_number submitted was verified to be in the document. This value is only available when the document is in the PROCESSED state."
},
"input": {
"type": "string",
"description": "The id_number submitted to be verified in the document. This value is only available when the document is in the PROCESSED state."
},
"matched": {
"type": "string",
"description": "The id_number found in the document that matches the submitted id_number. This will not always be the exact same string as the input as we do some intelligent matching. This value is only available when the document is in the PROCESSED state."
}
}
}
},
"strings": {
"type": "array",
"description": "The strings key will only exist if a `strings` array was submitted to be verified against this document. The values within will only be available when the document is in the PROCESSED state.",
"items": {
"type": "object",
"properties": {
"verified": {
"type": "boolean",
"description": "Indicates if the string submitted was verified to be in the document. This value is only available when the document is in the PROCESSED state."
},
"input": {
"type": "string",
"description": "The string submitted to be verified in the document. This value is only available when the document is in the PROCESSED state."
},
"matched": {
"type": "string",
"description": "The string found in the document that matches the submitted id_number. This will not always be the exact same string as the input as we do some intelligent matching. This value is only available when the document is in the PROCESSED state."
}
}
}
},
"patterns": {
"type": "array",
"description": "The patterns key will only exist if a `patterns` array was submitted to be verified against this document. The values within will only be available when the document is in the PROCESSED state. This feature is in beta and will improve over time.",
"required": [
"verified",
"key",
"pattern",
"matched_string",
"matched_groups"
],
"items": {
"type": "object",
"properties": {
"verified": {
"type": "boolean",
"description": "Indicates if the pattern submitted was verified to be in the document. This value is only available when the document is in the PROCESSED state."
},
"key": {
"type": "string",
"description": "The key identifying the pattern submitted to be verified in the document. This value is only available when the document is in the PROCESSED state."
},
"pattern": {
"type": "string",
"description": "The pattern submitted to be verified in the document. This value is only available when the document is in the PROCESSED state."
},
"matched_string": {
"type": "string",
"description": "The first string found in the document that matches the submitted pattern. This value is only available when the document is in the PROCESSED state."
},
"matched_groups": {
"type": "array",
"items": {
"type": "string"
},
"description": "The strings found in the document that matched the capturing groups in the submitted pattern. If the pattern contained no capturing groups then this will be an empty array. This value is only available when the document is in the PROCESSED state."
},
"error": {
"type": "string",
"description": "A description of the error that occurred. This value is only available when the document is in the PROCESSED state and an error occurred."
}
}
}
}
}
},
"parsed_details": {
"type": "object",
"description": "Relevant information that has been parsed from the document you supplied.",
"properties": {
"document_date": {
"type": "object",
"description": "The document date. For documents such as bank statements, this will be the last day of the statement period. For utility bills and invoices, this will be the date of issue of the bill or invoice. For payslips, this will be the check date or advice date. The document_date key will not exist if a date could not be parsed from the document and values within will only be available when the document is in the PROCESSED state.",
"properties": {
"raw": {
"type": "string",
"description": "The raw date as it appears in the document. This value is only available when the document is in the PROCESSED state."
},
"normalized": {
"type": "string",
"format": "date",
"description": "Normalized date. In the format yyyy-MM-dd - example: 2019-12-03. If a day is not present in the raw date, the normalized date will correspond to the last day of the month. For example, February 2019 will be normalized as 2019-02-28. This value is only available when the document is in the PROCESSED state."
},
"confidence": {
"type": "number",
"format": "float",
"description": "A value between 0 and 1 indicating the confidence in the parsed output. This value is only available when the document is in the PROCESSED state."
}
}
},
"address": {
"type": "object",
"description": "The address of the document recipient. The address key will not exist if an address could not be parsed from the document and values within will only be available when the document is in the PROCESSED state.",
"properties": {
"raw": {
"type": "string",
"description": "The raw address as it appears in the document. This value is only available when the document is in the PROCESSED state."
},
"normalized": {
"type": "string",
"description": "Normalized address. This value is only available when the document is in the PROCESSED state."
},
"structured": {
"type": "object",
"description": "The structured output of the address. Any or all of these fields can be empty depending on the raw address.",
"properties": {
"line_1": {
"type": "string",
"description": "First line of the address"
},
"line_2": {
"type": "string",
"description": "Second line of the address"
},
"city": {
"type": "string",
"description": "City of the address"
},
"post_code": {
"type": "string",
"description": "Post code of the address"
},
"state": {
"type": "string",
"description": "State field of the address"
},
"country": {
"type": "string",
"description": "Country of the address"
}
}
},
"confidence": {
"type": "number",
"format": "float",
"description": "A value between 0 and 1 indicating the confidence in the parsed output. This value is only available when the document is in the PROCESSED state."
}
}
},
"name": {
"type": "object",
"description": "The relevant name that this document references. The name key will not exist if a name could not be parsed from the document and values within will only be available when the document is in the PROCESSED state.",
"properties": {
"raw": {
"type": "string",
"description": "The name of the document recipient. This value is only available when the document is in the PROCESSED state."
},
"variants": {
"type": "array",
"description": "List of name variants for matching against, obtained by formatting by line and removing titles and incorporation suffixes. For example, the raw name \"MR FRANK ABAGNALE\\nHOT DEALS LLC\" will have as a list of variants [\"Mr Frank Abagnale\", \"Frank Abagnale\" \"Hot Deals Llc\", \"Hot Deals\"]. This value is only available when the document is in the PROCESSED state.",
"items": {
"type": "string"
}
},
"confidence": {
"type": "number",
"format": "float",
"description": "A value between 0 and 1 indicating the confidence in the parsed output. This value is only available when the document is in the PROCESSED state."
}
}
},
"account_number": {
"type": "object",
"description": "The account_number key contains information about the account number as presented in relevant documents such as bank statements or utility bills. The account_number key will not exist if an account number could not be parsed from the document and values within will only be available when the document is in the PROCESSED state.",
"properties": {
"raw": {
"type": "string",
"description": "The account number as it appears on the document. This value is only available when the document is in the PROCESSED state."
},
"normalized": {
"type": "string",
"description": "A formatted version of the account number, with all spaces removed. This value is only available when the document is in the PROCESSED state."
},
"formatted": {
"type": "string",
"description": "This key has been deprecated."
},
"confidence": {
"type": "number",
"format": "float",
"description": "A value between 0 and 1 indicating the confidence in the parsed output. This value is only available when the document is in the PROCESSED state."
}
}
},
"beginning_balance": {
"type": "object",
"deprecated": true,
"description": "This key has been deprecated by `\"beginning_balance\"` in the `\"bank_accounts\"` parsed details.",
"properties": {
"raw": {
"type": "string",
"description": "The beginning balance as it appears on the document. This value is only available when the document is in the PROCESSED state."
},
"normalized": {
"type": "number",
"format": "float",
"description": "The numeric part of the balance, with currency information removed. This value is only available when the document is in the PROCESSED state."
},
"formatted": {
"type": "string",
"description": "This key has been deprecated."
},
"confidence": {
"type": "number",
"format": "float",
"description": "A value between 0 and 1 indicating the confidence in the parsed output. This value is only available when the document is in the PROCESSED state."
}
}
},
"ending_balance": {
"type": "object",
"deprecated": true,
"description": "This key has been deprecated by `\"beginning_balance\"` in the `\"bank_accounts\"` parsed details.",
"properties": {
"raw": {
"type": "string",
"description": "The ending balance as it appears on the document. This value is only available when the document is in the PROCESSED state."
},
"normalized": {
"type": "number",
"format": "float",
"description": "The numeric part of the balance, with currency information removed. This value is only available when the document is in the PROCESSED state."
},
"formatted": {
"type": "string",
"description": "This key has been deprecated."
},
"confidence": {
"type": "number",
"format": "float",
"description": "A value between 0 and 1 indicating the confidence in the parsed output. This value is only available when the document is in the PROCESSED state."
}
}
},
"date_of_birth": {
"type": "object",
"description": "The date_of_birth key contains information about the date of birth as presented in relevant documents such as driving licences and passports. The date_of_birth key will not exist if a relevant date could not be parsed from the document and values within will only be available when the document is in the PROCESSED state.",
"properties": {
"raw": {
"type": "string",
"description": "The date as it appears on the document. This value is only available when the document is in the PROCESSED state."
},
"normalized": {
"type": "string",
"format": "date",
"description": "Normalized date. When normalizing, ambiguous dates such as \"12.03.1989\" are assumed to be in the form MM/dd/yyyy. Value returned in the format yyyy-MM-dd. This value is only available when the document is in the PROCESSED state."
},
"formatted": {
"type": "string",
"description": "This key has been deprecated."
},
"confidence": {
"type": "number",
"format": "float",
"description": "A value between 0 and 1 indicating the confidence in the parsed output. This value is only available when the document is in the PROCESSED state."
}
}
},
"expiry_date": {
"type": "object",
"description": "The expiry_date key contains information about the expiry date as presented in relevant documents such as driving licences and passports. The expiry_date key will not exist if a relevant date could not be parsed from the document and values within will only be available when the document is in the PROCESSED state.",
"properties": {
"raw": {
"type": "string",
"description": "The date as it appears on the document. This value is only available when the document is in the PROCESSED state."
},
"normalized": {
"type": "string",
"format": "date",
"description": "Normalized date. When normalizing, ambiguous dates such as \"12.03.2023\" are assumed to be in the form MM/dd/yyyy. Value returned in the format yyyy-MM-dd. This value is only available when the document is in the PROCESSED state."
},
"formatted": {
"type": "string",
"description": "This key has been deprecated."
},
"confidence": {
"type":
# --- truncated at 32 KB (252 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/inscribe/refs/heads/main/json-schema/inscribe-document-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/inscribe-document"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.