[{"data":1,"prerenderedAt":926},["ShallowReactive",2],{"navigation_docs":3,"-rest-validate":194,"-rest-validate-surround":921},[4,22,82,124,146,168,190],{"title":5,"path":6,"stem":7,"children":8},"Getting started","/getting-started","1.getting-started/0.index",[9,10,14,18],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"MCP quickstart","/getting-started/mcp-quickstart","1.getting-started/1.mcp-quickstart",{"title":15,"path":16,"stem":17},"REST quickstart","/getting-started/rest-quickstart","1.getting-started/2.rest-quickstart",{"title":19,"path":20,"stem":21},"UI quickstart","/getting-started/ui-quickstart","1.getting-started/3.ui-quickstart",{"title":23,"path":24,"stem":25,"children":26},"MCP server","/mcp","2.mcp/0.index",[27,28,32,36,40],{"title":23,"path":24,"stem":25},{"title":29,"path":30,"stem":31},"Connecting","/mcp/connection","2.mcp/1.connection",{"title":33,"path":34,"stem":35},"Envelope","/mcp/envelope","2.mcp/2.envelope",{"title":37,"path":38,"stem":39},"Resources","/mcp/resources","2.mcp/3.resources",{"title":41,"path":42,"stem":43,"children":44},"Tools","/mcp/tools","2.mcp/4.tools/0.index",[45,46,50,54,58,62,66,70,74,78],{"title":41,"path":42,"stem":43},{"title":47,"path":48,"stem":49},"list_schema_versions","/mcp/tools/list-schema-versions","2.mcp/4.tools/1.list-schema-versions",{"title":51,"path":52,"stem":53},"get_schema","/mcp/tools/get-schema","2.mcp/4.tools/2.get-schema",{"title":55,"path":56,"stem":57},"list_categories","/mcp/tools/list-categories","2.mcp/4.tools/3.list-categories",{"title":59,"path":60,"stem":61},"list_elements","/mcp/tools/list-elements","2.mcp/4.tools/4.list-elements",{"title":63,"path":64,"stem":65},"get_element","/mcp/tools/get-element","2.mcp/4.tools/5.get-element",{"title":67,"path":68,"stem":69},"get_elements","/mcp/tools/get-elements","2.mcp/4.tools/6.get-elements",{"title":71,"path":72,"stem":73},"validate_datachain","/mcp/tools/validate-datachain","2.mcp/4.tools/7.validate-datachain",{"title":75,"path":76,"stem":77},"render_datachain","/mcp/tools/render-datachain","2.mcp/4.tools/8.render-datachain",{"title":79,"path":80,"stem":81},"get_icon_url","/mcp/tools/get-icon-url","2.mcp/4.tools/9.get-icon-url",{"title":83,"path":84,"stem":85,"children":86},"REST API (v2)","/rest","3.rest/0.index",[87,88,92,96,100,104,108,112,116,120],{"title":83,"path":84,"stem":85},{"title":89,"path":90,"stem":91},"GET /schemas","/rest/schemas","3.rest/1.schemas",{"title":93,"path":94,"stem":95},"GET /schemas/:version/manifest","/rest/manifest","3.rest/2.manifest",{"title":97,"path":98,"stem":99},"GET /schemas/:version/categories","/rest/categories","3.rest/3.categories",{"title":101,"path":102,"stem":103},"GET /schemas/:version/elements","/rest/elements-list","3.rest/4.elements-list",{"title":105,"path":106,"stem":107},"GET /schemas/:version/elements/:element_id","/rest/element-detail","3.rest/5.element-detail",{"title":109,"path":110,"stem":111},"POST /schemas/:version/validate","/rest/validate","3.rest/6.validate",{"title":113,"path":114,"stem":115},"Icon routes","/rest/icons","3.rest/7.icons",{"title":117,"path":118,"stem":119},"Pagination & fields","/rest/pagination-and-fields","3.rest/8.pagination-and-fields",{"title":121,"path":122,"stem":123},"Errors","/rest/errors","3.rest/9.errors",{"title":125,"path":126,"stem":127,"children":128},"Icon composition","/icons","4.icons/0.index",[129,130,134,138,142],{"title":125,"path":126,"stem":127},{"title":131,"path":132,"stem":133},"Shapes","/icons/shapes","4.icons/1.shapes",{"title":135,"path":136,"stem":137},"Symbols","/icons/symbols","4.icons/2.symbols",{"title":139,"path":140,"stem":141},"Composed variants","/icons/composed-variants","4.icons/3.composed-variants",{"title":143,"path":144,"stem":145},"URLs","/icons/urls","4.icons/4.urls",{"title":147,"path":148,"stem":149,"children":150},"@dtpr/ui","/ui","5.ui/0.index",[151,152,156,160,164],{"title":147,"path":148,"stem":149},{"title":153,"path":154,"stem":155},"@dtpr/ui/core","/ui/core","5.ui/1.core",{"title":157,"path":158,"stem":159},"@dtpr/ui/vue","/ui/vue","5.ui/2.vue",{"title":161,"path":162,"stem":163},"@dtpr/ui/html","/ui/html","5.ui/3.html",{"title":165,"path":166,"stem":167},"Theming","/ui/theming","5.ui/4.theming",{"title":169,"path":170,"stem":171,"children":172},"Concepts","/concepts","6.concepts/0.index",[173,174,178,182,186],{"title":169,"path":170,"stem":171},{"title":175,"path":176,"stem":177},"Datachains","/concepts/datachains","6.concepts/1.datachains",{"title":179,"path":180,"stem":181},"Elements & categories","/concepts/elements-categories","6.concepts/2.elements-categories",{"title":183,"path":184,"stem":185},"Versions & releases","/concepts/versions-and-releases","6.concepts/3.versions-and-releases",{"title":187,"path":188,"stem":189},"Content hash","/concepts/content-hash","6.concepts/4.content-hash",{"title":191,"path":192,"stem":193},"Changelog","/changelog","7.changelog",{"id":195,"title":109,"body":196,"description":915,"extension":916,"links":917,"meta":918,"navigation":349,"path":110,"seo":919,"stem":111,"__hash__":920},"docs/3.rest/6.validate.md",{"type":197,"value":198,"toc":904},"minimark",[199,203,222,227,235,239,249,307,311,387,391,480,484,545,549,559,700,702,773,777,874,878,900],[200,201,109],"h1",{"id":202},"post-schemasversionvalidate",[204,205,207,208,212,213,217,218,221],"callout",{"type":206},"warning","The HTTP status is ",[209,210,211],"strong",{},"200"," for both ",[214,215,216],"code",{},"ok: true"," and ",[214,219,220],{},"ok: false",". Validation success/failure is a semantic answer carried in the body — it is not a transport failure.",[223,224,226],"h2",{"id":225},"summary","Summary",[228,229,230,231,234],"p",{},"Validate a DTPR datachain instance against a schema version. The response carries structured errors with ",[214,232,233],{},"fix_hint","s that an agent can feed into a repair loop.",[223,236,238],{"id":237},"request","Request",[240,241,246],"pre",{"className":242,"code":244,"language":245},[243],"language-text","POST https://api.dtpr.io/api/v2/schemas/:version/validate\nContent-Type: application/json\n\n{ \"schema_version\": \"ai@2026-04-16-beta\", \"elements\": [ /* DatachainInstance */ ] }\n","text",[214,247,244],{"__ignoreMap":248},"",[250,251,252,268],"table",{},[253,254,255],"thead",{},[256,257,258,262,265],"tr",{},[259,260,261],"th",{},"Param",[259,263,264],{},"In",[259,266,267],{},"Description",[269,270,271,285],"tbody",{},[256,272,273,279,282],{},[274,275,276],"td",{},[214,277,278],{},"version",[274,280,281],{},"path",[274,283,284],{},"Canonical version or alias.",[256,286,287,293,296],{},[274,288,289],{},[290,291,292],"em",{},"(body)",[274,294,295],{},"JSON",[274,297,298,299,302,303,306],{},"A ",[214,300,301],{},"DatachainInstance",". Shape is published in the schema's ",[214,304,305],{},"schema_json",".",[223,308,310],{"id":309},"response-valid","Response — valid",[240,312,316],{"className":313,"code":314,"language":315,"meta":248,"style":248},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","HTTP/1.1 200 OK\nContent-Type: application/json\nDTPR-Content-Hash: sha256-…\nCache-Control: no-store\n\n{\n  \"ok\": true,\n  \"warnings\": [\n    { \"code\": \"placement_label_empty\", \"message\": \"…\", \"path\": \"elements[2].label\" }\n  ]\n}\n","http",[214,317,318,326,332,338,344,351,357,363,369,375,381],{"__ignoreMap":248},[319,320,323],"span",{"class":321,"line":322},"line",1,[319,324,325],{},"HTTP/1.1 200 OK\n",[319,327,329],{"class":321,"line":328},2,[319,330,331],{},"Content-Type: application/json\n",[319,333,335],{"class":321,"line":334},3,[319,336,337],{},"DTPR-Content-Hash: sha256-…\n",[319,339,341],{"class":321,"line":340},4,[319,342,343],{},"Cache-Control: no-store\n",[319,345,347],{"class":321,"line":346},5,[319,348,350],{"emptyLinePlaceholder":349},true,"\n",[319,352,354],{"class":321,"line":353},6,[319,355,356],{},"{\n",[319,358,360],{"class":321,"line":359},7,[319,361,362],{},"  \"ok\": true,\n",[319,364,366],{"class":321,"line":365},8,[319,367,368],{},"  \"warnings\": [\n",[319,370,372],{"class":321,"line":371},9,[319,373,374],{},"    { \"code\": \"placement_label_empty\", \"message\": \"…\", \"path\": \"elements[2].label\" }\n",[319,376,378],{"class":321,"line":377},10,[319,379,380],{},"  ]\n",[319,382,384],{"class":321,"line":383},11,[319,385,386],{},"}\n",[223,388,390],{"id":389},"response-invalid","Response — invalid",[240,392,394],{"className":313,"code":393,"language":315,"meta":248,"style":248},"HTTP/1.1 200 OK\nContent-Type: application/json\nDTPR-Content-Hash: sha256-…\nCache-Control: no-store\n\n{\n  \"ok\": false,\n  \"errors\": [\n    {\n      \"code\": \"element_required\",\n      \"message\": \"Category 'purpose' requires at least one element.\",\n      \"path\": \"elements\",\n      \"fix_hint\": \"Add an element with category_id='purpose'.\"\n    }\n  ],\n  \"warnings\": []\n}\n",[214,395,396,400,404,408,412,416,420,425,430,435,440,445,451,457,463,469,475],{"__ignoreMap":248},[319,397,398],{"class":321,"line":322},[319,399,325],{},[319,401,402],{"class":321,"line":328},[319,403,331],{},[319,405,406],{"class":321,"line":334},[319,407,337],{},[319,409,410],{"class":321,"line":340},[319,411,343],{},[319,413,414],{"class":321,"line":346},[319,415,350],{"emptyLinePlaceholder":349},[319,417,418],{"class":321,"line":353},[319,419,356],{},[319,421,422],{"class":321,"line":359},[319,423,424],{},"  \"ok\": false,\n",[319,426,427],{"class":321,"line":365},[319,428,429],{},"  \"errors\": [\n",[319,431,432],{"class":321,"line":371},[319,433,434],{},"    {\n",[319,436,437],{"class":321,"line":377},[319,438,439],{},"      \"code\": \"element_required\",\n",[319,441,442],{"class":321,"line":383},[319,443,444],{},"      \"message\": \"Category 'purpose' requires at least one element.\",\n",[319,446,448],{"class":321,"line":447},12,[319,449,450],{},"      \"path\": \"elements\",\n",[319,452,454],{"class":321,"line":453},13,[319,455,456],{},"      \"fix_hint\": \"Add an element with category_id='purpose'.\"\n",[319,458,460],{"class":321,"line":459},14,[319,461,462],{},"    }\n",[319,464,466],{"class":321,"line":465},15,[319,467,468],{},"  ],\n",[319,470,472],{"class":321,"line":471},16,[319,473,474],{},"  \"warnings\": []\n",[319,476,478],{"class":321,"line":477},17,[319,479,386],{},[223,481,483],{"id":482},"response-malformed-json-body","Response — malformed JSON body",[240,485,487],{"className":313,"code":486,"language":315,"meta":248,"style":248},"HTTP/1.1 400 Bad Request\nContent-Type: application/json\n\n{\n  \"ok\": false,\n  \"errors\": [\n    {\n      \"code\": \"bad_request\",\n      \"message\": \"Invalid JSON body.\",\n      \"fix_hint\": \"Send a valid JSON datachain-instance payload.\"\n    }\n  ]\n}\n",[214,488,489,494,498,502,506,510,514,518,523,528,533,537,541],{"__ignoreMap":248},[319,490,491],{"class":321,"line":322},[319,492,493],{},"HTTP/1.1 400 Bad Request\n",[319,495,496],{"class":321,"line":328},[319,497,331],{},[319,499,500],{"class":321,"line":334},[319,501,350],{"emptyLinePlaceholder":349},[319,503,504],{"class":321,"line":340},[319,505,356],{},[319,507,508],{"class":321,"line":346},[319,509,424],{},[319,511,512],{"class":321,"line":353},[319,513,429],{},[319,515,516],{"class":321,"line":359},[319,517,434],{},[319,519,520],{"class":321,"line":365},[319,521,522],{},"      \"code\": \"bad_request\",\n",[319,524,525],{"class":321,"line":371},[319,526,527],{},"      \"message\": \"Invalid JSON body.\",\n",[319,529,530],{"class":321,"line":377},[319,531,532],{},"      \"fix_hint\": \"Send a valid JSON datachain-instance payload.\"\n",[319,534,535],{"class":321,"line":383},[319,536,462],{},[319,538,539],{"class":321,"line":447},[319,540,380],{},[319,542,543],{"class":321,"line":453},[319,544,386],{},[223,546,548],{"id":547},"response-shape-errors-400-adjacent","Response — shape errors (400-adjacent)",[228,550,551,552,554,555,558],{},"When the JSON parses but the datachain shape fails Zod validation, the status stays ",[209,553,211],{}," and the body carries ",[214,556,557],{},"code: parse_error"," entries:",[240,560,564],{"className":561,"code":562,"language":563,"meta":248,"style":248},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"ok\": false,\n  \"errors\": [\n    {\n      \"code\": \"parse_error\",\n      \"message\": \"Required\",\n      \"path\": \"elements.0.element_id\",\n      \"fix_hint\": \"Fix the field shape and retry.\"\n    }\n  ]\n}\n","json",[214,565,566,571,589,603,607,631,651,670,688,692,696],{"__ignoreMap":248},[319,567,568],{"class":321,"line":322},[319,569,356],{"class":570},"sMK4o",[319,572,573,576,580,583,586],{"class":321,"line":328},[319,574,575],{"class":570},"  \"",[319,577,579],{"class":578},"spNyl","ok",[319,581,582],{"class":570},"\"",[319,584,585],{"class":570},":",[319,587,588],{"class":570}," false,\n",[319,590,591,593,596,598,600],{"class":321,"line":334},[319,592,575],{"class":570},[319,594,595],{"class":578},"errors",[319,597,582],{"class":570},[319,599,585],{"class":570},[319,601,602],{"class":570}," [\n",[319,604,605],{"class":321,"line":340},[319,606,434],{"class":570},[319,608,609,612,615,617,619,622,626,628],{"class":321,"line":346},[319,610,611],{"class":570},"      \"",[319,613,214],{"class":614},"sBMFI",[319,616,582],{"class":570},[319,618,585],{"class":570},[319,620,621],{"class":570}," \"",[319,623,625],{"class":624},"sfazB","parse_error",[319,627,582],{"class":570},[319,629,630],{"class":570},",\n",[319,632,633,635,638,640,642,644,647,649],{"class":321,"line":353},[319,634,611],{"class":570},[319,636,637],{"class":614},"message",[319,639,582],{"class":570},[319,641,585],{"class":570},[319,643,621],{"class":570},[319,645,646],{"class":624},"Required",[319,648,582],{"class":570},[319,650,630],{"class":570},[319,652,653,655,657,659,661,663,666,668],{"class":321,"line":359},[319,654,611],{"class":570},[319,656,281],{"class":614},[319,658,582],{"class":570},[319,660,585],{"class":570},[319,662,621],{"class":570},[319,664,665],{"class":624},"elements.0.element_id",[319,667,582],{"class":570},[319,669,630],{"class":570},[319,671,672,674,676,678,680,682,685],{"class":321,"line":365},[319,673,611],{"class":570},[319,675,233],{"class":614},[319,677,582],{"class":570},[319,679,585],{"class":570},[319,681,621],{"class":570},[319,683,684],{"class":624},"Fix the field shape and retry.",[319,686,687],{"class":570},"\"\n",[319,689,690],{"class":321,"line":371},[319,691,462],{"class":570},[319,693,694],{"class":321,"line":377},[319,695,380],{"class":570},[319,697,698],{"class":321,"line":383},[319,699,386],{"class":570},[223,701,121],{"id":595},[250,703,704,717],{},[253,705,706],{},[256,707,708,711,714],{},[259,709,710],{},"Code",[259,712,713],{},"HTTP",[259,715,716],{},"Meaning",[269,718,719,735,748,759],{},[256,720,721,726,729],{},[274,722,723],{},[214,724,725],{},"bad_request",[274,727,728],{},"400",[274,730,731,732,306],{},"Invalid JSON body or malformed ",[214,733,734],{},":version",[256,736,737,742,745],{},[274,738,739],{},[214,740,741],{},"not_found",[274,743,744],{},"404",[274,746,747],{},"Version is not registered.",[256,749,750,754,756],{},[274,751,752],{},[214,753,625],{},[274,755,211],{},[274,757,758],{},"Datachain shape failed Zod validation.",[256,760,761,764,766],{},[274,762,763],{},"Semantic validator codes",[274,765,211],{},[274,767,768,769,772],{},"Shape-valid but semantically wrong (",[214,770,771],{},"element_required",", placement / cardinality rules, etc.).",[223,774,776],{"id":775},"example","Example",[778,779,780,845],"code-group",{},[240,781,786],{"className":782,"code":783,"filename":784,"language":785,"meta":248,"style":248},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -s https://api.dtpr.io/api/v2/schemas/ai@2026-04-16-beta/validate \\\n  -H 'content-type: application/json' \\\n  --data '{\n    \"schema_version\": \"ai@2026-04-16-beta\",\n    \"elements\": [{\"element_id\":\"purpose.example\",\"category_id\":\"purpose\"}]\n  }'\n","curl","bash",[214,787,788,802,818,827,832,837],{"__ignoreMap":248},[319,789,790,792,795,798],{"class":321,"line":322},[319,791,784],{"class":614},[319,793,794],{"class":624}," -s",[319,796,797],{"class":624}," https://api.dtpr.io/api/v2/schemas/ai@2026-04-16-beta/validate",[319,799,801],{"class":800},"sTEyZ"," \\\n",[319,803,804,807,810,813,816],{"class":321,"line":328},[319,805,806],{"class":624},"  -H",[319,808,809],{"class":570}," '",[319,811,812],{"class":624},"content-type: application/json",[319,814,815],{"class":570},"'",[319,817,801],{"class":800},[319,819,820,823,825],{"class":321,"line":334},[319,821,822],{"class":624},"  --data",[319,824,809],{"class":570},[319,826,356],{"class":624},[319,828,829],{"class":321,"line":340},[319,830,831],{"class":624},"    \"schema_version\": \"ai@2026-04-16-beta\",\n",[319,833,834],{"class":321,"line":346},[319,835,836],{"class":624},"    \"elements\": [{\"element_id\":\"purpose.example\",\"category_id\":\"purpose\"}]\n",[319,838,839,842],{"class":321,"line":353},[319,840,841],{"class":624},"  }",[319,843,844],{"class":570},"'\n",[240,846,849],{"className":313,"code":847,"filename":848,"language":315,"meta":248,"style":248},"POST /api/v2/schemas/ai@2026-04-16-beta/validate HTTP/1.1\nHost: api.dtpr.io\nContent-Type: application/json\n\n{\"schema_version\":\"ai@2026-04-16-beta\",\"elements\":[…]}\n","wire",[214,850,851,856,861,865,869],{"__ignoreMap":248},[319,852,853],{"class":321,"line":322},[319,854,855],{},"POST /api/v2/schemas/ai@2026-04-16-beta/validate HTTP/1.1\n",[319,857,858],{"class":321,"line":328},[319,859,860],{},"Host: api.dtpr.io\n",[319,862,863],{"class":321,"line":334},[319,864,331],{},[319,866,867],{"class":321,"line":340},[319,868,350],{"emptyLinePlaceholder":349},[319,870,871],{"class":321,"line":346},[319,872,873],{},"{\"schema_version\":\"ai@2026-04-16-beta\",\"elements\":[…]}\n",[223,875,877],{"id":876},"see-also","See also",[879,880,881,891,896],"ul",{},[882,883,884,890],"li",{},[885,886,887,888],"a",{"href":72},"MCP ",[214,889,71],{}," — same validator with the MCP soft-failure envelope.",[882,892,893],{},[885,894,895],{"href":34},"MCP envelope — soft-failure",[882,897,898],{},[885,899,175],{"href":176},[901,902,903],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":248,"searchDepth":328,"depth":328,"links":905},[906,907,908,909,910,911,912,913,914],{"id":225,"depth":328,"text":226},{"id":237,"depth":328,"text":238},{"id":309,"depth":328,"text":310},{"id":389,"depth":328,"text":390},{"id":482,"depth":328,"text":483},{"id":547,"depth":328,"text":548},{"id":595,"depth":328,"text":121},{"id":775,"depth":328,"text":776},{"id":876,"depth":328,"text":877},"Validate a datachain instance against a schema version.","md",null,{},{"title":109,"description":915},"X53bNCFKDELzvxfvOJPD8SOtuLuHUiqrbfYSvDcnF08",[922,924],{"title":105,"path":106,"stem":107,"description":923,"children":-1},"Point read for a single element by id.",{"title":113,"path":114,"stem":115,"description":925,"children":-1},"Shape primitives, release-pinned symbols, and composed element icons.",1776525922453]