Vertesia · Schema

ContentObjectTypeCatalogEntry

CompanyDigital ExperiencePerformance MonitoringAnalyticsContent Delivery

Properties

Name Type Description
id string Unique identifier for the object
name string Human-readable name or title
description string Optional detailed description of the object
tags array Optional array of categorization tags
object_schema object JSON Schema for the structured properties extracted into documents of this type. Only included in ContentObjectTypeItem if explicitly requested; always included in ContentObjectType.
table_layout array Column layout used when listing documents of this type. Only included in ContentObjectTypeItem if explicitly requested; always included in ContentObjectType.
is_chunkable boolean Whether documents of this type can be split into chunks
strict_mode boolean Determines if the content will be validated against the object schema a generation time and save/update time.
status object
intake object
editing object
title string Display title. Defaults to `name` or `id`.
updated_by string
created_by string
created_at string
updated_at string
edit_revision integer Stored-resource revision. Omitted for app-contributed in-code types.
View JSON Schema on GitHub

JSON Schema

vertesiahq-content-object-type-catalog-entry-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/vertesiahq/json-schema/vertesiahq-content-object-type-catalog-entry-schema.json",
  "title": "ContentObjectTypeCatalogEntry",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/vertesiahq-content-object-types-api-openapi.yml#/components/schemas/ContentObjectTypeCatalogEntry",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the object"
    },
    "name": {
      "type": "string",
      "description": "Human-readable name or title"
    },
    "description": {
      "type": "string",
      "description": "Optional detailed description of the object"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional array of categorization tags"
    },
    "object_schema": {
      "type": "object",
      "additionalProperties": true,
      "description": "JSON Schema for the structured properties extracted into documents of this type. Only included in ContentObjectTypeItem if explicitly requested; always included in ContentObjectType."
    },
    "table_layout": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ColumnLayout"
      },
      "description": "Column layout used when listing documents of this type. Only included in ContentObjectTypeItem if explicitly requested; always included in ContentObjectType."
    },
    "is_chunkable": {
      "type": "boolean",
      "description": "Whether documents of this type can be split into chunks"
    },
    "strict_mode": {
      "type": "boolean",
      "description": "Determines if the content will be validated against the object schema a generation time and save/update time."
    },
    "status": {
      "$ref": "#/$defs/ContentObjectTypeStatus"
    },
    "intake": {
      "$ref": "#/$defs/ContentTypeIntakePolicy"
    },
    "editing": {
      "$ref": "#/$defs/ContentTypeEditingPolicy"
    },
    "title": {
      "type": "string",
      "description": "Display title. Defaults to `name` or `id`."
    },
    "updated_by": {
      "type": "string"
    },
    "created_by": {
      "type": "string"
    },
    "created_at": {
      "type": "string"
    },
    "updated_at": {
      "type": "string"
    },
    "edit_revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991,
      "description": "Stored-resource revision. Omitted for app-contributed in-code types."
    }
  },
  "required": [
    "id",
    "name"
  ],
  "additionalProperties": false,
  "$defs": {
    "AnthropicClaudeOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "anthropic-claude"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high",
            "xhigh",
            "max"
          ]
        },
        "thinking_mode": {
          "type": "string",
          "enum": [
            "adaptive",
            "between_tools"
          ],
          "description": "Thinking mode override. Sonnet 5.5 supports between_tools at low, medium, or high effort. It omits display and budget fields; keep effort fixed during the conversation. When unset, existing model-specific thinking behavior is preserved."
        },
        "thinking_budget_tokens": {
          "type": "number"
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "cache_enabled": {
          "type": "boolean"
        },
        "cache_ttl": {
          "type": "string",
          "enum": [
            "5m",
            "1h"
          ]
        },
        "speed": {
          "type": "string",
          "enum": [
            "standard",
            "fast"
          ]
        }
      },
      "additionalProperties": false
    },
    "AzureFoundryChatOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "azure-foundry-chat"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "seed": {
          "type": "number"
        },
        "image_detail": {
          "type": "string",
          "enum": [
            "low",
            "high",
            "auto"
          ]
        },
        "include_thoughts": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "BedrockAI21Options": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-ai21"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockClaudeOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-claude"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "top_k": {
          "type": "number"
        },
        "thinking_mode": {
          "type": "string",
          "enum": [
            "adaptive",
            "between_tools"
          ],
          "description": "Thinking mode override. Sonnet 5.5 supports between_tools at low, medium, or high effort. It omits display and budget fields; keep effort fixed during the conversation. When unset, existing model-specific thinking behavior is preserved."
        },
        "thinking_budget_tokens": {
          "type": "number"
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high",
            "xhigh",
            "max"
          ]
        },
        "cache_enabled": {
          "type": "boolean"
        },
        "cache_ttl": {
          "type": "string",
          "enum": [
            "5m",
            "1h"
          ]
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockCohereCommandOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-cohere-command"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockConverseOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-converse"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "reasoning_effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "verbosity": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockGptOssOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-gpt-oss"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "reasoning_effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        },
        "frequency_penalty": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockMantleChatCompletionsOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-mantle-chat-completions"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        },
        "reasoning_effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        },
        "include_thoughts": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "BedrockMantleClaudeOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-mantle-claude"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "effort": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high",
            "xhigh",
            "max"
          ]
        },
        "thinking_mode": {
          "type": "string",
          "enum": [
            "adaptive",
            "between_tools"
          ],
          "description": "Thinking mode override. Sonnet 5.5 supports between_tools at low, medium, or high effort. It omits display and budget fields; keep effort fixed during the conversation. When unset, existing model-specific thinking behavior is preserved."
        },
        "thinking_budget_tokens": {
          "type": "number"
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "cache_enabled": {
          "type": "boolean"
        },
        "cache_ttl": {
          "type": "string",
          "enum": [
            "5m",
            "1h"
          ]
        }
      },
      "additionalProperties": false
    },
    "BedrockMantleResponsesOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-mantle-responses"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "effort": {
          "type": "string",
          "enum": [
            "none",
            "low",
            "medium",
            "high",
            "xhigh",
            "max"
          ]
        },
        "reasoning_effort": {
          "type": "string",
          "enum": [
            "none",
            "low",
            "medium",
            "high",
            "xhigh",
            "max"
          ]
        },
        "verbosity": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        },
        "image_detail": {
          "type": "string",
          "enum": [
            "low",
            "high",
            "auto"
          ]
        },
        "include_thoughts": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "BedrockMistralOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-mistral"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockNovaOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-nova"
        },
        "effort": {
          "$ref": "#/$defs/ReasoningEffort"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "top_k": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "include_thoughts": {
          "type": "boolean"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "BedrockPalmyraOptions": {
      "type": "object",
      "properties": {
        "_option_id": {
          "type": "string",
          "const": "bedrock-palmyra"
        },
        "max_tokens": {
          "type": "number"
        },
        "temperature": {
          "type": "number"
        },
        "top_p": {
          "type": "number"
        },
        "stop_sequence": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "min_tokens": {
          "type": "number"
        },
        "seed": {
          "type": "number"
        },
        "frequency_penalty": {
          "type": "number"
        },
        "presence_penalty": {
          "type": "number"
        },
        "service_tier": {
          "type": "string",
          "minLength": 1,
          "description": "Provider-defined processing tier. Unknown non-empty values are preserved for forward compatibility."
        }
      },
      "additionalProperties": false
    },
    "ColumnLayout": {
      "type": "object",
      "properties": {
        "field": {
          "type": "string",
          "description": "The path of the field to use (e.g. \"properties.title\")"
        },
        "name": {
          "type": "string",
          "description": "The name to display in the table column"
        },
        "type": {
          "type": "string",
          "description": "The type of the field specifies how the rendering will be done. If not specified the string type will be used. The type may contain additional parameters prepended using a web-like query string syntax: date?LLL"
        },
        "fallback": {
          "type": "string",
          "description": "Path of an alternate field to display when the primary field is absent"
        },
        "default": {
          "description": "A default value to be used if the field is not present in the object"
        }
      },
      "required": [
        "field",
        "name"
      ],
      "additionalProperties": false
    },
    "ConfigModes": {
      "type": "string",
      "enum": [
        "RUN_AND_INTERACTION_CONFIG",
        "RUN_CONFIG_ONLY",
        "INTERACTION_CONFIG_ONLY"
      ]
    },
    "ContentObjectTypeStatus": {
      "type": "string",
      "enum": [
        "active",
        "draft"
      ]
    },
    "ContentTypeEditingPolicy": {
      "type": "object",
      "properties": {
        "interaction": {
          "type": "string",
          "description": "Agent interaction used for new document-editing sessions. Defaults to sys:GeneralAgent."
        }
      },
      "additionalProperties": false,
      "description": "Per-content-type policy for collaborative document editing."
    },
    "ContentTypeExtractionGroundingPolicy": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Enable PDF block-level citation grounding for property extraction."
        },
        "interaction": {
          "type": "string",
          "description": "Grounded extraction interaction. Defaults to the system grounded extractor."
        },
        "max_pages": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483647,
          "description": "Maximum pages to process."
        },
        "force_ocr": {
          "type": "boolean",
          "description": "Run OCR on every page even when a text layer exists."
        },
        "use_vision": {
          "type": "boolean",
          "description": "Attach instrumented page images to the grounded extraction prompt."
        },
        "raster_mode": {
          "type": "string",
          "enum": [
            "vision",
            "ocr"
          ],
          "description": "How to read pages with no digital text layer (scans / image-only pages). 'vision' (default): read them off the page image and skip OCR. 'ocr': legacy path — OCR those pages and block-ground on the (lossy) OCR text."
        },
        "grid_cell_pt": {
          "type": "number",
          "minimum": 1,
          "description": "A1 locate-grid cell size in PDF points for vision pages. Smaller = finer grid (more cells, tighter boxes) but can trip weaker models into over-reading; tune per the model in `config`. Default 15."
        },
        "omit_block_boxes": {
          "type": "boolean",
          "description": "Drop block bounding boxes from the extraction prompt. Only sound with use_vision (layout comes from the image)."
        },
        "window_pages": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483647,
          "description": "Maximum pages per grounded extraction call before windowing."
        },
        "update_properties": {
          "type": "boolean",
          "description": "Update object properties with grounded extraction data. Default true."
        },
        "config": {
          "$ref": "#/$defs/InteractionExecutionConfiguration",
          "description": "Model execution configuration for the main grounded extraction interaction."
        },
        "hard_config": {
          "$ref": "#/$defs/InteractionExecutionConfiguration",
          "description": "Model execution configuration used for hard-to-read content."
        },
        "hardness_threshold": {
          "type": "number",
          "minimum": 0,
          "maximum": 1,
          "description": "Hardness score at or above which hard_config is used. Default 0.5."
        },
        "min_citation_density": {
          "type": "number",
          "minimum": 0,
          "maximum": 1,
          "description": "Minimum citations-per-leaf-value ratio; completions below it retry with escalation. Default 0.3."
        },
        "refresh_ocr": {
          "type": "boolean",
          "description": "Re-run OCR instead of restoring durable OCR artifacts (stale pipeline output)."
        },
        "review": {
          "$ref": "#/$defs/ContentTypeExtractionGroundingReviewPolicy",
          "description": "Optional post-extraction review pass."
        }
      },
      "additionalProperties": false
    },
    "ContentTypeExtractionGroundingReviewPolicy": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Set false to disable an inherited grounding review pass for this type."
        },
        "config": {
          "$ref": "#/$defs/InteractionExecutionConfiguration",
          "description": "Model execution configuration for the review interaction."
        },
        "threshold": {
          "type": "number",
          "minimum": 0,
          "maximum": 1,
          "description": "Hardness score at or above which review runs. Defaults to hardness_threshold."
        },
        "coverage_threshold": {
          "type": "number",
          "minimum": 0,
          "maximum": 1,
          "description": "Review also runs when any page's citation coverage falls below this floor (evidence of missed content). Default 0.2."
        },
        "force": {
          "type": "boolean",
          "description": "Run review regardless of hardness."
        }
      },
      "additionalProperties": false
    },
    "ContentTypeIntakePolicy": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "programmatic",
            "agentic"
          ],
          "description": "Intake orchestration mode for this type."
        },
        "identification": {
          "type": "object",
          "properties": {
            "guidance": {
              "type": "string"
            },
            "distinguish_from": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "description": "Guidance used when selecting or creating this content type."
        },
        "locate": {
          "type": "object",
          "properties": {
            "instructions": {
              "type": "string",
              "description": "What to look for (\"commercial terms, payment schedule, signature pages\")."
            },
            "detail": {
              "type": "number",
              "enum": [
                8,
                16
              ],
              "description": "Pages per contact sheet: 8 = bigger tiles (headings readable). Default 16."
            },
            "min_pages": {
              "type": "integer",
              "minimum": 0,
              "maximum": 2147483647,
              "description": "Only run when the page count is at least this. Default 8."
            }
          },
          "required": [
            "instructions"
          ],
          "additionalProperties": false,
          "description": "Document-map (\"locate\") pass: page thumbnails tiled into labeled contact sheets, one vision call returns which pages matter for THIS type. The result can scope conversion and extraction, and doubles as the vision planner for visual extraction."
        },
        "text_conversion": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "method": {
              "type": "string",
              "enum": [
                "auto",
                "basic",
                "llm",
                "custom"
              ]
            },
            "custom": {
              "type": "object",
              "properties": {
                "interaction": {
                  "type": "string"
                },
                "agent": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "instructions": {
              "type": "string"
            },
            "output_format": {
              "type": "string",
              "enum": [
                "markdown",
                "text"
              ]
            },
            "scope": {
              "$ref": "#/$defs/IntakePageScope",
              "description": "Which pages to convert: everything or the locate result. Default all."
            },
            "page_ranges": {
              "$ref": "#/$defs/IntakePageRanges",
              "description": "Static page ranges to convert (wins over `scope` when set)."
            },
            "render_dpi": {
              "type": "integer",
              "minimum": 72,
              "maximum": 2147483647,
              "description": "DPI at which each page is rendered to the image the LLM converts. Default 150 — the accuracy/cost sweet spot: higher resolutions balloon input tokens (some providers tile the page) for no quality gain, below ~150 dense tables start to misread. Raise only for very fine print."
            },
            "config": {
              "$ref": "#/$defs/InteractionExecutionConfiguration",
              "description": "Model execution config for the page-conversion interaction (method 'llm'/'auto' -> sys:ConvertPageToMarkdown, method 'custom' -> the custom interaction). Lets the visual conversion run on a cheaper/faster model (e.g. a flash model) than extraction. When unset, conversion uses the run's model config or the project default model."
            }
          },
          "additionalProperties": false,
          "description": "Controls source-to-text conversion before extraction and embedding."
        },
        "extraction": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "source": {
              "type": "string",
              "enum": [
                "auto",
                "text",
                "vision",
                "mixed"
              ]
            },
            "instructions": {
              "type": "string"
            },
            "interaction": {
              "type": "string"
            },
            "config": {
              "$ref": "#/$defs/InteractionExecutionConfiguration",
              "description": "Model execution config for the standard property-extraction interaction (sys:ExtractInformation). Lets extraction run on a different model/environment than the visual page conversion. When unset, extraction uses the run's model config or the project default model. (Grounded extraction is configured separately via grounding.config.)"
            },
            "scope": {
              "$ref": "#/$defs/IntakePageScope",
              "description": "Which pages extraction sees: everything or the locate result."
            },
            "page_ranges": {
              "$ref": "#/$defs/IntakePageRanges",
              "description": "Static page ranges extraction sees (wins over `scope` when set)."
            },
            "max_pages": {
              "type": "integer",
              "minimum": 1,
              "maximum": 2147483647,
              "description": "Cap on pages sent to extraction. Default 20."
            },
            "vision": {
              "type": "object",
              "properties": {
                "default_detail": {
                  "$ref": "#/$defs/IntakeVisionDetail"
                },
                "allowed_details": {
                  "type": "array",
                  "items": {
                    "$ref": "#/$defs/IntakeVisionDetail"
                  }
                },
                "max_image_tokens": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483647,
                  "description": "PRIMARY budget: estimated image tokens per extraction call. Default 16000."
                },
                "max_payload_mb": {
                  "type": "number",
                  "minimum": 1,
                  "description": "Transport guard in megabytes. Default 16."
                },
                "max_pages_per_call": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483647,
                  "description": "Cap on page images per extraction call. Default 8."
                }
              },
              "additionalProperties": false,
              "description": "Vision evidence budget for visual extraction. Detail names reference platform profiles; the type never defines dpi/quality/resolution."
            },
            "verification": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean"
                },
                "model": {
                  "type": "string"
                },
                "environment": {
                  "type": "string"
                },
                "materiality": {
                  "type": "string"
                },
                "threshold": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "max_retries": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 2147483647
                },
                "on_fail": {
                  "type": "string",
                  "enum": [
                    "flag",
                    "block"
                  ]
                }
              },
              "additionalProperties": false
            },
            "grounding": {
              "$ref": "#/$defs/ContentTypeExtractionGroundingPolicy",
              "description": "Controls PDF block-level citation grounding with annotated proof output."
            }
          },
          "additionalProperties": false,
          "description": "Controls schema-property extraction after type assignment."
        },
        "rendering_template": {
          "type": "string",
          "description": "Handlebars template used to materialize extracted properties into object text."
        },
        "embeddings": {
          "$ref": "#/$defs

# --- truncated at 32 KB (67 KB total) ---
# Full source: https://artifacts.apis.io/vertesiahq/json-schema/vertesiahq-content-object-type-catalog-entry-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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/vertesiahq-content-object-type-catalog-entry"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.