Starts the record’s draft (records:write): changes to its content
that wait until they are merged, now or at a set time, while the
record keeps its current values. data takes values as a record
update does, validated on what the record would read after the
merge. With from_revision, the draft starts from that revision’s
values (mapped onto the current schema, as a revert is), to bring an
earlier version back for review (400 unless it is a revision
number, 404 if the record has no such revision). Works on any
record, live or not.
One draft per record: a second is 409 with detail code
draft_exists and its draft_id, so change that one instead. 409
with detail code deleted while the record is soft-deleted.
A unique value (1-255 printable ASCII characters) that makes retrying
this request safe. The first response (below 500) is stored for 24
hours per user or API key; retries with the same key and the same
request get it again with an Idempotent-Replayed: true header. The
same key with a different request is refused with 400; a retry while
the first request is still running gets 409.
How rich text fields read in the records and drafts returned (and in records they embed with expand): document, the stored ProseMirror JSON document; html, an HTML fragment of known elements with every text and attribute escaped, to put in a page as it is; or markdown (GitHub Flavored), which reads back as the same document when written. Images render with their URLs, so they need no expand: in HTML a WebP rendition at most 1600 pixels wide with its width and height (an SVG as itself), in Markdown the asset's image_url. An image whose asset was deleted is left out of HTML, and written as its asset ID in Markdown. Record history keeps documents.
A rich text value is written as Markdown (GitHub Flavored, a string)
or as a ProseMirror JSON document ({"type": "doc", "content": [...]}),
and stored and read as the document (rich_text reads it as HTML or
Markdown). Markdown is converted as closely as the vocabulary allows:
headings below h3 become h3, task list items plain items, footnotes and
raw HTML text. A document uses the web editor's vocabulary (Tiptap's
StarterKit and tables) and nothing else; another name is refused with
invalid_format, naming ours where one fits (strong is bold):
blocks: paragraph, heading (level 1-3), blockquote,
bulletList and orderedList (start, type) of listItem
(starting with a paragraph), codeBlock (language),
horizontalRule, and table of tableRow of tableHeader or
tableCell (colspan, rowspan, colwidth, align); any block
may have dir (auto, ltr, rtl);
inline: text (non-empty) and hardBreak;
marks on text: bold, italic, strike, underline, code (alone),
and link (href, and target, rel, class, title); a link's
href is an http, https, mailto, tel or relative URL.
An image of an asset is {"type": "image", "attrs": {"asset_id": "ast_...", "alt": "..."}} (in Markdown , or the
asset's image_url), between the document's blocks (not inside a list,
quote or table), at most 100 per document (too_many_images); a newly
shown image must be an uploaded JPEG, PNG, GIF, WebP, AVIF or SVG of
the project (invalid_reference, type_not_accepted). expand embeds
the assets, and published-only keys can read the images of published
records. A record holds at
most 2,000,000 bytes of values, all fields together (too_large on
data); one already larger can still be edited without growing.
Start from this revision's values instead of the record's current ones.
Required range: x >= 1
Response
The started draft.
Changes to a record's content that wait until they are merged into
it, now or at schedule.merge_at. Content only: whether the record
is live is its publication and schedule.
The record's revision when the draft started. Fields the record
changed since keep their values at the merge, unless the draft
changes them too; compare with GET /v1/records/{id}/diff?from=<base_revision>.
When the draft merges on its own (within a minute of the time), set
with PUT /v1/drafts/{draft_id}/schedule. last_error explains the
last scheduled merge that could not be made, until a new one is set.
Only with expand, as on a record, for the values after the merge.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Nohead","colors":{"primary":"#171717","light":"#fafafa","dark":"#171717"},"logo":{"light":"https://mintcdn.com/nohead/Zi4ShGp1nnXJjvN2/logo/light.svg?fit=max\u0026auto=format\u0026n=Zi4ShGp1nnXJjvN2\u0026q=85\u0026s=e431964df2c90a7efd8cf3839919156a","dark":"https://mintcdn.com/nohead/Zi4ShGp1nnXJjvN2/logo/dark.svg?fit=max\u0026auto=format\u0026n=Zi4ShGp1nnXJjvN2\u0026q=85\u0026s=0f1626c2856f0e98870466fde414c967","href":"https://nohead.io"},"favicon":"https://mintcdn.com/nohead/Zi4ShGp1nnXJjvN2/favicon.svg?fit=max\u0026auto=format\u0026n=Zi4ShGp1nnXJjvN2\u0026q=85\u0026s=73c7bf765c68dd3524dfa06a8e1a5c55","api":{"playground":{"display":"simple"},"examples":{"languages":["curl","typescript","python","ruby"]}},"footer":{"socials":{"x":"https://x.com/nohead_io","github":"https://github.com/nohead-io"},"links":[{"items":[{"label":"Status","href":"https://status.nohead.io"}]}]},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","claude","chatgpt","download-spec"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"nohead","hasAudioNarration":false,"actualSubdomain":"nohead","customDomains":["docs.nohead.io"],"gitSource":{"type":"github","owner":"nohead-io","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":"","_id":"6ae7050e53ca202614c2eaad"},"chroma":{"latestBuiltDeploymentHistoryId":"6aec9780ada4d37850e32d2e","collectionId":"67023daf-3f94-446b-bf28-d982ad716b31","liveDeploymentHistoryId":"6aec9780ada4d37850e32d2e","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aee51a7f00d0b95d690fcbc","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API reference","count":82},{"language":"default","tag":"Endpoints","count":81},{"language":"default","tag":"Guides","count":22},{"language":"default","tag":"CLI","count":14},{"language":"default","tag":"Commands","count":13},{"language":"default","tag":"Assets","count":11},{"language":"default","tag":"Webhooks","count":10},{"language":"default","tag":"Drafts","count":9},{"language":"default","tag":"Fields","count":9},{"language":"default","tag":"Records","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"img[src$=\"/icons/typescript.svg\"]{--icon: url(\"/icons/typescript.svg\")}img[src$=\"/icons/python.svg\"]{--icon: url(\"/icons/python.svg\")}img[src$=\"/icons/ruby.svg\"]{--icon: url(\"/icons/ruby.svg\")}img:is([src$=\"/icons/typescript.svg\"],[src$=\"/icons/python.svg\"],[src$=\"/icons/ruby.svg\"]){box-sizing:border-box;padding-left:1rem;background-color:rgb(var(--gray-400))!important;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat}.dark img:is([src$=\"/icons/typescript.svg\"],[src$=\"/icons/python.svg\"],[src$=\"/icons/ruby.svg\"]){background-color:rgb(var(--gray-500))!important}[aria-current] img:is([src$=\"/icons/typescript.svg\"],[src$=\"/icons/python.svg\"],[src$=\"/icons/ruby.svg\"]){background-color:rgb(var(--primary))!important}.dark [aria-current] img:is([src$=\"/icons/typescript.svg\"],[src$=\"/icons/python.svg\"],[src$=\"/icons/ruby.svg\"]){background-color:rgb(var(--primary-light))!important}"}],"page":{"pagePath":"api-reference/drafts/start-a-draft","slug":"/api-reference/drafts/start-a-draft","pageMetadata":{"title":"Start a draft","description":"Starts the record's draft (`records:write`): changes to its content\nthat wait until they are merged, now or at a set time, while the\nrecord keeps its current values. `data` takes values as a record\nupdate does, validated on what the record would read after the\nmerge. With `from_revision`, the draft starts from that revision's\nvalues (mapped onto the current schema, as a revert is), to bring an\nearlier version back for review (`400` unless it is a revision\nnumber, `404` if the record has no such revision). Works on any\nrecord, live or not.\n\nOne draft per record: a second is `409` with detail code\n`draft_exists` and its `draft_id`, so change that one instead. `409`\nwith detail code `deleted` while the record is soft-deleted.\n","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/records/{record_id}/drafts","href":"/api-reference/drafts/start-a-draft","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Starts the record’s draft (\", _jsx(_components.code, {\n children: \"records:write\"\n }), \"): changes to its content\\nthat wait until they are merged, now or at a set time, while the\\nrecord keeps its current values. \", _jsx(_components.code, {\n children: \"data\"\n }), \" takes values as a record\\nupdate does, validated on what the record would read after the\\nmerge. With \", _jsx(_components.code, {\n children: \"from_revision\"\n }), \", the draft starts from that revision’s\\nvalues (mapped onto the current schema, as a revert is), to bring an\\nearlier version back for review (\", _jsx(_components.code, {\n children: \"400\"\n }), \" unless it is a revision\\nnumber, \", _jsx(_components.code, {\n children: \"404\"\n }), \" if the record has no such revision). Works on any\\nrecord, live or not.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"One draft per record: a second is \", _jsx(_components.code, {\n children: \"409\"\n }), \" with detail code\\n\", _jsx(_components.code, {\n children: \"draft_exists\"\n }), \" and its \", _jsx(_components.code, {\n children: \"draft_id\"\n }), \", so change that one instead. \", _jsx(_components.code, {\n children: \"409\"\n }), \"\\nwith detail code \", _jsx(_components.code, {\n children: \"deleted\"\n }), \" while the record is soft-deleted.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Start a draft","description":"Starts the record's draft (`records:write`): changes to its content\nthat wait until they are merged, now or at a set time, while the\nrecord keeps its current values. `data` takes values as a record\nupdate does, validated on what the record would read after the\nmerge. With `from_revision`, the draft starts from that revision's\nvalues (mapped onto the current schema, as a revert is), to bring an\nearlier version back for review (`400` unless it is a revision\nnumber, `404` if the record has no such revision). Works on any\nrecord, live or not.\n\nOne draft per record: a second is `409` with detail code\n`draft_exists` and its `draft_id`, so change that one instead. `409`\nwith detail code `deleted` while the record is soft-deleted.\n","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/records/{record_id}/drafts","href":"/api-reference/drafts/start-a-draft","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"drafts_create","summary":"Start a draft","description":"Starts the record's draft (`records:write`): changes to its content\nthat wait until they are merged, now or at a set time, while the\nrecord keeps its current values. `data` takes values as a record\nupdate does, validated on what the record would read after the\nmerge. With `from_revision`, the draft starts from that revision's\nvalues (mapped onto the current schema, as a revert is), to bring an\nearlier version back for review (`400` unless it is a revision\nnumber, `404` if the record has no such revision). Works on any\nrecord, live or not.\n\nOne draft per record: a second is `409` with detail code\n`draft_exists` and its `draft_id`, so change that one instead. `409`\nwith detail code `deleted` while the record is soft-deleted.\n","tags":["drafts"],"parameters":["3ff9bad8-0cab-4dbb-bb7b-bb776ff1f93e","f10a13b7-31e9-41fa-9b40-99f80b94eb9e","b60b310d-4601-407f-9d45-01b474e6a8ac"],"requestBody":"d222d5c6-4edd-44da-9112-1e6332d2b16a","responses":{"201":"7b0af78b-b698-4a18-95a9-813902670af3","400":"11c3217d-2527-497b-8c66-0d04e8e76d62","401":"00cfc22a-7607-4b81-8024-75d35bfbd848","403":"e5a835f6-fafb-47ce-86b7-c592c1887d2a","404":"dcb4da19-5eee-4414-90bb-4e9a5c424cbf","409":"5a841367-e91f-4760-8c05-5037c29abb56","422":"f6a9643e-e4ad-402e-9f00-b3e93fef5ae7","429":"2d9cbbc4-491c-4fb4-9567-9ae07c3dc041"},"x-codeSamples":[{"lang":"typescript","label":"TypeScript","source":"import { Nohead } from \"@nohead/sdk\"\n\nconst nohead = new Nohead()\n\nconst result = await nohead.drafts.create(\"rec_01J9ZQ3F8X\", {\n data: { title: \"Hey\" },\n})\n"},{"lang":"python","label":"Python","source":"from nohead import Nohead\n\nnohead = Nohead()\n\nresult = nohead.drafts.create(\"rec_01J9ZQ3F8X\", data={\"title\": \"Hey\"})\n"},{"lang":"ruby","label":"Ruby","source":"require \"nohead\"\n\nnohead = Nohead::Client.new\n\nresult = nohead.drafts.create(\"rec_01J9ZQ3F8X\", data: { title: \"Hey\" })\n"}],"method":"post","type":"path","servers":["8bbbb494-a028-4201-ac4c-27745b9572a7"],"security":["fdb003e5-f8f3-4ee7-b4f8-ee1029f9c030"],"path":"/v1/records/{record_id}/drafts","baseUrlOptions":["https://api.nohead.io"],"title":"Start a draft","codeSamples":[{"label":"TypeScript","lang":"typescript","source":"import { Nohead } from \"@nohead/sdk\"\n\nconst nohead = new Nohead()\n\nconst result = await nohead.drafts.create(\"rec_01J9ZQ3F8X\", {\n data: { title: \"Hey\" },\n})\n"},{"label":"Python","lang":"python","source":"from nohead import Nohead\n\nnohead = Nohead()\n\nresult = nohead.drafts.create(\"rec_01J9ZQ3F8X\", data={\"title\": \"Hey\"})\n"},{"label":"Ruby","lang":"ruby","source":"require \"nohead\"\n\nnohead = Nohead::Client.new\n\nresult = nohead.drafts.create(\"rec_01J9ZQ3F8X\", data: { title: \"Hey\" })\n"}],"requestExampleLanguages":["bash","typescript","python","ruby"],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"3ff9bad8-0cab-4dbb-bb7b-bb776ff1f93e":{"name":"rich_text","in":"query","description":"How rich text fields read in the records and drafts returned (and in records they embed with `expand`): `document`, the stored ProseMirror JSON document; `html`, an HTML fragment of known elements with every text and attribute escaped, to put in a page as it is; or `markdown` (GitHub Flavored), which reads back as the same document when written. Images render with their URLs, so they need no `expand`: in HTML a WebP rendition at most 1600 pixels wide with its `width` and `height` (an SVG as itself), in Markdown the asset's `image_url`. An image whose asset was deleted is left out of HTML, and written as its asset ID in Markdown. Record history keeps documents.","schema":{"type":"string","enum":["document","html","markdown"],"default":"document","description":"How rich text fields read in the records and drafts returned (and in records they embed with `expand`): `document`, the stored ProseMirror JSON document; `html`, an HTML fragment of known elements with every text and attribute escaped, to put in a page as it is; or `markdown` (GitHub Flavored), which reads back as the same document when written. Images render with their URLs, so they need no `expand`: in HTML a WebP rendition at most 1600 pixels wide with its `width` and `height` (an SVG as itself), in Markdown the asset's `image_url`. An image whose asset was deleted is left out of HTML, and written as its asset ID in Markdown. Record history keeps documents.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"f10a13b7-31e9-41fa-9b40-99f80b94eb9e":{"name":"Idempotency-Key","in":"header","required":false,"description":"A unique value (1-255 printable ASCII characters) that makes retrying\nthis request safe. The first response (below 500) is stored for 24\nhours per user or API key; retries with the same key and the same\nrequest get it again with an `Idempotent-Replayed: true` header. The\nsame key with a different request is refused with `400`; a retry while\nthe first request is still running gets `409`.\n","schema":{"type":"string","minLength":1,"maxLength":255,"isRequired":false,"description":"A unique value (1-255 printable ASCII characters) that makes retrying\nthis request safe. The first response (below 500) is stored for 24\nhours per user or API key; retries with the same key and the same\nrequest get it again with an `Idempotent-Replayed: true` header. The\nsame key with a different request is refused with `400`; a retry while\nthe first request is still running gets `409`.\n","uniqueKey":"","typeLabel":"string"},"example":"8f14e45f-ceea-467a-9575-0f1a3f2c1d2e"},"b60b310d-4601-407f-9d45-01b474e6a8ac":{"name":"Nohead-Client","in":"header","description":"First-party client identifier recorded in history (e.g. `cli/0.3.1`). Informational only.","schema":{"type":"string","description":"First-party client identifier recorded in history (e.g. `cli/0.3.1`). Informational only.","uniqueKey":"","typeLabel":"string"}},"1c8e1b19-aad8-4d27-88ea-fb419df49273":{"name":"record_id","in":"path","required":true,"schema":{"type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"},"example":"rec_01J9ZQ3F8X5W2K7M4N6P0R1S2T"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"type":"object","description":"Field values keyed by field `key`.\n\nA rich text value is written as Markdown (GitHub Flavored, a string)\nor as a ProseMirror JSON document (`{\"type\": \"doc\", \"content\": [...]}`),\nand stored and read as the document (`rich_text` reads it as HTML or\nMarkdown). Markdown is converted as closely as the vocabulary allows:\nheadings below h3 become h3, task list items plain items, footnotes and\nraw HTML text. A document uses the web editor's vocabulary (Tiptap's\nStarterKit and tables) and nothing else; another name is refused with\n`invalid_format`, naming ours where one fits (`strong` is `bold`):\n\n- blocks: `paragraph`, `heading` (`level` 1-3), `blockquote`,\n `bulletList` and `orderedList` (`start`, `type`) of `listItem`\n (starting with a paragraph), `codeBlock` (`language`),\n `horizontalRule`, and `table` of `tableRow` of `tableHeader` or\n `tableCell` (`colspan`, `rowspan`, `colwidth`, `align`); any block\n may have `dir` (`auto`, `ltr`, `rtl`);\n- inline: `text` (non-empty) and `hardBreak`;\n- marks on text: `bold`, `italic`, `strike`, `underline`, `code` (alone),\n and `link` (`href`, and `target`, `rel`, `class`, `title`); a link's\n `href` is an `http`, `https`, `mailto`, `tel` or relative URL.\n\nAn image of an asset is `{\"type\": \"image\", \"attrs\": {\"asset_id\":\n\"ast_...\", \"alt\": \"...\"}}` (in Markdown ``, or the\nasset's `image_url`), between the document's blocks (not inside a list,\nquote or table), at most 100 per document (`too_many_images`); a newly\nshown image must be an uploaded JPEG, PNG, GIF, WebP, AVIF or SVG of\nthe project (`invalid_reference`, `type_not_accepted`). `expand` embeds\nthe assets, and published-only keys can read the images of published\nrecords. A record holds at\nmost 2,000,000 bytes of values, all fields together (`too_large` on\n`data`); one already larger can still be edited without growing.\n","additionalProperties":true,"examples":[{"title":"Introducing Foo","body":{"type":"doc","content":[]}}],"uniqueKey":"data","typeLabel":"object"},"from_revision":{"type":"integer","minimum":1,"description":"Start from this revision's values instead of the record's current ones.","uniqueKey":"from_revision","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"title":"Introducing Foo","body":{"type":"doc","content":[]}},"from_revision":2}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"7b0af78b-b698-4a18-95a9-813902670af3":{"description":"The started draft.","headers":{"ETag":{"description":"The current revision (the record's, or the draft's), e.g. `\"7\"`. Send it back as `If-Match`.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["id","object","record_id","collection_id","collection","base_revision","revision","data","changed_fields","schedule","created_by","edited_by","created_at","updated_at"],"description":"Changes to a record's content that wait until they are merged into\nit, now or at `schedule.merge_at`. Content only: whether the record\nis live is its publication and schedule.\n","properties":{"id":{"type":"string","examples":["drf_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"id","typeLabel":"string"},"object":{"const":"draft","isRequired":true,"uniqueKey":"object","typeLabel":"any"},"record_id":{"type":"string","isRequired":true,"uniqueKey":"record_id","typeLabel":"string"},"collection_id":{"type":"string","isRequired":true,"uniqueKey":"collection_id","typeLabel":"string"},"collection":{"type":"string","description":"The collection slug.","isRequired":true,"uniqueKey":"collection","typeLabel":"string"},"base_revision":{"type":"integer","description":"The record's revision when the draft started. Fields the record\nchanged since keep their values at the merge, unless the draft\nchanges them too; compare with `GET /v1/records/{id}/diff?from=\u003cbase_revision>`.\n","isRequired":true,"uniqueKey":"base_revision","typeLabel":"integer"},"revision":{"type":"integer","description":"The draft's own revision, 1 when started and one more per change; also returned as the ETag.","isRequired":true,"uniqueKey":"revision","typeLabel":"integer"},"data":{"type":"object","description":"The record's values as they read after the merge.","additionalProperties":true,"examples":[{"title":"Introducing Foo","body":{"type":"doc","content":[]}}],"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"changed_fields":{"type":"array","description":"Keys of the fields the draft changes.","items":{"type":"string","uniqueKey":"changed_fields.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"changed_fields","typeLabel":"string[]"},"schedule":{"type":"object","additionalProperties":false,"required":["merge_at","last_error"],"description":"When the draft merges on its own (within a minute of the time), set\nwith `PUT /v1/drafts/{draft_id}/schedule`. `last_error` explains the\nlast scheduled merge that could not be made, until a new one is set.\n","properties":{"merge_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"schedule.merge_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"schedule.merge_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"schedule.merge_at","typeLabel":"string\u003cdate-time> | null"},"last_error":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"schedule.last_error.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"schedule.last_error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"schedule.last_error","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"schedule","typeLabel":"object"},"created_by":{"type":"object","additionalProperties":false,"required":["type","id","name"],"properties":{"type":{"type":"string","enum":["user","api_key","system"],"isRequired":true,"uniqueKey":"created_by.type","typeLabel":"enum\u003cstring>"},"id":{"oneOf":[{"type":"string","description":"The user (`usr_...`) or API key (`key_...`), or null for system changes.","isRequired":true,"uniqueKey":"created_by.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The user (`usr_...`) or API key (`key_...`), or null for system changes.","isRequired":true,"uniqueKey":"created_by.id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Resolved when read, never stored: a user's current name (or\nemail), \"Deleted user\" once they deleted their account, an API\nkey's name, or \"System\".\n","isRequired":true,"uniqueKey":"created_by.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Resolved when read, never stored: a user's current name (or\nemail), \"Deleted user\" once they deleted their account, an API\nkey's name, or \"System\".\n","isRequired":true,"uniqueKey":"created_by.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.name","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"created_by","typeLabel":"object"},"edited_by":{"type":"array","description":"Everyone who changed it since, in order.","items":{"type":"object","additionalProperties":false,"required":["type","id","name"],"properties":{"type":{"type":"string","enum":["user","api_key","system"],"isRequired":true,"uniqueKey":"edited_by.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"id":{"oneOf":[{"type":"string","description":"The user (`usr_...`) or API key (`key_...`), or null for system changes.","isRequired":true,"uniqueKey":"edited_by.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The user (`usr_...`) or API key (`key_...`), or null for system changes.","isRequired":true,"uniqueKey":"edited_by.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"edited_by.items.[INDEX].id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Resolved when read, never stored: a user's current name (or\nemail), \"Deleted user\" once they deleted their account, an API\nkey's name, or \"System\".\n","isRequired":true,"uniqueKey":"edited_by.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Resolved when read, never stored: a user's current name (or\nemail), \"Deleted user\" once they deleted their account, an API\nkey's name, or \"System\".\n","isRequired":true,"uniqueKey":"edited_by.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"edited_by.items.[INDEX].name","typeLabel":"string | null"}},"uniqueKey":"edited_by.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"edited_by","typeLabel":"object[]"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp in UTC.","examples":["2026-09-27T12:00:00.000Z"],"isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp in UTC.","examples":["2026-09-27T12:00:00.000Z"],"isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"expanded":{"type":"object","description":"Only with `expand`, as on a record, for the values after the merge.","additionalProperties":{"oneOf":[{"type":"object","required":["id","object","collection_id","collection","published_at","revision","schema_version","deleted_at","purge_after","history_pruned_through","data","created_at","updated_at"],"properties":{"id":{"type":"string","examples":["rec_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.id","typeLabel":"string"},"object":{"const":"record","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.object","typeLabel":"any"},"collection_id":{"type":"string","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.collection_id","typeLabel":"string"},"collection":{"type":"string","description":"The collection slug.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.collection","typeLabel":"string"},"published_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the record was published; null while it is unpublished.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.published_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the record was published; null while it is unpublished.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.published_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.published_at","typeLabel":"string\u003cdate-time> | null"},"revision":{"type":"integer","description":"Current revision number; also returned as the ETag.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.revision","typeLabel":"integer"},"schema_version":{"type":"integer","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.schema_version","typeLabel":"integer"},"history_pruned_through":{"oneOf":[{"type":"integer","description":"Revisions up to this number (except revision 1) were removed by the plan's history retention.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.history_pruned_through.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Revisions up to this number (except revision 1) were removed by the plan's history retention.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.history_pruned_through.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.history_pruned_through","typeLabel":"integer | null"},"deleted_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the record was soft-deleted; null unless it is.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.deleted_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the record was soft-deleted; null unless it is.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.deleted_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.deleted_at","typeLabel":"string\u003cdate-time> | null"},"purge_after":{"oneOf":[{"type":"string","format":"date-time","description":"When a soft-deleted record is removed for good, unless restored first.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.purge_after.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When a soft-deleted record is removed for good, unless restored first.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.purge_after.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.purge_after","typeLabel":"string\u003cdate-time> | null"},"data":{"type":"object","description":"Field values keyed by field `key`.\n\nA rich text value is written as Markdown (GitHub Flavored, a string)\nor as a ProseMirror JSON document (`{\"type\": \"doc\", \"content\": [...]}`),\nand stored and read as the document (`rich_text` reads it as HTML or\nMarkdown). Markdown is converted as closely as the vocabulary allows:\nheadings below h3 become h3, task list items plain items, footnotes and\nraw HTML text. A document uses the web editor's vocabulary (Tiptap's\nStarterKit and tables) and nothing else; another name is refused with\n`invalid_format`, naming ours where one fits (`strong` is `bold`):\n\n- blocks: `paragraph`, `heading` (`level` 1-3), `blockquote`,\n `bulletList` and `orderedList` (`start`, `type`) of `listItem`\n (starting with a paragraph), `codeBlock` (`language`),\n `horizontalRule`, and `table` of `tableRow` of `tableHeader` or\n `tableCell` (`colspan`, `rowspan`, `colwidth`, `align`); any block\n may have `dir` (`auto`, `ltr`, `rtl`);\n- inline: `text` (non-empty) and `hardBreak`;\n- marks on text: `bold`, `italic`, `strike`, `underline`, `code` (alone),\n and `link` (`href`, and `target`, `rel`, `class`, `title`); a link's\n `href` is an `http`, `https`, `mailto`, `tel` or relative URL.\n\nAn image of an asset is `{\"type\": \"image\", \"attrs\": {\"asset_id\":\n\"ast_...\", \"alt\": \"...\"}}` (in Markdown ``, or the\nasset's `image_url`), between the document's blocks (not inside a list,\nquote or table), at most 100 per document (`too_many_images`); a newly\nshown image must be an uploaded JPEG, PNG, GIF, WebP, AVIF or SVG of\nthe project (`invalid_reference`, `type_not_accepted`). `expand` embeds\nthe assets, and published-only keys can read the images of published\nrecords. A record holds at\nmost 2,000,000 bytes of values, all fields together (`too_large` on\n`data`); one already larger can still be edited without growing.\n","additionalProperties":true,"examples":[{"title":"Introducing Foo","body":{"type":"doc","content":[]}}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.data","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp in UTC.","examples":["2026-09-27T12:00:00.000Z"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp in UTC.","examples":["2026-09-27T12:00:00.000Z"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"expanded":{"type":"object","description":"Only with `expand`: what each requested relation, asset or rich\ntext field points at, keyed by field key: records for\nrelation fields, assets for asset fields. A single value is the object, or null when\nit no longer exists; a multiple value is a list of those that still\nexist. For a rich text field, the list of assets its images show,\nin document order, leaving out those that no longer exist.\nExpanded records are not expanded further.\n","additionalProperties":{"oneOf":[{},{"type":"object","required":["id","object","project_id","filename","alt","content_type","byte_size","width","height","status","deleted_at","purge_after","image_url","preview_url","file_url","media_url","uploaded_at","created_at","updated_at"],"properties":{"id":{"type":"string","examples":["ast_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.id","typeLabel":"string"},"object":{"const":"asset","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.object","typeLabel":"any"},"project_id":{"type":"string","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.project_id","typeLabel":"string"},"filename":{"type":"string","description":"The filename, any Unicode, as uploaded unless renamed since. Downloads use it.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.filename","typeLabel":"string"},"alt":{"oneOf":[{"type":"string","maxLength":1000,"description":"Alternative text, saying what an image shows; null until set. The default wherever the asset is used.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.alt.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":1000,"description":"Alternative text, saying what an image shows; null until set. The default wherever the asset is used.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.alt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.alt","typeLabel":"string | null"},"content_type":{"type":"string","examples":["image/png"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.content_type","typeLabel":"string"},"byte_size":{"type":"integer","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.byte_size","typeLabel":"integer"},"width":{"oneOf":[{"type":"integer","description":"Pixel width, for images.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.width.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Pixel width, for images.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.width.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.width","typeLabel":"integer | null"},"height":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.height.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.height.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.height","typeLabel":"integer | null"},"status":{"type":"string","enum":["pending","ready","failed"],"description":"`pending` until the upload is completed; only `ready` assets can be used in records.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.status","typeLabel":"enum\u003cstring>"},"deleted_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the asset was deleted; null unless it is.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.deleted_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the asset was deleted; null unless it is.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.deleted_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.deleted_at","typeLabel":"string\u003cdate-time> | null"},"purge_after":{"oneOf":[{"type":"string","format":"date-time","description":"When a deleted asset and its file are removed for good, unless restored or purged first.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.purge_after.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When a deleted asset and its file are removed for good, unless restored or purged first.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.purge_after.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.purge_after","typeLabel":"string\u003cdate-time> | null"},"image_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of the whole image, for ready images (JPEG, PNG, GIF, WebP,\nAVIF or SVG), deleted ones included until they are purged; null\notherwise. Image URLs are open and never expire. An SVG is served\nas SVG without its scripts, unless a format such as `@webp`\nrasterizes it. For a rendition,\nwrite [imgproxy processing options](https://docs.imgproxy.net/usage/processing)\nbefore `/plain/`, and a format after `@`: for example\n`https://images.nohead.io/rs:fill:800:600/g:sm/plain/…@webp`. Renditions\nare at most 4096 pixels a side, from originals of at most 50\nmegapixels. Options that would return the file as stored (`raw`,\n`skip_processing`, `strip_metadata`) are refused.\n","examples":["https://images.nohead.io/plain/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.image_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of the whole image, for ready images (JPEG, PNG, GIF, WebP,\nAVIF or SVG), deleted ones included until they are purged; null\notherwise. Image URLs are open and never expire. An SVG is served\nas SVG without its scripts, unless a format such as `@webp`\nrasterizes it. For a rendition,\nwrite [imgproxy processing options](https://docs.imgproxy.net/usage/processing)\nbefore `/plain/`, and a format after `@`: for example\n`https://images.nohead.io/rs:fill:800:600/g:sm/plain/…@webp`. Renditions\nare at most 4096 pixels a side, from originals of at most 50\nmegapixels. Options that would return the file as stored (`raw`,\n`skip_processing`, `strip_metadata`) are refused.\n","examples":["https://images.nohead.io/plain/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.image_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.image_url","typeLabel":"string\u003curi> | null"},"preview_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of a small rendition (fits in 640×640, WebP), for ready images and SVGs (rasterized), deleted ones included until they are purged; null otherwise.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.preview_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of a small rendition (fits in 640×640, WebP), for ready images and SVGs (rasterized), deleted ones included until they are purged; null otherwise.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.preview_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.preview_url","typeLabel":"string\u003curi> | null"},"file_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of the file as uploaded, for ready assets of any type,\ndeleted ones included until they are purged; null otherwise. It\ndownloads the file under its `filename` (a rename applies within a\nminute or so), is open and never expires, and is cached on a CDN.\n","examples":["https://files.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.file_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of the file as uploaded, for ready assets of any type,\ndeleted ones included until they are purged; null otherwise. It\ndownloads the file under its `filename` (a rename applies within a\nminute or so), is open and never expires, and is cached on a CDN.\n","examples":["https://files.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.file_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.file_url","typeLabel":"string\u003curi> | null"},"media_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL that plays a ready video or audio file inline, for\n`\u003cvideo>` and `\u003caudio>` (with range requests, so players can seek),\ndeleted ones included until they are purged: MP4, QuickTime, M4A,\n3GP, WebM, Matroska, MP3, AAC, FLAC, WAV and Ogg (whose content is\nchecked when the upload completes). Null for other types, which\n`file_url` downloads.\nOpen, never expiring and cached on a CDN, like `file_url`.\n","examples":["https://media.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.media_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL that plays a ready video or audio file inline, for\n`\u003cvideo>` and `\u003caudio>` (with range requests, so players can seek),\ndeleted ones included until they are purged: MP4, QuickTime, M4A,\n3GP, WebM, Matroska, MP3, AAC, FLAC, WAV and Ogg (whose content is\nchecked when the upload completes). Null for other types, which\n`file_url` downloads.\nOpen, never expiring and cached on a CDN, like `file_url`.\n","examples":["https://media.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.media_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.media_url","typeLabel":"string\u003curi> | null"},"uploaded_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.uploaded_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.uploaded_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.uploaded_at","typeLabel":"string\u003cdate-time> | null"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp in UTC.","examples":["2026-09-27T12:00:00.000Z"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp in UTC.","examples":["2026-09-27T12:00:00.000Z"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1.updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"null","uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.2","typeLabel":"null"},{"type":"array","items":{"oneOf":[{},{"type":"object","required":["id","object","project_id","filename","alt","content_type","byte_size","width","height","status","deleted_at","purge_after","image_url","preview_url","file_url","media_url","uploaded_at","created_at","updated_at"],"properties":{"id":{"type":"string","examples":["ast_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.id","typeLabel":"string"},"object":{"const":"asset","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.object","typeLabel":"any"},"project_id":{"type":"string","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.project_id","typeLabel":"string"},"filename":{"type":"string","description":"The filename, any Unicode, as uploaded unless renamed since. Downloads use it.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.filename","typeLabel":"string"},"alt":{"oneOf":[{"type":"string","maxLength":1000,"description":"Alternative text, saying what an image shows; null until set. The default wherever the asset is used.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.alt.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":1000,"description":"Alternative text, saying what an image shows; null until set. The default wherever the asset is used.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.alt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.alt","typeLabel":"string | null"},"content_type":{"type":"string","examples":["image/png"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.content_type","typeLabel":"string"},"byte_size":{"type":"integer","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.byte_size","typeLabel":"integer"},"width":{"oneOf":[{"type":"integer","description":"Pixel width, for images.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.width.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Pixel width, for images.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.width.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.width","typeLabel":"integer | null"},"height":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.height.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.height.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.height","typeLabel":"integer | null"},"status":{"type":"string","enum":["pending","ready","failed"],"description":"`pending` until the upload is completed; only `ready` assets can be used in records.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.status","typeLabel":"enum\u003cstring>"},"deleted_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the asset was deleted; null unless it is.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.deleted_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the asset was deleted; null unless it is.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.deleted_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.deleted_at","typeLabel":"string\u003cdate-time> | null"},"purge_after":{"oneOf":[{"type":"string","format":"date-time","description":"When a deleted asset and its file are removed for good, unless restored or purged first.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.purge_after.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When a deleted asset and its file are removed for good, unless restored or purged first.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.purge_after.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.purge_after","typeLabel":"string\u003cdate-time> | null"},"image_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of the whole image, for ready images (JPEG, PNG, GIF, WebP,\nAVIF or SVG), deleted ones included until they are purged; null\notherwise. Image URLs are open and never expire. An SVG is served\nas SVG without its scripts, unless a format such as `@webp`\nrasterizes it. For a rendition,\nwrite [imgproxy processing options](https://docs.imgproxy.net/usage/processing)\nbefore `/plain/`, and a format after `@`: for example\n`https://images.nohead.io/rs:fill:800:600/g:sm/plain/…@webp`. Renditions\nare at most 4096 pixels a side, from originals of at most 50\nmegapixels. Options that would return the file as stored (`raw`,\n`skip_processing`, `strip_metadata`) are refused.\n","examples":["https://images.nohead.io/plain/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.image_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of the whole image, for ready images (JPEG, PNG, GIF, WebP,\nAVIF or SVG), deleted ones included until they are purged; null\notherwise. Image URLs are open and never expire. An SVG is served\nas SVG without its scripts, unless a format such as `@webp`\nrasterizes it. For a rendition,\nwrite [imgproxy processing options](https://docs.imgproxy.net/usage/processing)\nbefore `/plain/`, and a format after `@`: for example\n`https://images.nohead.io/rs:fill:800:600/g:sm/plain/…@webp`. Renditions\nare at most 4096 pixels a side, from originals of at most 50\nmegapixels. Options that would return the file as stored (`raw`,\n`skip_processing`, `strip_metadata`) are refused.\n","examples":["https://images.nohead.io/plain/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.image_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.image_url","typeLabel":"string\u003curi> | null"},"preview_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of a small rendition (fits in 640×640, WebP), for ready images and SVGs (rasterized), deleted ones included until they are purged; null otherwise.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.preview_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of a small rendition (fits in 640×640, WebP), for ready images and SVGs (rasterized), deleted ones included until they are purged; null otherwise.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.preview_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.preview_url","typeLabel":"string\u003curi> | null"},"file_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of the file as uploaded, for ready assets of any type,\ndeleted ones included until they are purged; null otherwise. It\ndownloads the file under its `filename` (a rename applies within a\nminute or so), is open and never expires, and is cached on a CDN.\n","examples":["https://files.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.file_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of the file as uploaded, for ready assets of any type,\ndeleted ones included until they are purged; null otherwise. It\ndownloads the file under its `filename` (a rename applies within a\nminute or so), is open and never expires, and is cached on a CDN.\n","examples":["https://files.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.file_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.file_url","typeLabel":"string\u003curi> | null"},"media_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL that plays a ready video or audio file inline, for\n`\u003cvideo>` and `\u003caudio>` (with range requests, so players can seek),\ndeleted ones included until they are purged: MP4, QuickTime, M4A,\n3GP, WebM, Matroska, MP3, AAC, FLAC, WAV and Ogg (whose content is\nchecked when the upload completes). Null for other types, which\n`file_url` downloads.\nOpen, never expiring and cached on a CDN, like `file_url`.\n","examples":["https://media.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.media_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL that plays a ready video or audio file inline, for\n`\u003cvideo>` and `\u003caudio>` (with range requests, so players can seek),\ndeleted ones included until they are purged: MP4, QuickTime, M4A,\n3GP, WebM, Matroska, MP3, AAC, FLAC, WAV and Ogg (whose content is\nchecked when the upload completes). Null for other types, which\n`file_url` downloads.\nOpen, never expiring and cached on a CDN, like `file_url`.\n","examples":["https://media.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.media_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.media_url","typeLabel":"string\u003curi> | null"},"uploaded_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.uploaded_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.uploaded_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.uploaded_at","typeLabel":"string\u003cdate-time> | null"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp in UTC.","examples":["2026-09-27T12:00:00.000Z"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp in UTC.","examples":["2026-09-27T12:00:00.000Z"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3.items.[INDEX]","typeLabel":"object"},"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties.oneOf.3","typeLabel":"object[]"}],"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded.additionalProperties","typeLabel":"object | null | object[]"},"uniqueKey":"expanded.additionalProperties.oneOf.0.expanded","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"expanded.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","required":["id","object","project_id","filename","alt","content_type","byte_size","width","height","status","deleted_at","purge_after","image_url","preview_url","file_url","media_url","uploaded_at","created_at","updated_at"],"properties":{"id":{"type":"string","examples":["ast_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.id","typeLabel":"string"},"object":{"const":"asset","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.object","typeLabel":"any"},"project_id":{"type":"string","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.project_id","typeLabel":"string"},"filename":{"type":"string","description":"The filename, any Unicode, as uploaded unless renamed since. Downloads use it.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.filename","typeLabel":"string"},"alt":{"oneOf":[{"type":"string","maxLength":1000,"description":"Alternative text, saying what an image shows; null until set. The default wherever the asset is used.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.alt.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":1000,"description":"Alternative text, saying what an image shows; null until set. The default wherever the asset is used.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.alt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.alt","typeLabel":"string | null"},"content_type":{"type":"string","examples":["image/png"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.content_type","typeLabel":"string"},"byte_size":{"type":"integer","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.byte_size","typeLabel":"integer"},"width":{"oneOf":[{"type":"integer","description":"Pixel width, for images.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.width.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Pixel width, for images.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.width.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.width","typeLabel":"integer | null"},"height":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.height.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.height.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.height","typeLabel":"integer | null"},"status":{"type":"string","enum":["pending","ready","failed"],"description":"`pending` until the upload is completed; only `ready` assets can be used in records.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.status","typeLabel":"enum\u003cstring>"},"deleted_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the asset was deleted; null unless it is.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.deleted_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the asset was deleted; null unless it is.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.deleted_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.deleted_at","typeLabel":"string\u003cdate-time> | null"},"purge_after":{"oneOf":[{"type":"string","format":"date-time","description":"When a deleted asset and its file are removed for good, unless restored or purged first.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.purge_after.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When a deleted asset and its file are removed for good, unless restored or purged first.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.purge_after.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.purge_after","typeLabel":"string\u003cdate-time> | null"},"image_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of the whole image, for ready images (JPEG, PNG, GIF, WebP,\nAVIF or SVG), deleted ones included until they are purged; null\notherwise. Image URLs are open and never expire. An SVG is served\nas SVG without its scripts, unless a format such as `@webp`\nrasterizes it. For a rendition,\nwrite [imgproxy processing options](https://docs.imgproxy.net/usage/processing)\nbefore `/plain/`, and a format after `@`: for example\n`https://images.nohead.io/rs:fill:800:600/g:sm/plain/…@webp`. Renditions\nare at most 4096 pixels a side, from originals of at most 50\nmegapixels. Options that would return the file as stored (`raw`,\n`skip_processing`, `strip_metadata`) are refused.\n","examples":["https://images.nohead.io/plain/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.image_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of the whole image, for ready images (JPEG, PNG, GIF, WebP,\nAVIF or SVG), deleted ones included until they are purged; null\notherwise. Image URLs are open and never expire. An SVG is served\nas SVG without its scripts, unless a format such as `@webp`\nrasterizes it. For a rendition,\nwrite [imgproxy processing options](https://docs.imgproxy.net/usage/processing)\nbefore `/plain/`, and a format after `@`: for example\n`https://images.nohead.io/rs:fill:800:600/g:sm/plain/…@webp`. Renditions\nare at most 4096 pixels a side, from originals of at most 50\nmegapixels. Options that would return the file as stored (`raw`,\n`skip_processing`, `strip_metadata`) are refused.\n","examples":["https://images.nohead.io/plain/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.image_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.image_url","typeLabel":"string\u003curi> | null"},"preview_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of a small rendition (fits in 640×640, WebP), for ready images and SVGs (rasterized), deleted ones included until they are purged; null otherwise.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.preview_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of a small rendition (fits in 640×640, WebP), for ready images and SVGs (rasterized), deleted ones included until they are purged; null otherwise.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.preview_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.preview_url","typeLabel":"string\u003curi> | null"},"file_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of the file as uploaded, for ready assets of any type,\ndeleted ones included until they are purged; null otherwise. It\ndownloads the file under its `filename` (a rename applies within a\nminute or so), is open and never expires, and is cached on a CDN.\n","examples":["https://files.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.file_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of the file as uploaded, for ready assets of any type,\ndeleted ones included until they are purged; null otherwise. It\ndownloads the file under its `filename` (a rename applies within a\nminute or so), is open and never expires, and is cached on a CDN.\n","examples":["https://files.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.file_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.file_url","typeLabel":"string\u003curi> | null"},"media_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL that plays a ready video or audio file inline, for\n`\u003cvideo>` and `\u003caudio>` (with range requests, so players can seek),\ndeleted ones included until they are purged: MP4, QuickTime, M4A,\n3GP, WebM, Matroska, MP3, AAC, FLAC, WAV and Ogg (whose content is\nchecked when the upload completes). Null for other types, which\n`file_url` downloads.\nOpen, never expiring and cached on a CDN, like `file_url`.\n","examples":["https://media.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.media_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL that plays a ready video or audio file inline, for\n`\u003cvideo>` and `\u003caudio>` (with range requests, so players can seek),\ndeleted ones included until they are purged: MP4, QuickTime, M4A,\n3GP, WebM, Matroska, MP3, AAC, FLAC, WAV and Ogg (whose content is\nchecked when the upload completes). Null for other types, which\n`file_url` downloads.\nOpen, never expiring and cached on a CDN, like `file_url`.\n","examples":["https://media.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.media_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.media_url","typeLabel":"string\u003curi> | null"},"uploaded_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.uploaded_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.uploaded_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.uploaded_at","typeLabel":"string\u003cdate-time> | null"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp in UTC.","examples":["2026-09-27T12:00:00.000Z"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp in UTC.","examples":["2026-09-27T12:00:00.000Z"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.1.updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"expanded.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"null","uniqueKey":"expanded.additionalProperties.oneOf.2","typeLabel":"null"},{"type":"array","items":{"oneOf":[{},{"type":"object","required":["id","object","project_id","filename","alt","content_type","byte_size","width","height","status","deleted_at","purge_after","image_url","preview_url","file_url","media_url","uploaded_at","created_at","updated_at"],"properties":{"id":{"type":"string","examples":["ast_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.id","typeLabel":"string"},"object":{"const":"asset","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.object","typeLabel":"any"},"project_id":{"type":"string","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.project_id","typeLabel":"string"},"filename":{"type":"string","description":"The filename, any Unicode, as uploaded unless renamed since. Downloads use it.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.filename","typeLabel":"string"},"alt":{"oneOf":[{"type":"string","maxLength":1000,"description":"Alternative text, saying what an image shows; null until set. The default wherever the asset is used.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.alt.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":1000,"description":"Alternative text, saying what an image shows; null until set. The default wherever the asset is used.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.alt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.alt","typeLabel":"string | null"},"content_type":{"type":"string","examples":["image/png"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.content_type","typeLabel":"string"},"byte_size":{"type":"integer","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.byte_size","typeLabel":"integer"},"width":{"oneOf":[{"type":"integer","description":"Pixel width, for images.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.width.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Pixel width, for images.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.width.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.width","typeLabel":"integer | null"},"height":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.height.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.height.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.height","typeLabel":"integer | null"},"status":{"type":"string","enum":["pending","ready","failed"],"description":"`pending` until the upload is completed; only `ready` assets can be used in records.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.status","typeLabel":"enum\u003cstring>"},"deleted_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the asset was deleted; null unless it is.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.deleted_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the asset was deleted; null unless it is.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.deleted_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.deleted_at","typeLabel":"string\u003cdate-time> | null"},"purge_after":{"oneOf":[{"type":"string","format":"date-time","description":"When a deleted asset and its file are removed for good, unless restored or purged first.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.purge_after.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When a deleted asset and its file are removed for good, unless restored or purged first.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.purge_after.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.purge_after","typeLabel":"string\u003cdate-time> | null"},"image_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of the whole image, for ready images (JPEG, PNG, GIF, WebP,\nAVIF or SVG), deleted ones included until they are purged; null\notherwise. Image URLs are open and never expire. An SVG is served\nas SVG without its scripts, unless a format such as `@webp`\nrasterizes it. For a rendition,\nwrite [imgproxy processing options](https://docs.imgproxy.net/usage/processing)\nbefore `/plain/`, and a format after `@`: for example\n`https://images.nohead.io/rs:fill:800:600/g:sm/plain/…@webp`. Renditions\nare at most 4096 pixels a side, from originals of at most 50\nmegapixels. Options that would return the file as stored (`raw`,\n`skip_processing`, `strip_metadata`) are refused.\n","examples":["https://images.nohead.io/plain/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.image_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of the whole image, for ready images (JPEG, PNG, GIF, WebP,\nAVIF or SVG), deleted ones included until they are purged; null\notherwise. Image URLs are open and never expire. An SVG is served\nas SVG without its scripts, unless a format such as `@webp`\nrasterizes it. For a rendition,\nwrite [imgproxy processing options](https://docs.imgproxy.net/usage/processing)\nbefore `/plain/`, and a format after `@`: for example\n`https://images.nohead.io/rs:fill:800:600/g:sm/plain/…@webp`. Renditions\nare at most 4096 pixels a side, from originals of at most 50\nmegapixels. Options that would return the file as stored (`raw`,\n`skip_processing`, `strip_metadata`) are refused.\n","examples":["https://images.nohead.io/plain/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.image_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.image_url","typeLabel":"string\u003curi> | null"},"preview_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of a small rendition (fits in 640×640, WebP), for ready images and SVGs (rasterized), deleted ones included until they are purged; null otherwise.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.preview_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of a small rendition (fits in 640×640, WebP), for ready images and SVGs (rasterized), deleted ones included until they are purged; null otherwise.","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.preview_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.preview_url","typeLabel":"string\u003curi> | null"},"file_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL of the file as uploaded, for ready assets of any type,\ndeleted ones included until they are purged; null otherwise. It\ndownloads the file under its `filename` (a rename applies within a\nminute or so), is open and never expires, and is cached on a CDN.\n","examples":["https://files.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.file_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL of the file as uploaded, for ready assets of any type,\ndeleted ones included until they are purged; null otherwise. It\ndownloads the file under its `filename` (a rename applies within a\nminute or so), is open and never expires, and is cached on a CDN.\n","examples":["https://files.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.file_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.file_url","typeLabel":"string\u003curi> | null"},"media_url":{"oneOf":[{"type":"string","format":"uri","description":"The URL that plays a ready video or audio file inline, for\n`\u003cvideo>` and `\u003caudio>` (with range requests, so players can seek),\ndeleted ones included until they are purged: MP4, QuickTime, M4A,\n3GP, WebM, Matroska, MP3, AAC, FLAC, WAV and Ogg (whose content is\nchecked when the upload completes). Null for other types, which\n`file_url` downloads.\nOpen, never expiring and cached on a CDN, like `file_url`.\n","examples":["https://media.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.media_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"The URL that plays a ready video or audio file inline, for\n`\u003cvideo>` and `\u003caudio>` (with range requests, so players can seek),\ndeleted ones included until they are purged: MP4, QuickTime, M4A,\n3GP, WebM, Matroska, MP3, AAC, FLAC, WAV and Ogg (whose content is\nchecked when the upload completes). Null for other types, which\n`file_url` downloads.\nOpen, never expiring and cached on a CDN, like `file_url`.\n","examples":["https://media.nohead.io/0199f5c2-7b1e-7c3a-9d4f-2a6b8c0e1f3d/0199f5c2-8a2d-7e4b-b1c3-5d7e9f1a2b4c"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.media_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.media_url","typeLabel":"string\u003curi> | null"},"uploaded_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.uploaded_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.uploaded_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.uploaded_at","typeLabel":"string\u003cdate-time> | null"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp in UTC.","examples":["2026-09-27T12:00:00.000Z"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp in UTC.","examples":["2026-09-27T12:00:00.000Z"],"isRequired":true,"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1.updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"expanded.additionalProperties.oneOf.3.items.[INDEX]","typeLabel":"object"},"uniqueKey":"expanded.additionalProperties.oneOf.3","typeLabel":"object[]"}],"uniqueKey":"expanded.additionalProperties","typeLabel":"object · object · null · object[]"},"uniqueKey":"expanded","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"drf_01J9ZQ3F8X5W2K7M4N6P0R1S2T","object":"draft","record_id":"\u003cstring>","collection_id":"\u003cstring>","collection":"\u003cstring>","base_revision":123,"revision":123,"data":{"title":"Introducing Foo","body":{"type":"doc","content":[]}},"changed_fields":["\u003cstring>"],"schedule":{"merge_at":"2023-11-07T05:31:56Z","last_error":"\u003cstring>"},"created_by":{"type":"user","id":"\u003cstring>","name":"\u003cstring>"},"edited_by":[{"type":"user","id":"\u003cstring>","name":"\u003cstring>"}],"created_at":"2026-09-27T12:00:00.000Z","updated_at":"2026-09-27T12:00:00.000Z","expanded":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"11c3217d-2527-497b-8c66-0d04e8e76d62":{"description":"The request was malformed: unparseable JSON, an invalid query parameter, or a body key the operation doesn't take (detail code `unknown_parameter`, naming the key).","headers":{"X-Request-Id":{"description":"Unique identifier for the request, also echoed in error bodies.","schema":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"]}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["type","message","request_id"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication_error","plan_limit_exceeded","authorization_error","not_found","conflict","precondition_failed","validation_error","rate_limited","internal_error","service_unavailable"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. `required`.","isRequired":true,"uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","description":"Key of the offending field or parameter, when applicable.","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"usage":{"type":"integer","description":"Current usage, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].usage","typeLabel":"integer"},"limit":{"type":"integer","description":"The plan's limit, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].limit","typeLabel":"integer"},"current_revision":{"type":"integer","description":"The resource's current revision, for `revision_mismatch` details.","uniqueKey":"error.details.items.[INDEX].current_revision","typeLabel":"integer"},"record_id":{"type":"string","description":"The record that already has the value, for `taken` details.","uniqueKey":"error.details.items.[INDEX].record_id","typeLabel":"string"},"draft_id":{"type":"string","description":"The record's draft, for `draft_exists` and `draft_pending` details.","uniqueKey":"error.details.items.[INDEX].draft_id","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","request_id":"req_01J9ZQ3F8X5W2K7M4N6P0R1S2T","details":[{"code":"\u003cstring>","message":"\u003cstring>","field":"\u003cstring>","usage":123,"limit":123,"current_revision":123,"record_id":"\u003cstring>","draft_id":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"00cfc22a-7607-4b81-8024-75d35bfbd848":{"description":"Authentication is missing or invalid.","headers":{"X-Request-Id":{"description":"Unique identifier for the request, also echoed in error bodies.","schema":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"]}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["type","message","request_id"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication_error","plan_limit_exceeded","authorization_error","not_found","conflict","precondition_failed","validation_error","rate_limited","internal_error","service_unavailable"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. `required`.","isRequired":true,"uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","description":"Key of the offending field or parameter, when applicable.","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"usage":{"type":"integer","description":"Current usage, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].usage","typeLabel":"integer"},"limit":{"type":"integer","description":"The plan's limit, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].limit","typeLabel":"integer"},"current_revision":{"type":"integer","description":"The resource's current revision, for `revision_mismatch` details.","uniqueKey":"error.details.items.[INDEX].current_revision","typeLabel":"integer"},"record_id":{"type":"string","description":"The record that already has the value, for `taken` details.","uniqueKey":"error.details.items.[INDEX].record_id","typeLabel":"string"},"draft_id":{"type":"string","description":"The record's draft, for `draft_exists` and `draft_pending` details.","uniqueKey":"error.details.items.[INDEX].draft_id","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","request_id":"req_01J9ZQ3F8X5W2K7M4N6P0R1S2T","details":[{"code":"\u003cstring>","message":"\u003cstring>","field":"\u003cstring>","usage":123,"limit":123,"current_revision":123,"record_id":"\u003cstring>","draft_id":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"e5a835f6-fafb-47ce-86b7-c592c1887d2a":{"description":"The caller is not allowed to perform this action.","headers":{"X-Request-Id":{"description":"Unique identifier for the request, also echoed in error bodies.","schema":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"]}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["type","message","request_id"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication_error","plan_limit_exceeded","authorization_error","not_found","conflict","precondition_failed","validation_error","rate_limited","internal_error","service_unavailable"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. `required`.","isRequired":true,"uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","description":"Key of the offending field or parameter, when applicable.","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"usage":{"type":"integer","description":"Current usage, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].usage","typeLabel":"integer"},"limit":{"type":"integer","description":"The plan's limit, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].limit","typeLabel":"integer"},"current_revision":{"type":"integer","description":"The resource's current revision, for `revision_mismatch` details.","uniqueKey":"error.details.items.[INDEX].current_revision","typeLabel":"integer"},"record_id":{"type":"string","description":"The record that already has the value, for `taken` details.","uniqueKey":"error.details.items.[INDEX].record_id","typeLabel":"string"},"draft_id":{"type":"string","description":"The record's draft, for `draft_exists` and `draft_pending` details.","uniqueKey":"error.details.items.[INDEX].draft_id","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","request_id":"req_01J9ZQ3F8X5W2K7M4N6P0R1S2T","details":[{"code":"\u003cstring>","message":"\u003cstring>","field":"\u003cstring>","usage":123,"limit":123,"current_revision":123,"record_id":"\u003cstring>","draft_id":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"dcb4da19-5eee-4414-90bb-4e9a5c424cbf":{"description":"The resource does not exist or is not visible to the caller.","headers":{"X-Request-Id":{"description":"Unique identifier for the request, also echoed in error bodies.","schema":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"]}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["type","message","request_id"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication_error","plan_limit_exceeded","authorization_error","not_found","conflict","precondition_failed","validation_error","rate_limited","internal_error","service_unavailable"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. `required`.","isRequired":true,"uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","description":"Key of the offending field or parameter, when applicable.","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"usage":{"type":"integer","description":"Current usage, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].usage","typeLabel":"integer"},"limit":{"type":"integer","description":"The plan's limit, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].limit","typeLabel":"integer"},"current_revision":{"type":"integer","description":"The resource's current revision, for `revision_mismatch` details.","uniqueKey":"error.details.items.[INDEX].current_revision","typeLabel":"integer"},"record_id":{"type":"string","description":"The record that already has the value, for `taken` details.","uniqueKey":"error.details.items.[INDEX].record_id","typeLabel":"string"},"draft_id":{"type":"string","description":"The record's draft, for `draft_exists` and `draft_pending` details.","uniqueKey":"error.details.items.[INDEX].draft_id","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","request_id":"req_01J9ZQ3F8X5W2K7M4N6P0R1S2T","details":[{"code":"\u003cstring>","message":"\u003cstring>","field":"\u003cstring>","usage":123,"limit":123,"current_revision":123,"record_id":"\u003cstring>","draft_id":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"5a841367-e91f-4760-8c05-5037c29abb56":{"description":"The request conflicts with current state.","headers":{"X-Request-Id":{"description":"Unique identifier for the request, also echoed in error bodies.","schema":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"]}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["type","message","request_id"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication_error","plan_limit_exceeded","authorization_error","not_found","conflict","precondition_failed","validation_error","rate_limited","internal_error","service_unavailable"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. `required`.","isRequired":true,"uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","description":"Key of the offending field or parameter, when applicable.","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"usage":{"type":"integer","description":"Current usage, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].usage","typeLabel":"integer"},"limit":{"type":"integer","description":"The plan's limit, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].limit","typeLabel":"integer"},"current_revision":{"type":"integer","description":"The resource's current revision, for `revision_mismatch` details.","uniqueKey":"error.details.items.[INDEX].current_revision","typeLabel":"integer"},"record_id":{"type":"string","description":"The record that already has the value, for `taken` details.","uniqueKey":"error.details.items.[INDEX].record_id","typeLabel":"string"},"draft_id":{"type":"string","description":"The record's draft, for `draft_exists` and `draft_pending` details.","uniqueKey":"error.details.items.[INDEX].draft_id","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","request_id":"req_01J9ZQ3F8X5W2K7M4N6P0R1S2T","details":[{"code":"\u003cstring>","message":"\u003cstring>","field":"\u003cstring>","usage":123,"limit":123,"current_revision":123,"record_id":"\u003cstring>","draft_id":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"f6a9643e-e4ad-402e-9f00-b3e93fef5ae7":{"description":"The request failed validation.","headers":{"X-Request-Id":{"description":"Unique identifier for the request, also echoed in error bodies.","schema":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"]}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["type","message","request_id"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication_error","plan_limit_exceeded","authorization_error","not_found","conflict","precondition_failed","validation_error","rate_limited","internal_error","service_unavailable"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. `required`.","isRequired":true,"uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","description":"Key of the offending field or parameter, when applicable.","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"usage":{"type":"integer","description":"Current usage, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].usage","typeLabel":"integer"},"limit":{"type":"integer","description":"The plan's limit, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].limit","typeLabel":"integer"},"current_revision":{"type":"integer","description":"The resource's current revision, for `revision_mismatch` details.","uniqueKey":"error.details.items.[INDEX].current_revision","typeLabel":"integer"},"record_id":{"type":"string","description":"The record that already has the value, for `taken` details.","uniqueKey":"error.details.items.[INDEX].record_id","typeLabel":"string"},"draft_id":{"type":"string","description":"The record's draft, for `draft_exists` and `draft_pending` details.","uniqueKey":"error.details.items.[INDEX].draft_id","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"type":"validation_error","message":"Record validation failed","request_id":"req_01J9ZQ3F8X5W2K7M4N6P0R1S2T","details":[{"field":"title","code":"required","message":"is required"}]}},"examples":{"Example":{"title":"Example","value":{"error":{"type":"validation_error","message":"Record validation failed","request_id":"req_01J9ZQ3F8X5W2K7M4N6P0R1S2T","details":[{"field":"title","code":"required","message":"is required"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"2d9cbbc4-491c-4fb4-9567-9ae07c3dc041":{"description":"Too many requests for this API key or user (or, with failing\ncredentials, this IP address). A published-only key is counted per\nclient IP. Wait `Retry-After` seconds; retries with the same `Idempotency-Key`\nare safe. On the Free plan, an organization's API keys are also\nrefused once its API requests reach the month's limit, with a\n`plan_limit` detail (`field` `api_requests`, `usage` and `limit`),\nuntil the next month (UTC) or an upgrade.\n","headers":{"X-Request-Id":{"description":"Unique identifier for the request, also echoed in error bodies.","schema":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"]}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}},"RateLimit-Limit":{"description":"Requests allowed in the current window. Sent on every authenticated response.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["type","message","request_id"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication_error","plan_limit_exceeded","authorization_error","not_found","conflict","precondition_failed","validation_error","rate_limited","internal_error","service_unavailable"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9]+$","examples":["req_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. `required`.","isRequired":true,"uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","description":"Key of the offending field or parameter, when applicable.","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"usage":{"type":"integer","description":"Current usage, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].usage","typeLabel":"integer"},"limit":{"type":"integer","description":"The plan's limit, for `plan_limit` details.","uniqueKey":"error.details.items.[INDEX].limit","typeLabel":"integer"},"current_revision":{"type":"integer","description":"The resource's current revision, for `revision_mismatch` details.","uniqueKey":"error.details.items.[INDEX].current_revision","typeLabel":"integer"},"record_id":{"type":"string","description":"The record that already has the value, for `taken` details.","uniqueKey":"error.details.items.[INDEX].record_id","typeLabel":"string"},"draft_id":{"type":"string","description":"The record's draft, for `draft_exists` and `draft_pending` details.","uniqueKey":"error.details.items.[INDEX].draft_id","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","request_id":"req_01J9ZQ3F8X5W2K7M4N6P0R1S2T","details":[{"code":"\u003cstring>","message":"\u003cstring>","field":"\u003cstring>","usage":123,"limit":123,"current_revision":123,"record_id":"\u003cstring>","draft_id":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"fdb003e5-f8f3-4ee7-b4f8-ee1029f9c030":{"apiKey":{"type":"http","scheme":"bearer","description":"Project-scoped API key, e.g. `nohead_sk_k7fz0a9c3m2q_\u003csecret>`, or\n`nohead_pk_…` for a published-only key. Used by servers, CI, the CLI\nand coding agents.\n","scopes":[],"schemeName":"apiKey"}}},"servers":{"8bbbb494-a028-4201-ac4c-27745b9572a7":{"url":"https://api.nohead.io","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Project-scoped API key, e.g. `nohead_sk_k7fz0a9c3m2q_\u003csecret>`, or\n`nohead_pk_…` for a published-only key. Used by servers, CI, the CLI\nand coding agents.\n","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Project-scoped API key, e.g. `nohead_sk_k7fz0a9c3m2q_\u003csecret>`, or\n`nohead_pk_…` for a published-only key. Used by servers, CI, the CLI\nand coding agents.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"openapi.json"},"subdomain":"nohead","siteName":"Nohead","title":"Start a draft - Nohead","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T14:20:20.810Z","originalFileLocation":"api-reference/drafts/start-a-draft.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Starts the record\u0026#x27;s draft (records:write): changes to its content that wait until they are merged, now or at a set time, while the record keeps its current values. data takes values as a record update does, validated on what the record would read after the merge. With from_revision, the draft starts from that revision\u0026#x27;s values (mapped onto the current schema, as a revert is), to bring an earlier version back for review (400 unless it is a revision number, 404 if the record has no such revision). Works on any record, live or not. One draft per record: a second is 409 with detail code draft_exists and its draft_id, so change that one instead. 409 with detail code deleted while the record is soft-deleted.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Nohead\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/nohead/rS-6Mxl34NeSIeuO/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/nohead/rS-6Mxl34NeSIeuO/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/nohead/rS-6Mxl34NeSIeuO/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/nohead/rS-6Mxl34NeSIeuO/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/nohead/rS-6Mxl34NeSIeuO/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/nohead/rS-6Mxl34NeSIeuO/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/nohead/rS-6Mxl34NeSIeuO/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/nohead/rS-6Mxl34NeSIeuO/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/nohead/rS-6Mxl34NeSIeuO/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Start a draft - Nohead\">\u003cmeta data-mint-head property=\"og:description\" content=\"Starts the record\u0026#x27;s draft (records:write): changes to its content that wait until they are merged, now or at a set time, while the record keeps its current values. data takes values as a record update does, validated on what the record would read after the merge. With from_revision, the draft starts from that revision\u0026#x27;s values (mapped onto the current schema, as a revert is), to bring an earlier version back for review (400 unless it is a revision number, 404 if the record has no such revision). Works on any record, live or not. One draft per record: a second is 409 with detail code draft_exists and its draft_id, so change that one instead. 409 with detail code deleted while the record is soft-deleted.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Nohead\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.nohead.io/api-reference/drafts/start-a-draft\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://nohead.mintlify.site/_mintlify/api/og/v2?division=Drafts\u0026amp;title=Start+a+draft\u0026amp;description=Starts+the+record%27s+draft+%28%60records%3Awrite%60%29%3A+changes+to+its+content%0Athat+wait+until+they+are+merged%2C+now+or+at+a+set+time%2C+while+the%0Arecord+keeps+its+current+va\u0026amp;theme=5304bc0da6bac525d02ea050\u0026amp;signature=9c88af1e0fd6ec83833ac3becc3eec8f1b833b6746ba86fc82ee6a8e63f4cf1e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Start a draft - Nohead\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Starts the record\u0026#x27;s draft (records:write): changes to its content that wait until they are merged, now or at a set time, while the record keeps its current values. data takes values as a record update does, validated on what the record would read after the merge. With from_revision, the draft starts from that revision\u0026#x27;s values (mapped onto the current schema, as a revert is), to bring an earlier version back for review (400 unless it is a revision number, 404 if the record has no such revision). Works on any record, live or not. One draft per record: a second is 409 with detail code draft_exists and its draft_id, so change that one instead. 409 with detail code deleted while the record is soft-deleted.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://nohead.mintlify.site/_mintlify/api/og/v2?division=Drafts\u0026amp;title=Start+a+draft\u0026amp;description=Starts+the+record%27s+draft+%28%60records%3Awrite%60%29%3A+changes+to+its+content%0Athat+wait+until+they+are+merged%2C+now+or+at+a+set+time%2C+while+the%0Arecord+keeps+its+current+va\u0026amp;theme=5304bc0da6bac525d02ea050\u0026amp;signature=9c88af1e0fd6ec83833ac3becc3eec8f1b833b6746ba86fc82ee6a8e63f4cf1e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/nohead/rS-6Mxl34NeSIeuO/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Nohead\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#171717\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.nohead.io/api-reference/drafts/start-a-draft\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/drafts/start-a-draft.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.nohead.io/#organization\",\"name\":\"Nohead\",\"url\":\"https://docs.nohead.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/nohead/Zi4ShGp1nnXJjvN2/logo/light.svg?fit=max\u0026auto=format\u0026n=Zi4ShGp1nnXJjvN2\u0026q=85\u0026s=e431964df2c90a7efd8cf3839919156a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.nohead.io#website\",\"name\":\"Nohead\",\"url\":\"https://docs.nohead.io\",\"publisher\":{\"@id\":\"https://docs.nohead.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.nohead.io/api-reference/drafts/start-a-draft#webpage\",\"url\":\"https://docs.nohead.io/api-reference/drafts/start-a-draft\",\"name\":\"Start a draft\",\"description\":\"Starts the record's draft (records:write): changes to its content that wait until they are merged, now or at a set time, while the record keeps its current values. data takes values as a record update does, validated on what the record would read after the merge. With from_revision, the draft starts from that revision's values (mapped onto the current schema, as a revert is), to bring an earlier version back for review (400 unless it is a revision number, 404 if the record has no such revision). Works on any record, live or not. One draft per record: a second is 409 with detail code draft_exists and its draft_id, so change that one instead. 409 with detail code deleted while the record is soft-deleted.\",\"dateModified\":\"2026-11-05T14:20:20.810Z\",\"isPartOf\":{\"@id\":\"https://docs.nohead.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.nohead.io/api-reference/drafts/start-a-draft#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.nohead.io/api-reference/drafts/start-a-draft#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.nohead.io/api-reference/records/list-records\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Drafts\",\"item\":\"https://docs.nohead.io/api-reference/drafts/list-a-records-drafts\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Start a draft\",\"item\":\"https://docs.nohead.io/api-reference/drafts/start-a-draft\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.nohead.io/api-reference/drafts/start-a-draft#apireference\",\"headline\":\"Start a draft\",\"name\":\"Start a draft\",\"description\":\"Starts the record's draft (records:write): changes to its content that wait until they are merged, now or at a set time, while the record keeps its current values. data takes values as a record update does, validated on what the record would read after the merge. With from_revision, the draft starts from that revision's values (mapped onto the current schema, as a revert is), to bring an earlier version back for review (400 unless it is a revision number, 404 if the record has no such revision). Works on any record, live or not. One draft per record: a second is 409 with detail code draft_exists and its draft_id, so change that one instead. 409 with detail code deleted while the record is soft-deleted.\",\"url\":\"https://docs.nohead.io/api-reference/drafts/start-a-draft\",\"mainEntityOfPage\":{\"@id\":\"https://docs.nohead.io/api-reference/drafts/start-a-draft#webpage\"},\"dateModified\":\"2026-11-05T14:20:20.810Z\",\"publisher\":{\"@id\":\"https://docs.nohead.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.nohead.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Nohead\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Nohead","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","pages":[{"title":"Overview","icon":"braces","href":"/api-reference/overview"},{"group":"Endpoints","pages":[{"group":"Records","icon":"file-text","pages":[{"title":"List records","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}/records","href":"/api-reference/records/list-records"},{"title":"Create a record","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/collections/{collection_id}/records","href":"/api-reference/records/create-a-record"},{"title":"Get a record","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/records/{record_id}","href":"/api-reference/records/get-a-record"},{"title":"Update a record","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/records/{record_id}","href":"/api-reference/records/update-a-record"},{"title":"Delete a record","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/records/{record_id}","href":"/api-reference/records/delete-a-record"},{"title":"Count records","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}/records/count","href":"/api-reference/records/count-records"},{"title":"Change many records","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/collections/{collection_id}/record-batches","href":"/api-reference/records/change-many-records"},{"title":"Restore a record","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/records/{record_id}/restore","href":"/api-reference/records/restore-a-record"}]},{"group":"Publishing","icon":"globe","pages":[{"title":"Get a record's publication","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/records/{record_id}/publication","href":"/api-reference/publishing/get-a-records-publication"},{"title":"Publish a record","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/records/{record_id}/publication","href":"/api-reference/publishing/publish-a-record"},{"title":"Unpublish a record","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/records/{record_id}/publication","href":"/api-reference/publishing/unpublish-a-record"},{"title":"Get a record's schedule","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/records/{record_id}/schedule","href":"/api-reference/publishing/get-a-records-schedule"},{"title":"Schedule publishing or unpublishing","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/records/{record_id}/schedule","href":"/api-reference/publishing/schedule-publishing-or-unpublishing"},{"title":"Cancel a record's schedule","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/records/{record_id}/schedule","href":"/api-reference/publishing/cancel-a-records-schedule"},{"title":"List scheduled changes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}/scheduled-changes","href":"/api-reference/publishing/list-scheduled-changes"}]},{"group":"Revisions","icon":"file-clock","pages":[{"title":"List a record's revisions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/records/{record_id}/revisions","href":"/api-reference/revisions/list-a-records-revisions"},{"title":"Get a revision","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/records/{record_id}/revisions/{revision}","href":"/api-reference/revisions/get-a-revision"},{"title":"Get a revision by ID","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/revisions/{revision_id}","href":"/api-reference/revisions/get-a-revision-by-id"},{"title":"Revert to a revision","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/records/{record_id}/revisions/{revision}/revert","href":"/api-reference/revisions/revert-to-a-revision"},{"title":"Compare two revisions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/records/{record_id}/diff","href":"/api-reference/revisions/compare-two-revisions"}]},{"group":"Drafts","icon":"file-pen","pages":[{"title":"List a record's drafts","description":"The record's draft, as a list: a record has at most one for now. Empty\nwhile the record is deleted, whose draft is hidden until it is\nrestored. Published-only API keys get `403`.\n","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/records/{record_id}/drafts","href":"/api-reference/drafts/list-a-records-drafts"},{"title":"Start a draft","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/records/{record_id}/drafts","href":"/api-reference/drafts/start-a-draft"},{"title":"List drafts","description":"The drafts of the collection's records, most recently changed first,\nfor \"changes pending\" badges: a record's representation is only its\ncontent. One record's draft is `GET /v1/records/{record_id}/drafts`.\nDeleted records' drafts are left out. Published-only API keys get\n`403`.\n","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}/drafts","href":"/api-reference/drafts/list-drafts"},{"title":"Get a draft","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/drafts/{draft_id}","href":"/api-reference/drafts/get-a-draft"},{"title":"Update a draft","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/drafts/{draft_id}","href":"/api-reference/drafts/update-a-draft"},{"title":"Discard a draft","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/drafts/{draft_id}","href":"/api-reference/drafts/discard-a-draft"},{"title":"Merge a draft","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/drafts/{draft_id}/merge","href":"/api-reference/drafts/merge-a-draft"},{"title":"Schedule a draft's merge","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/drafts/{draft_id}/schedule","href":"/api-reference/drafts/schedule-a-drafts-merge"},{"title":"Cancel a draft's merge","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/drafts/{draft_id}/schedule","href":"/api-reference/drafts/cancel-a-drafts-merge"}]},{"group":"Collections","icon":"database","pages":[{"title":"List collections","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/collections","href":"/api-reference/collections/list-collections"},{"title":"Create a collection","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/collections","href":"/api-reference/collections/create-a-collection"},{"title":"Get a collection","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}","href":"/api-reference/collections/get-a-collection"},{"title":"Update a collection","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/collections/{collection_id}","href":"/api-reference/collections/update-a-collection"},{"title":"Delete a collection","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/collections/{collection_id}","href":"/api-reference/collections/delete-a-collection"},{"title":"Restore a deleted collection","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/collections/{collection_id}/restore","href":"/api-reference/collections/restore-a-deleted-collection"}]},{"group":"Schema changes","icon":"file-diff","pages":[{"title":"Get the schema at a version","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}/schema","href":"/api-reference/schema-changes/get-the-schema-at-a-version"},{"title":"List schema changes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}/schema-changes","href":"/api-reference/schema-changes/list-schema-changes"},{"title":"Get a schema change","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/schema-changes/{schema_change_id}","href":"/api-reference/schema-changes/get-a-schema-change"}]},{"group":"Fields","icon":"list","pages":[{"title":"List fields","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}/fields","href":"/api-reference/fields/list-fields"},{"title":"Add a field","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/collections/{collection_id}/fields","href":"/api-reference/fields/add-a-field"},{"title":"Get a field","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fields/{field_id}","href":"/api-reference/fields/get-a-field"},{"title":"Update a field","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/fields/{field_id}","href":"/api-reference/fields/update-a-field"},{"title":"Delete a field","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/fields/{field_id}","href":"/api-reference/fields/delete-a-field"},{"title":"Get the field order","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}/field-order","href":"/api-reference/fields/get-the-field-order"},{"title":"Reorder fields","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/collections/{collection_id}/field-order","href":"/api-reference/fields/reorder-fields"},{"title":"Stop accepting a renamed field's old key","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/fields/{field_id}/aliases/{alias}","href":"/api-reference/fields/stop-accepting-a-renamed-fields-old-key"},{"title":"Restore a deleted field","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/fields/{field_id}/restore","href":"/api-reference/fields/restore-a-deleted-field"}]},{"group":"Field migrations","icon":"arrow-right-left","pages":[{"title":"List field migrations","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}/migrations","href":"/api-reference/migrations/list-field-migrations"},{"title":"Migrate a field","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/collections/{collection_id}/migrations","href":"/api-reference/migrations/migrate-a-field"},{"title":"Get a field migration","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/migrations/{migration_id}","href":"/api-reference/migrations/get-a-field-migration"},{"title":"Cancel a field migration","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/migrations/{migration_id}/cancel","href":"/api-reference/migrations/cancel-a-field-migration"}]},{"group":"Assets","icon":"image","pages":[{"title":"List assets","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/assets","href":"/api-reference/assets/list-assets"},{"title":"Start an upload","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/assets","href":"/api-reference/assets/start-an-upload"},{"title":"Complete an upload","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/assets/{asset_id}/complete","href":"/api-reference/assets/complete-an-upload"},{"title":"Get an asset","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/assets/{asset_id}","href":"/api-reference/assets/get-an-asset"},{"title":"Update an asset","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/assets/{asset_id}","href":"/api-reference/assets/update-an-asset"},{"title":"Delete an asset","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/assets/{asset_id}","href":"/api-reference/assets/delete-an-asset"},{"title":"See where an asset is used","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/assets/{asset_id}/usage","href":"/api-reference/assets/see-where-an-asset-is-used"},{"title":"Restore a deleted asset","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/assets/{asset_id}/restore","href":"/api-reference/assets/restore-a-deleted-asset"},{"title":"Permanently delete a deleted asset","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/assets/{asset_id}/purge","href":"/api-reference/assets/permanently-delete-a-deleted-asset"}]},{"group":"Search","icon":"search","pages":[{"title":"Search records","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}/search","href":"/api-reference/search/search-records"},{"title":"Search across collections","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/search","href":"/api-reference/search/search-across-collections"},{"title":"Get search index status","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/collections/{collection_id}/search-index","href":"/api-reference/search/get-search-index-status"},{"title":"Rebuild the search index","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/collections/{collection_id}/search-index/rebuild","href":"/api-reference/search/rebuild-the-search-index"}]},{"group":"Webhooks","icon":"webhook","pages":[{"title":"List webhooks","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Create a webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/webhooks","href":"/api-reference/webhooks/create-a-webhook"},{"title":"Get a webhook","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/{webhook_id}","href":"/api-reference/webhooks/get-a-webhook"},{"title":"Update a webhook","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/webhooks/{webhook_id}","href":"/api-reference/webhooks/update-a-webhook"},{"title":"Delete a webhook","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/webhooks/{webhook_id}","href":"/api-reference/webhooks/delete-a-webhook"},{"title":"Send a test event","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhooks/{webhook_id}/test","href":"/api-reference/webhooks/send-a-test-event"},{"title":"List a webhook's secrets","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/{webhook_id}/secrets","href":"/api-reference/webhooks/list-a-webhooks-secrets"},{"title":"Rotate a webhook's signing secret","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhooks/{webhook_id}/secrets","href":"/api-reference/webhooks/rotate-a-webhooks-signing-secret"},{"title":"Retire a webhook secret","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/webhook-secrets/{secret_id}","href":"/api-reference/webhooks/retire-a-webhook-secret"},{"title":"Restore a webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhooks/{webhook_id}/restore","href":"/api-reference/webhooks/restore-a-webhook"}]},{"group":"Webhook deliveries","icon":"send","pages":[{"title":"List deliveries","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhooks/{webhook_id}/deliveries","href":"/api-reference/deliveries/list-deliveries"},{"title":"Get a delivery","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/webhook-deliveries/{delivery_id}","href":"/api-reference/deliveries/get-a-delivery"},{"title":"Retry a delivery","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/webhook-deliveries/{delivery_id}/retry","href":"/api-reference/deliveries/retry-a-delivery"}]},{"group":"Activity log","icon":"history","pages":[{"title":"List a project's audit events","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/audit-events","href":"/api-reference/audit/list-a-projects-audit-events"}]},{"group":"System","icon":"activity","pages":[{"title":"Check API health","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/health","href":"/api-reference/system/check-api-health"},{"title":"Get the authenticated principal","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/me","href":"/api-reference/system/get-the-authenticated-principal"},{"title":"Get evaluated feature flags","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/feature-flags","href":"/api-reference/system/get-evaluated-feature-flags"}]}]}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/overview"}]}]},"basePath":"","title":"Start a draft - Nohead","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","Page-BUDYNlhG.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}