Properties
| Name | Type | Description |
|---|---|---|
| id | string | |
| name | string | |
| type | string | "string" (default) | "number" | "integer" | "date" | "array". Scalar types never reach the model — declaring one adds a parsed `normalized` value per cell and raises `type_mismatch` when the printed v |
| description | string | |
| children | array | |
| required | boolean | Review declaration: report reason "missing" when this column comes back empty on an upload. Never shown to the model. |
| label | object | Printed label to anchor this column's coordinates to when the value repeats on the page (string columns only, engine v64). Never shown to the model. |
| pattern | object | Regex the extracted value must match (string columns only, JSON-Schema partial-match semantics — anchor with ^…$ for whole-value). Array = any-one-matches. Violation → review reason `pattern_mismatch` |
| min | number | Inclusive lower bound for a number/integer column's normalized value. Violation → `out_of_range`. |
| max | number | Inclusive upper bound for a number/integer column's normalized value. Violation → `out_of_range`. |
| enum | array | Allowed values (string columns only). A value outside the set raises review reason `pattern_mismatch`. Never shown to the model. |
| near | object | Vocabulary that must be printed beside the value — one term, a list, or { terms, match }. The check runs over every occurrence of the value: none beside a declared term → `near_mismatch`, one beside a |
| not_near | object | The mirror of `near` — vocabulary the value must NOT sit beside (登録番号/TEL/〒 on an addressee column). Sitting beside one raises `near_conflict`. Absence of the vocabulary is not a violation, so this ne |
| review | string | "off" withholds engine-inferred review reasons for this column. Declared-rule violations (missing / pattern / range / enum / near) still report. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/space-ocr-com/json-schema/space-ocr-com-column-spec-schema.json",
"title": "ColumnSpec",
"x-generated": "2026-10-31",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/space-ocr-com-openapi.json#/components/schemas/ColumnSpec",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"description": "\"string\" (default) | \"number\" | \"integer\" | \"date\" | \"array\". Scalar types never reach the model — declaring one adds a parsed `normalized` value per cell and raises `type_mismatch` when the printed value won't parse."
},
"description": {
"type": "string"
},
"children": {
"type": "array",
"items": {}
},
"required": {
"type": "boolean",
"description": "Review declaration: report reason \"missing\" when this column comes back empty on an upload. Never shown to the model."
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "Printed label to anchor this column's coordinates to when the value repeats on the page (string columns only, engine v64). Never shown to the model."
},
"pattern": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "Regex the extracted value must match (string columns only, JSON-Schema partial-match semantics — anchor with ^…$ for whole-value). Array = any-one-matches. Violation → review reason `pattern_mismatch`. Never shown to the model."
},
"min": {
"type": "number",
"description": "Inclusive lower bound for a number/integer column's normalized value. Violation → `out_of_range`."
},
"max": {
"type": "number",
"description": "Inclusive upper bound for a number/integer column's normalized value. Violation → `out_of_range`."
},
"enum": {
"type": "array",
"items": {
"type": "string"
},
"description": "Allowed values (string columns only). A value outside the set raises review reason `pattern_mismatch`. Never shown to the model."
},
"near": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "object",
"properties": {
"terms": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"match": {
"type": "string"
}
},
"required": [
"terms"
]
}
],
"description": "Vocabulary that must be printed beside the value — one term, a list, or { terms, match }. The check runs over every occurrence of the value: none beside a declared term → `near_mismatch`, one beside a term but not the copy the coordinates landed on → `near_ambiguous`. When the term itself is absent, `review.notes` reports `near_unresolved`. Never shown to the model."
},
"not_near": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "object",
"properties": {
"terms": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"match": {
"type": "string"
}
},
"required": [
"terms"
]
}
],
"description": "The mirror of `near` — vocabulary the value must NOT sit beside (登録番号/TEL/〒 on an addressee column). Sitting beside one raises `near_conflict`. Absence of the vocabulary is not a violation, so this never abstains. Never shown to the model."
},
"review": {
"type": "string",
"enum": [
"normal",
"off"
],
"description": "\"off\" withholds engine-inferred review reasons for this column. Declared-rule violations (missing / pattern / range / enum / near) still report."
}
},
"required": [
"name",
"type"
]
}
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/space-ocr-com-column-spec"
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.