Changes one of the collection’s fields (field_id) in a way that
rewrites existing record values: its type, multiple, a stricter
configuration, a date’s include_time, or making it required
with a backfill for records that have no value.
Every record is checked first. With dry_run=true the result is a
preview: counts per outcome and sample records, nothing written. Without
it, a migration whose values do not all convert is refused (422)
unless on_invalid is clear; otherwise it is accepted (202) and
applied in the background. Poll GET /v1/migrations/{migration_id}.
While a migration is pending or running, schema writes to the collection
return 409, and record writes do once it is running (a pending one may
wait for others to finish). A value written while it waits that does
not convert fails the migration, or is cleared with on_invalid: clear. Each record whose data changes gets a
migrate revision, so cleared or converted values stay recoverable.
A dry run’s preview shows sample record values, so it also needs
records:read.
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.
Optional reason for the change, kept with the record revision, schema
change or field migration it makes (at most 500 characters once
decoded). Percent-encoded UTF-8, as
encodeURIComponent encodes it, so any language fits in a header:
Rettet%20stavefejl%20p%C3%A5%20forsiden. Plain ASCII may be sent
as is. Other bytes are 400.
A list of distinct values (a repeated value is refused with duplicate_value, an empty string with blank_value). Not available for boolean, long_text, rich_text and json fields.
When a date field's include_time is turned off: the IANA time zone
(e.g. Europe/Copenhagen) whose day each moment falls on. Default:
the field's time_zone, else UTC. Refused for any other change.
safe: every value converts unchanged in meaning. convertible: every value converts, the representation changes. conditional: some values may not convert.
{"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/migrations/migrate-a-field","slug":"/api-reference/migrations/migrate-a-field","pageMetadata":{"title":"Migrate a field","description":"Changes one of the collection's fields (`field_id`) in a way that\nrewrites existing record values: its `type`, `multiple`, a stricter\n`configuration`, a date's `include_time`, or making it `required`\nwith a `backfill` for records that have no value.\n\nEvery record is checked first. With `dry_run=true` the result is a\npreview: counts per outcome and sample records, nothing written. Without\nit, a migration whose values do not all convert is refused (`422`)\nunless `on_invalid` is `clear`; otherwise it is accepted (`202`) and\napplied in the background. Poll `GET /v1/migrations/{migration_id}`.\n\nWhile a migration is pending or running, schema writes to the collection\nreturn `409`, and record writes do once it is running (a pending one may\nwait for others to finish). A value written while it waits that does\nnot convert fails the migration, or is cleared with `on_invalid: clear`. Each record whose data changes gets a\n`migrate` revision, so cleared or converted values stay recoverable.\nA dry run's preview shows sample record values, so it also needs\n`records:read`.\n","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/collections/{collection_id}/migrations","href":"/api-reference/migrations/migrate-a-field","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: [\"Changes one of the collection’s fields (\", _jsx(_components.code, {\n children: \"field_id\"\n }), \") in a way that\\nrewrites existing record values: its \", _jsx(_components.code, {\n children: \"type\"\n }), \", \", _jsx(_components.code, {\n children: \"multiple\"\n }), \", a stricter\\n\", _jsx(_components.code, {\n children: \"configuration\"\n }), \", a date’s \", _jsx(_components.code, {\n children: \"include_time\"\n }), \", or making it \", _jsx(_components.code, {\n children: \"required\"\n }), \"\\nwith a \", _jsx(_components.code, {\n children: \"backfill\"\n }), \" for records that have no value.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Every record is checked first. With \", _jsx(_components.code, {\n children: \"dry_run=true\"\n }), \" the result is a\\npreview: counts per outcome and sample records, nothing written. Without\\nit, a migration whose values do not all convert is refused (\", _jsx(_components.code, {\n children: \"422\"\n }), \")\\nunless \", _jsx(_components.code, {\n children: \"on_invalid\"\n }), \" is \", _jsx(_components.code, {\n children: \"clear\"\n }), \"; otherwise it is accepted (\", _jsx(_components.code, {\n children: \"202\"\n }), \") and\\napplied in the background. Poll \", _jsx(_components.code, {\n children: \"GET /v1/migrations/{migration_id}\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"While a migration is pending or running, schema writes to the collection\\nreturn \", _jsx(_components.code, {\n children: \"409\"\n }), \", and record writes do once it is running (a pending one may\\nwait for others to finish). A value written while it waits that does\\nnot convert fails the migration, or is cleared with \", _jsx(_components.code, {\n children: \"on_invalid: clear\"\n }), \". Each record whose data changes gets a\\n\", _jsx(_components.code, {\n children: \"migrate\"\n }), \" revision, so cleared or converted values stay recoverable.\\nA dry run’s preview shows sample record values, so it also needs\\n\", _jsx(_components.code, {\n children: \"records:read\"\n }), \".\"]\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":"Migrate a field","description":"Changes one of the collection's fields (`field_id`) in a way that\nrewrites existing record values: its `type`, `multiple`, a stricter\n`configuration`, a date's `include_time`, or making it `required`\nwith a `backfill` for records that have no value.\n\nEvery record is checked first. With `dry_run=true` the result is a\npreview: counts per outcome and sample records, nothing written. Without\nit, a migration whose values do not all convert is refused (`422`)\nunless `on_invalid` is `clear`; otherwise it is accepted (`202`) and\napplied in the background. Poll `GET /v1/migrations/{migration_id}`.\n\nWhile a migration is pending or running, schema writes to the collection\nreturn `409`, and record writes do once it is running (a pending one may\nwait for others to finish). A value written while it waits that does\nnot convert fails the migration, or is cleared with `on_invalid: clear`. Each record whose data changes gets a\n`migrate` revision, so cleared or converted values stay recoverable.\nA dry run's preview shows sample record values, so it also needs\n`records:read`.\n","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/collections/{collection_id}/migrations","href":"/api-reference/migrations/migrate-a-field","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"migrations_create","summary":"Migrate a field","description":"Changes one of the collection's fields (`field_id`) in a way that\nrewrites existing record values: its `type`, `multiple`, a stricter\n`configuration`, a date's `include_time`, or making it `required`\nwith a `backfill` for records that have no value.\n\nEvery record is checked first. With `dry_run=true` the result is a\npreview: counts per outcome and sample records, nothing written. Without\nit, a migration whose values do not all convert is refused (`422`)\nunless `on_invalid` is `clear`; otherwise it is accepted (`202`) and\napplied in the background. Poll `GET /v1/migrations/{migration_id}`.\n\nWhile a migration is pending or running, schema writes to the collection\nreturn `409`, and record writes do once it is running (a pending one may\nwait for others to finish). A value written while it waits that does\nnot convert fails the migration, or is cleared with `on_invalid: clear`. Each record whose data changes gets a\n`migrate` revision, so cleared or converted values stay recoverable.\nA dry run's preview shows sample record values, so it also needs\n`records:read`.\n","tags":["migrations"],"parameters":["0699e799-42b5-4cde-8438-9def5e68ff48","addd265f-146d-4794-af74-450ff355edd7","df389064-d241-4b9d-af9f-b07ae159547d","1807de92-1d4a-4435-ae5a-b0b3d5e095e4"],"requestBody":"301069f8-e8d3-45be-8a84-292daa47dbd0","responses":{"200":"db373d6f-4458-4625-bbc8-302848897664","202":"6a410a64-7726-4a3a-9365-f7e314179a07","400":"96afbb00-27f8-43d9-9636-cfa52b9c4166","401":"6d5290ae-ecba-4652-acd8-8dda3088e19e","403":"e10ec92c-3760-4c80-bc4b-c9fc08819ac2","404":"0544b988-db8d-4430-9105-701b017b4a65","409":"448c2a42-a48d-4f13-b50c-247ba9f8f584","422":"3aeaf667-4dd5-42bf-8464-cb66a187976d","429":"44062587-12e8-47f5-b408-9ce48fe75da2"},"x-codeSamples":[{"lang":"typescript","label":"TypeScript","source":"import { Nohead } from \"@nohead/sdk\"\n\nconst nohead = new Nohead()\n\nconst result = await nohead.migrations.create(\"posts\", {\n field_id: \"fld_01J9ZQ3F8X\",\n type: \"long_text\",\n dry_run: true,\n})\n"},{"lang":"python","label":"Python","source":"from nohead import Nohead\n\nnohead = Nohead()\n\nresult = nohead.migrations.create(\n \"posts\", field_id=\"fld_01J9ZQ3F8X\", type=\"long_text\", dry_run=True\n)\n"},{"lang":"ruby","label":"Ruby","source":"require \"nohead\"\n\nnohead = Nohead::Client.new\n\nresult = nohead.migrations.create(\"posts\", field_id: \"fld_01J9ZQ3F8X\", type: \"long_text\", dry_run: true)\n"}],"method":"post","type":"path","servers":["8bbbb494-a028-4201-ac4c-27745b9572a7"],"security":["fdb003e5-f8f3-4ee7-b4f8-ee1029f9c030"],"path":"/v1/collections/{collection_id}/migrations","baseUrlOptions":["https://api.nohead.io"],"title":"Migrate a field","codeSamples":[{"label":"TypeScript","lang":"typescript","source":"import { Nohead } from \"@nohead/sdk\"\n\nconst nohead = new Nohead()\n\nconst result = await nohead.migrations.create(\"posts\", {\n field_id: \"fld_01J9ZQ3F8X\",\n type: \"long_text\",\n dry_run: true,\n})\n"},{"label":"Python","lang":"python","source":"from nohead import Nohead\n\nnohead = Nohead()\n\nresult = nohead.migrations.create(\n \"posts\", field_id=\"fld_01J9ZQ3F8X\", type=\"long_text\", dry_run=True\n)\n"},{"label":"Ruby","lang":"ruby","source":"require \"nohead\"\n\nnohead = Nohead::Client.new\n\nresult = nohead.migrations.create(\"posts\", field_id: \"fld_01J9ZQ3F8X\", type: \"long_text\", dry_run: true)\n"}],"requestExampleLanguages":["bash","typescript","python","ruby"],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"0699e799-42b5-4cde-8438-9def5e68ff48":{"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"},"addd265f-146d-4794-af74-450ff355edd7":{"name":"dry_run","in":"query","schema":{"type":"boolean","default":false,"uniqueKey":"","typeLabel":"boolean"}},"df389064-d241-4b9d-af9f-b07ae159547d":{"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"}},"1807de92-1d4a-4435-ae5a-b0b3d5e095e4":{"name":"Nohead-Change-Note","in":"header","description":"Optional reason for the change, kept with the record revision, schema\nchange or field migration it makes (at most 500 characters once\ndecoded). Percent-encoded UTF-8, as\n`encodeURIComponent` encodes it, so any language fits in a header:\n`Rettet%20stavefejl%20p%C3%A5%20forsiden`. Plain ASCII may be sent\nas is. Other bytes are `400`.\n","schema":{"type":"string","description":"Optional reason for the change, kept with the record revision, schema\nchange or field migration it makes (at most 500 characters once\ndecoded). Percent-encoded UTF-8, as\n`encodeURIComponent` encodes it, so any language fits in a header:\n`Rettet%20stavefejl%20p%C3%A5%20forsiden`. Plain ASCII may be sent\nas is. Other bytes are `400`.\n","uniqueKey":"","typeLabel":"string"}},"ef233253-6859-40ce-b2ee-1de9e7b49c7c":{"name":"collection_id","in":"path","required":true,"description":"Collection ID, or the collection slug when authenticating with an API key.","schema":{"type":"string","isRequired":true,"description":"Collection ID, or the collection slug when authenticating with an API key.","uniqueKey":"","typeLabel":"string"},"example":"col_01J9ZQ3F8X5W2K7M4N6P0R1S2T"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["field_id"],"description":"The field, and the parts of its definition to change; omitted parts stay as they are.","properties":{"field_id":{"type":"string","description":"One of the collection's fields (`422` otherwise).","examples":["fld_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"field_id","typeLabel":"string"},"type":{"type":"string","enum":["text","long_text","rich_text","integer","decimal","date","boolean","enum","asset","relation","json"],"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"configuration":{"oneOf":[{"type":"object","description":"The complete new configuration. When the type changes and this is omitted, only `description`, `searchable`, `filterable` and `sortable` carry over.","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"configuration.oneOf.0.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"configuration.oneOf.0.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"configuration.oneOf.0.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"configuration.oneOf.0.sortable","typeLabel":"boolean"},"min_length":{"type":"integer","minimum":0,"uniqueKey":"configuration.oneOf.0.min_length","typeLabel":"integer"},"max_length":{"type":"integer","minimum":0,"uniqueKey":"configuration.oneOf.0.max_length","typeLabel":"integer"},"format":{"type":"string","enum":["slug","url","email"],"description":"`slug` (always unique, one value), `url` (absolute http or https) or `email`; each sets its own length limits.","uniqueKey":"configuration.oneOf.0.format","typeLabel":"enum\u003cstring>"},"unique":{"type":"boolean","description":"No two active records of the collection share a value (one value only; a slug is always unique).","uniqueKey":"configuration.oneOf.0.unique","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"configuration.oneOf.0","typeLabel":"object"},{"type":"object","description":"The complete new configuration. When the type changes and this is omitted, only `description`, `searchable`, `filterable` and `sortable` carry over.","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"configuration.oneOf.1.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"configuration.oneOf.1.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"configuration.oneOf.1.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"configuration.oneOf.1.sortable","typeLabel":"boolean"},"min_length":{"type":"integer","minimum":0,"uniqueKey":"configuration.oneOf.1.min_length","typeLabel":"integer"},"max_length":{"type":"integer","minimum":0,"uniqueKey":"configuration.oneOf.1.max_length","typeLabel":"integer"}},"additionalProperties":false,"uniqueKey":"configuration.oneOf.1","typeLabel":"object"},{"type":"object","description":"The complete new configuration. When the type changes and this is omitted, only `description`, `searchable`, `filterable` and `sortable` carry over.","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"configuration.oneOf.2.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"configuration.oneOf.2.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"configuration.oneOf.2.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"configuration.oneOf.2.sortable","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"configuration.oneOf.2","typeLabel":"object"},{"type":"object","description":"The complete new configuration. When the type changes and this is omitted, only `description`, `searchable`, `filterable` and `sortable` carry over.","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"configuration.oneOf.3.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"configuration.oneOf.3.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"configuration.oneOf.3.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"configuration.oneOf.3.sortable","typeLabel":"boolean"},"min":{"type":"integer","uniqueKey":"configuration.oneOf.3.min","typeLabel":"integer"},"max":{"type":"integer","uniqueKey":"configuration.oneOf.3.max","typeLabel":"integer"},"unique":{"type":"boolean","description":"No two active records of the collection share a value (one value only).","uniqueKey":"configuration.oneOf.3.unique","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"configuration.oneOf.3","typeLabel":"object"},{"type":"object","description":"The complete new configuration. When the type changes and this is omitted, only `description`, `searchable`, `filterable` and `sortable` carry over.","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"configuration.oneOf.4.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"configuration.oneOf.4.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"configuration.oneOf.4.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"configuration.oneOf.4.sortable","typeLabel":"boolean"},"min":{"type":"number","uniqueKey":"configuration.oneOf.4.min","typeLabel":"number"},"max":{"type":"number","uniqueKey":"configuration.oneOf.4.max","typeLabel":"number"}},"additionalProperties":false,"uniqueKey":"configuration.oneOf.4","typeLabel":"object"},{"type":"object","description":"The complete new configuration. When the type changes and this is omitted, only `description`, `searchable`, `filterable` and `sortable` carry over.","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"configuration.oneOf.5.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"configuration.oneOf.5.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"configuration.oneOf.5.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"configuration.oneOf.5.sortable","typeLabel":"boolean"},"include_time":{"type":"boolean","description":"Holds a moment (ISO 8601 with an offset) instead of a calendar date; changing it is a field migration.","uniqueKey":"configuration.oneOf.5.include_time","typeLabel":"boolean"},"time_zone":{"type":"string","description":"An IANA time zone (`Europe/Copenhagen`) moments are returned in; changing it never rewrites values.","uniqueKey":"configuration.oneOf.5.time_zone","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"configuration.oneOf.5","typeLabel":"object"},{"type":"object","description":"The complete new configuration. When the type changes and this is omitted, only `description`, `searchable`, `filterable` and `sortable` carry over.","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"configuration.oneOf.6.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"configuration.oneOf.6.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"configuration.oneOf.6.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"configuration.oneOf.6.sortable","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"configuration.oneOf.6","typeLabel":"object"},{"type":"object","description":"The complete new configuration. When the type changes and this is omitted, only `description`, `searchable`, `filterable` and `sortable` carry over.","required":["options"],"properties":{"options":{"type":"array","minItems":1,"maxItems":500,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":100,"uniqueKey":"configuration.oneOf.7.options.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"configuration.oneOf.7.options","typeLabel":"string[]"},"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"configuration.oneOf.7.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"configuration.oneOf.7.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"configuration.oneOf.7.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"configuration.oneOf.7.sortable","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"configuration.oneOf.7","typeLabel":"object"},{"type":"object","description":"The complete new configuration. When the type changes and this is omitted, only `description`, `searchable`, `filterable` and `sortable` carry over.","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"configuration.oneOf.8.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"configuration.oneOf.8.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"configuration.oneOf.8.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"configuration.oneOf.8.sortable","typeLabel":"boolean"},"accepted_types":{"type":"array","maxItems":50,"description":"MIME types or `type/*` wildcards newly written values must have (`[\"image/*\", \"application/pdf\"]`); any file when absent.","items":{"type":"string","uniqueKey":"configuration.oneOf.8.accepted_types.items.[INDEX]","typeLabel":"string"},"uniqueKey":"configuration.oneOf.8.accepted_types","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"configuration.oneOf.8","typeLabel":"object"},{"type":"object","description":"The complete new configuration. When the type changes and this is omitted, only `description`, `searchable`, `filterable` and `sortable` carry over.","required":["target_collection_id"],"properties":{"target_collection_id":{"type":"string","description":"The collection (same project) whose records it points at.","isRequired":true,"uniqueKey":"configuration.oneOf.9.target_collection_id","typeLabel":"string"},"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"configuration.oneOf.9.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"configuration.oneOf.9.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"configuration.oneOf.9.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"configuration.oneOf.9.sortable","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"configuration.oneOf.9","typeLabel":"object"},{"type":"object","description":"The complete new configuration. When the type changes and this is omitted, only `description`, `searchable`, `filterable` and `sortable` carry over.","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"configuration.oneOf.10.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"configuration.oneOf.10.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"configuration.oneOf.10.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"configuration.oneOf.10.sortable","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"configuration.oneOf.10","typeLabel":"object"}],"uniqueKey":"configuration","typeLabel":"object"},"multiple":{"type":"boolean","description":"A list of distinct values (a repeated value is refused with `duplicate_value`, an empty string with `blank_value`). Not available for boolean, long_text, rich_text and json fields.","uniqueKey":"multiple","typeLabel":"boolean"},"required":{"type":"boolean","uniqueKey":"required","typeLabel":"boolean"},"backfill":{"description":"Value for active records that have no value, validated like a record value of the new definition; an empty string is refused with `blank_value`.","uniqueKey":"backfill","typeLabel":"any"},"on_invalid":{"type":"string","enum":["fail","clear"],"default":"fail","description":"`clear` removes values that cannot be converted (or backfills them); `fail` refuses the migration.","uniqueKey":"on_invalid","typeLabel":"enum\u003cstring>"},"time_zone":{"type":"string","description":"When a date field's `include_time` is turned off: the IANA time zone\n(e.g. `Europe/Copenhagen`) whose day each moment falls on. Default:\nthe field's `time_zone`, else UTC. Refused for any other change.\n","examples":["Europe/Copenhagen"],"uniqueKey":"time_zone","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"field_id":"fld_01J9ZQ3F8X5W2K7M4N6P0R1S2T","configuration":{"description":"\u003cstring>","searchable":true,"filterable":true,"sortable":true,"min_length":1,"max_length":1,"unique":true},"multiple":true,"required":true,"backfill":"\u003cunknown>","on_invalid":"fail","time_zone":"Europe/Copenhagen"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"db373d6f-4458-4625-bbc8-302848897664":{"description":"A preview (dry runs only).","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["object","field_id","from","to","conversion","records","samples"],"properties":{"object":{"const":"field_migration_preview","isRequired":true,"uniqueKey":"object","typeLabel":"any"},"field_id":{"type":"string","isRequired":true,"uniqueKey":"field_id","typeLabel":"string"},"from":{"type":"object","additionalProperties":false,"required":["type","configuration","multiple","required"],"properties":{"type":{"type":"string","enum":["text","long_text","rich_text","integer","decimal","date","boolean","enum","asset","relation","json"],"isRequired":true,"uniqueKey":"from.type","typeLabel":"enum\u003cstring>"},"configuration":{"oneOf":[{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.0.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.0.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.0.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.0.sortable","typeLabel":"boolean"},"min_length":{"type":"integer","minimum":0,"uniqueKey":"from.configuration.oneOf.0.min_length","typeLabel":"integer"},"max_length":{"type":"integer","minimum":0,"uniqueKey":"from.configuration.oneOf.0.max_length","typeLabel":"integer"},"format":{"type":"string","enum":["slug","url","email"],"description":"`slug` (always unique, one value), `url` (absolute http or https) or `email`; each sets its own length limits.","uniqueKey":"from.configuration.oneOf.0.format","typeLabel":"enum\u003cstring>"},"unique":{"type":"boolean","description":"No two active records of the collection share a value (one value only; a slug is always unique).","uniqueKey":"from.configuration.oneOf.0.unique","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.0","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.1.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.1.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.1.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.1.sortable","typeLabel":"boolean"},"min_length":{"type":"integer","minimum":0,"uniqueKey":"from.configuration.oneOf.1.min_length","typeLabel":"integer"},"max_length":{"type":"integer","minimum":0,"uniqueKey":"from.configuration.oneOf.1.max_length","typeLabel":"integer"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.1","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.2.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.2.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.2.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.2.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.2","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.3.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.3.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.3.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.3.sortable","typeLabel":"boolean"},"min":{"type":"integer","uniqueKey":"from.configuration.oneOf.3.min","typeLabel":"integer"},"max":{"type":"integer","uniqueKey":"from.configuration.oneOf.3.max","typeLabel":"integer"},"unique":{"type":"boolean","description":"No two active records of the collection share a value (one value only).","uniqueKey":"from.configuration.oneOf.3.unique","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.3","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.4.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.4.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.4.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.4.sortable","typeLabel":"boolean"},"min":{"type":"number","uniqueKey":"from.configuration.oneOf.4.min","typeLabel":"number"},"max":{"type":"number","uniqueKey":"from.configuration.oneOf.4.max","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.4","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.5.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.5.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.5.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.5.sortable","typeLabel":"boolean"},"include_time":{"type":"boolean","description":"Holds a moment (ISO 8601 with an offset) instead of a calendar date; changing it is a field migration.","uniqueKey":"from.configuration.oneOf.5.include_time","typeLabel":"boolean"},"time_zone":{"type":"string","description":"An IANA time zone (`Europe/Copenhagen`) moments are returned in; changing it never rewrites values.","uniqueKey":"from.configuration.oneOf.5.time_zone","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.5","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.6.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.6.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.6.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.6.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.6","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","required":["options"],"properties":{"options":{"type":"array","minItems":1,"maxItems":500,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":100,"uniqueKey":"from.configuration.oneOf.7.options.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"from.configuration.oneOf.7.options","typeLabel":"string[]"},"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.7.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.7.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.7.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.7.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.7","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.8.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.8.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.8.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.8.sortable","typeLabel":"boolean"},"accepted_types":{"type":"array","maxItems":50,"description":"MIME types or `type/*` wildcards newly written values must have (`[\"image/*\", \"application/pdf\"]`); any file when absent.","items":{"type":"string","uniqueKey":"from.configuration.oneOf.8.accepted_types.items.[INDEX]","typeLabel":"string"},"uniqueKey":"from.configuration.oneOf.8.accepted_types","typeLabel":"string[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.8","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","required":["target_collection_id"],"properties":{"target_collection_id":{"type":"string","description":"The collection (same project) whose records it points at.","isRequired":true,"uniqueKey":"from.configuration.oneOf.9.target_collection_id","typeLabel":"string"},"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.9.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.9.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.9.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.9.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.9","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.10.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.10.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.10.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.10.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.10","typeLabel":"object"}],"isRequired":true,"uniqueKey":"from.configuration","typeLabel":"object"},"multiple":{"type":"boolean","description":"A list of distinct values (a repeated value is refused with `duplicate_value`, an empty string with `blank_value`). Not available for boolean, long_text, rich_text and json fields.","isRequired":true,"uniqueKey":"from.multiple","typeLabel":"boolean"},"required":{"type":"boolean","isRequired":true,"uniqueKey":"from.required","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"from","typeLabel":"object"},"to":{"type":"object","additionalProperties":false,"required":["type","configuration","multiple","required"],"properties":{"type":{"type":"string","enum":["text","long_text","rich_text","integer","decimal","date","boolean","enum","asset","relation","json"],"isRequired":true,"uniqueKey":"to.type","typeLabel":"enum\u003cstring>"},"configuration":{"oneOf":[{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.0.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.0.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.0.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.0.sortable","typeLabel":"boolean"},"min_length":{"type":"integer","minimum":0,"uniqueKey":"to.configuration.oneOf.0.min_length","typeLabel":"integer"},"max_length":{"type":"integer","minimum":0,"uniqueKey":"to.configuration.oneOf.0.max_length","typeLabel":"integer"},"format":{"type":"string","enum":["slug","url","email"],"description":"`slug` (always unique, one value), `url` (absolute http or https) or `email`; each sets its own length limits.","uniqueKey":"to.configuration.oneOf.0.format","typeLabel":"enum\u003cstring>"},"unique":{"type":"boolean","description":"No two active records of the collection share a value (one value only; a slug is always unique).","uniqueKey":"to.configuration.oneOf.0.unique","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.0","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.1.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.1.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.1.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.1.sortable","typeLabel":"boolean"},"min_length":{"type":"integer","minimum":0,"uniqueKey":"to.configuration.oneOf.1.min_length","typeLabel":"integer"},"max_length":{"type":"integer","minimum":0,"uniqueKey":"to.configuration.oneOf.1.max_length","typeLabel":"integer"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.1","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.2.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.2.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.2.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.2.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.2","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.3.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.3.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.3.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.3.sortable","typeLabel":"boolean"},"min":{"type":"integer","uniqueKey":"to.configuration.oneOf.3.min","typeLabel":"integer"},"max":{"type":"integer","uniqueKey":"to.configuration.oneOf.3.max","typeLabel":"integer"},"unique":{"type":"boolean","description":"No two active records of the collection share a value (one value only).","uniqueKey":"to.configuration.oneOf.3.unique","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.3","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.4.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.4.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.4.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.4.sortable","typeLabel":"boolean"},"min":{"type":"number","uniqueKey":"to.configuration.oneOf.4.min","typeLabel":"number"},"max":{"type":"number","uniqueKey":"to.configuration.oneOf.4.max","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.4","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.5.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.5.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.5.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.5.sortable","typeLabel":"boolean"},"include_time":{"type":"boolean","description":"Holds a moment (ISO 8601 with an offset) instead of a calendar date; changing it is a field migration.","uniqueKey":"to.configuration.oneOf.5.include_time","typeLabel":"boolean"},"time_zone":{"type":"string","description":"An IANA time zone (`Europe/Copenhagen`) moments are returned in; changing it never rewrites values.","uniqueKey":"to.configuration.oneOf.5.time_zone","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.5","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.6.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.6.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.6.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.6.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.6","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","required":["options"],"properties":{"options":{"type":"array","minItems":1,"maxItems":500,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":100,"uniqueKey":"to.configuration.oneOf.7.options.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"to.configuration.oneOf.7.options","typeLabel":"string[]"},"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.7.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.7.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.7.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.7.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.7","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.8.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.8.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.8.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.8.sortable","typeLabel":"boolean"},"accepted_types":{"type":"array","maxItems":50,"description":"MIME types or `type/*` wildcards newly written values must have (`[\"image/*\", \"application/pdf\"]`); any file when absent.","items":{"type":"string","uniqueKey":"to.configuration.oneOf.8.accepted_types.items.[INDEX]","typeLabel":"string"},"uniqueKey":"to.configuration.oneOf.8.accepted_types","typeLabel":"string[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.8","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","required":["target_collection_id"],"properties":{"target_collection_id":{"type":"string","description":"The collection (same project) whose records it points at.","isRequired":true,"uniqueKey":"to.configuration.oneOf.9.target_collection_id","typeLabel":"string"},"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.9.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.9.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.9.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.9.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.9","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.10.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.10.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.10.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.10.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.10","typeLabel":"object"}],"isRequired":true,"uniqueKey":"to.configuration","typeLabel":"object"},"multiple":{"type":"boolean","description":"A list of distinct values (a repeated value is refused with `duplicate_value`, an empty string with `blank_value`). Not available for boolean, long_text, rich_text and json fields.","isRequired":true,"uniqueKey":"to.multiple","typeLabel":"boolean"},"required":{"type":"boolean","isRequired":true,"uniqueKey":"to.required","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"to","typeLabel":"object"},"conversion":{"type":"string","enum":["safe","convertible","conditional"],"description":"`safe`: every value converts unchanged in meaning. `convertible`: every value converts, the representation changes. `conditional`: some values may not convert.","isRequired":true,"uniqueKey":"conversion","typeLabel":"enum\u003cstring>"},"records":{"type":"object","additionalProperties":false,"required":["total","unchanged","converted","backfilled","cleared","invalid"],"description":"Records by outcome, including soft-deleted records (which are converted but never backfilled).","properties":{"total":{"type":"integer","isRequired":true,"uniqueKey":"records.total","typeLabel":"integer"},"unchanged":{"type":"integer","isRequired":true,"uniqueKey":"records.unchanged","typeLabel":"integer"},"converted":{"type":"integer","isRequired":true,"uniqueKey":"records.converted","typeLabel":"integer"},"backfilled":{"type":"integer","isRequired":true,"uniqueKey":"records.backfilled","typeLabel":"integer"},"cleared":{"type":"integer","isRequired":true,"uniqueKey":"records.cleared","typeLabel":"integer"},"invalid":{"type":"integer","isRequired":true,"uniqueKey":"records.invalid","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"records","typeLabel":"object"},"samples":{"type":"array","description":"Up to 10 affected records, invalid ones first.","items":{"type":"object","additionalProperties":false,"required":["record_id","deleted_at","outcome","before","after","error"],"properties":{"record_id":{"type":"string","isRequired":true,"uniqueKey":"samples.items.[INDEX].record_id","typeLabel":"string"},"deleted_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"samples.items.[INDEX].deleted_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"samples.items.[INDEX].deleted_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"samples.items.[INDEX].deleted_at","typeLabel":"string\u003cdate-time> | null"},"outcome":{"type":"string","enum":["converted","backfilled","cleared","invalid"],"isRequired":true,"uniqueKey":"samples.items.[INDEX].outcome","typeLabel":"enum\u003cstring>"},"before":{"description":"The stored value before the migration, or null.","isRequired":true,"uniqueKey":"samples.items.[INDEX].before","typeLabel":"any"},"after":{"description":"The value after the migration, or null when cleared or invalid.","isRequired":true,"uniqueKey":"samples.items.[INDEX].after","typeLabel":"any"},"error":{"oneOf":[{"type":"null","isRequired":true,"uniqueKey":"samples.items.[INDEX].error.oneOf.0","typeLabel":"null"},{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"samples.items.[INDEX].error.oneOf.1.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"samples.items.[INDEX].error.oneOf.1.message","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"samples.items.[INDEX].error.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"samples.items.[INDEX].error","typeLabel":"null | object"}},"uniqueKey":"samples.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"samples","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"field_migration_preview","field_id":"\u003cstring>","from":{"type":"text","configuration":{"description":"\u003cstring>","searchable":true,"filterable":true,"sortable":true,"min_length":1,"max_length":1,"format":"slug","unique":true},"multiple":true,"required":true},"to":{"type":"text","configuration":{"description":"\u003cstring>","searchable":true,"filterable":true,"sortable":true,"min_length":1,"max_length":1,"format":"slug","unique":true},"multiple":true,"required":true},"conversion":"safe","records":{"total":123,"unchanged":123,"converted":123,"backfilled":123,"cleared":123,"invalid":123},"samples":[{"record_id":"\u003cstring>","deleted_at":"2023-11-07T05:31:56Z","outcome":"converted","before":"\u003cunknown>","after":"\u003cunknown>","error":{"code":"\u003cstring>","message":"\u003cstring>"}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"6a410a64-7726-4a3a-9365-f7e314179a07":{"description":"The migration was accepted and will be applied in the background.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["id","object","collection_id","field_id","status","from","to","backfill","on_invalid","time_zone","records","failure","schema_change_id","cancel_requested_at","actor","via","note","request_id","created_at","started_at","completed_at"],"properties":{"id":{"type":"string","examples":["mig_01J9ZQ3F8X5W2K7M4N6P0R1S2T"],"isRequired":true,"uniqueKey":"id","typeLabel":"string"},"object":{"const":"field_migration","isRequired":true,"uniqueKey":"object","typeLabel":"any"},"collection_id":{"type":"string","isRequired":true,"uniqueKey":"collection_id","typeLabel":"string"},"field_id":{"type":"string","isRequired":true,"uniqueKey":"field_id","typeLabel":"string"},"status":{"type":"string","enum":["pending","running","complete","failed","cancelled"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"from":{"type":"object","additionalProperties":false,"required":["type","configuration","multiple","required"],"properties":{"type":{"type":"string","enum":["text","long_text","rich_text","integer","decimal","date","boolean","enum","asset","relation","json"],"isRequired":true,"uniqueKey":"from.type","typeLabel":"enum\u003cstring>"},"configuration":{"oneOf":[{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.0.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.0.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.0.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.0.sortable","typeLabel":"boolean"},"min_length":{"type":"integer","minimum":0,"uniqueKey":"from.configuration.oneOf.0.min_length","typeLabel":"integer"},"max_length":{"type":"integer","minimum":0,"uniqueKey":"from.configuration.oneOf.0.max_length","typeLabel":"integer"},"format":{"type":"string","enum":["slug","url","email"],"description":"`slug` (always unique, one value), `url` (absolute http or https) or `email`; each sets its own length limits.","uniqueKey":"from.configuration.oneOf.0.format","typeLabel":"enum\u003cstring>"},"unique":{"type":"boolean","description":"No two active records of the collection share a value (one value only; a slug is always unique).","uniqueKey":"from.configuration.oneOf.0.unique","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.0","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.1.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.1.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.1.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.1.sortable","typeLabel":"boolean"},"min_length":{"type":"integer","minimum":0,"uniqueKey":"from.configuration.oneOf.1.min_length","typeLabel":"integer"},"max_length":{"type":"integer","minimum":0,"uniqueKey":"from.configuration.oneOf.1.max_length","typeLabel":"integer"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.1","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.2.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.2.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.2.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.2.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.2","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.3.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.3.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.3.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.3.sortable","typeLabel":"boolean"},"min":{"type":"integer","uniqueKey":"from.configuration.oneOf.3.min","typeLabel":"integer"},"max":{"type":"integer","uniqueKey":"from.configuration.oneOf.3.max","typeLabel":"integer"},"unique":{"type":"boolean","description":"No two active records of the collection share a value (one value only).","uniqueKey":"from.configuration.oneOf.3.unique","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.3","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.4.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.4.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.4.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.4.sortable","typeLabel":"boolean"},"min":{"type":"number","uniqueKey":"from.configuration.oneOf.4.min","typeLabel":"number"},"max":{"type":"number","uniqueKey":"from.configuration.oneOf.4.max","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.4","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.5.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.5.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.5.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.5.sortable","typeLabel":"boolean"},"include_time":{"type":"boolean","description":"Holds a moment (ISO 8601 with an offset) instead of a calendar date; changing it is a field migration.","uniqueKey":"from.configuration.oneOf.5.include_time","typeLabel":"boolean"},"time_zone":{"type":"string","description":"An IANA time zone (`Europe/Copenhagen`) moments are returned in; changing it never rewrites values.","uniqueKey":"from.configuration.oneOf.5.time_zone","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.5","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.6.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.6.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.6.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.6.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.6","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","required":["options"],"properties":{"options":{"type":"array","minItems":1,"maxItems":500,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":100,"uniqueKey":"from.configuration.oneOf.7.options.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"from.configuration.oneOf.7.options","typeLabel":"string[]"},"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.7.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.7.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.7.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.7.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.7","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.8.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.8.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.8.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.8.sortable","typeLabel":"boolean"},"accepted_types":{"type":"array","maxItems":50,"description":"MIME types or `type/*` wildcards newly written values must have (`[\"image/*\", \"application/pdf\"]`); any file when absent.","items":{"type":"string","uniqueKey":"from.configuration.oneOf.8.accepted_types.items.[INDEX]","typeLabel":"string"},"uniqueKey":"from.configuration.oneOf.8.accepted_types","typeLabel":"string[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.8","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","required":["target_collection_id"],"properties":{"target_collection_id":{"type":"string","description":"The collection (same project) whose records it points at.","isRequired":true,"uniqueKey":"from.configuration.oneOf.9.target_collection_id","typeLabel":"string"},"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.9.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.9.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.9.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.9.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.9","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"from.configuration.oneOf.10.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"from.configuration.oneOf.10.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"from.configuration.oneOf.10.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"from.configuration.oneOf.10.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"from.configuration.oneOf.10","typeLabel":"object"}],"isRequired":true,"uniqueKey":"from.configuration","typeLabel":"object"},"multiple":{"type":"boolean","description":"A list of distinct values (a repeated value is refused with `duplicate_value`, an empty string with `blank_value`). Not available for boolean, long_text, rich_text and json fields.","isRequired":true,"uniqueKey":"from.multiple","typeLabel":"boolean"},"required":{"type":"boolean","isRequired":true,"uniqueKey":"from.required","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"from","typeLabel":"object"},"to":{"type":"object","additionalProperties":false,"required":["type","configuration","multiple","required"],"properties":{"type":{"type":"string","enum":["text","long_text","rich_text","integer","decimal","date","boolean","enum","asset","relation","json"],"isRequired":true,"uniqueKey":"to.type","typeLabel":"enum\u003cstring>"},"configuration":{"oneOf":[{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.0.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.0.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.0.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.0.sortable","typeLabel":"boolean"},"min_length":{"type":"integer","minimum":0,"uniqueKey":"to.configuration.oneOf.0.min_length","typeLabel":"integer"},"max_length":{"type":"integer","minimum":0,"uniqueKey":"to.configuration.oneOf.0.max_length","typeLabel":"integer"},"format":{"type":"string","enum":["slug","url","email"],"description":"`slug` (always unique, one value), `url` (absolute http or https) or `email`; each sets its own length limits.","uniqueKey":"to.configuration.oneOf.0.format","typeLabel":"enum\u003cstring>"},"unique":{"type":"boolean","description":"No two active records of the collection share a value (one value only; a slug is always unique).","uniqueKey":"to.configuration.oneOf.0.unique","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.0","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.1.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.1.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.1.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.1.sortable","typeLabel":"boolean"},"min_length":{"type":"integer","minimum":0,"uniqueKey":"to.configuration.oneOf.1.min_length","typeLabel":"integer"},"max_length":{"type":"integer","minimum":0,"uniqueKey":"to.configuration.oneOf.1.max_length","typeLabel":"integer"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.1","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.2.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.2.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.2.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.2.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.2","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.3.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.3.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.3.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.3.sortable","typeLabel":"boolean"},"min":{"type":"integer","uniqueKey":"to.configuration.oneOf.3.min","typeLabel":"integer"},"max":{"type":"integer","uniqueKey":"to.configuration.oneOf.3.max","typeLabel":"integer"},"unique":{"type":"boolean","description":"No two active records of the collection share a value (one value only).","uniqueKey":"to.configuration.oneOf.3.unique","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.3","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.4.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.4.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.4.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.4.sortable","typeLabel":"boolean"},"min":{"type":"number","uniqueKey":"to.configuration.oneOf.4.min","typeLabel":"number"},"max":{"type":"number","uniqueKey":"to.configuration.oneOf.4.max","typeLabel":"number"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.4","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.5.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.5.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.5.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.5.sortable","typeLabel":"boolean"},"include_time":{"type":"boolean","description":"Holds a moment (ISO 8601 with an offset) instead of a calendar date; changing it is a field migration.","uniqueKey":"to.configuration.oneOf.5.include_time","typeLabel":"boolean"},"time_zone":{"type":"string","description":"An IANA time zone (`Europe/Copenhagen`) moments are returned in; changing it never rewrites values.","uniqueKey":"to.configuration.oneOf.5.time_zone","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.5","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.6.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.6.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.6.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.6.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.6","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","required":["options"],"properties":{"options":{"type":"array","minItems":1,"maxItems":500,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":100,"uniqueKey":"to.configuration.oneOf.7.options.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"to.configuration.oneOf.7.options","typeLabel":"string[]"},"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.7.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.7.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.7.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.7.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.7","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.8.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.8.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.8.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.8.sortable","typeLabel":"boolean"},"accepted_types":{"type":"array","maxItems":50,"description":"MIME types or `type/*` wildcards newly written values must have (`[\"image/*\", \"application/pdf\"]`); any file when absent.","items":{"type":"string","uniqueKey":"to.configuration.oneOf.8.accepted_types.items.[INDEX]","typeLabel":"string"},"uniqueKey":"to.configuration.oneOf.8.accepted_types","typeLabel":"string[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.8","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","required":["target_collection_id"],"properties":{"target_collection_id":{"type":"string","description":"The collection (same project) whose records it points at.","isRequired":true,"uniqueKey":"to.configuration.oneOf.9.target_collection_id","typeLabel":"string"},"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.9.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.9.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.9.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.9.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.9","typeLabel":"object"},{"type":"object","description":"Type-specific options, e.g. `max_length`, `options`, `target_collection_id`,\n`accepted_types` (asset fields: MIME types or `type/*` wildcards that newly\nwritten values must have; any file when absent), `include_time` and\n`time_zone` (date fields, below), `format` (text fields, below),\n`unique` (text and integer fields, below), plus\nthe options for searches with API keys: `searchable` (the search words match the\nfield; default true for text, long_text, rich_text and enum), `filterable` and\n`sortable` (default false).\n\nDate fields hold a calendar date, `YYYY-MM-DD`, with no time and no\ntime zone: returned exactly as written, so it never shows as the day\nbefore or after. With `include_time: true` they hold a moment: ISO\n8601 with an offset, stored in UTC and returned in UTC, or with the\noffset of `time_zone` (an IANA name such as `Europe/Copenhagen`,\ndaylight saving included) when the field has one. Input may use any\noffset. Changing `time_zone` never rewrites values; turning\n`include_time` on or off does, through a field migration.\n\nText fields (not long text) can have a `format`: `slug`\n(lowercase letters, digits and single hyphens, at most 200\ncharacters; one value per record, never a list, and always\nunique: a slug field has `unique: true`), `url` (an absolute\n`http` or `https` address) or `email`. A value that doesn't match is\nrefused with `invalid_format`. A format sets its own length limits\n(254 characters for emails, 2,048 for URLs), so `min_length` and\n`max_length` are for plain text. Text and integer\nfields with one value can be `unique`: no two active records of the\ncollection share a value (emails compare ignoring capitals; records\nwithout a value don't count). A taken value is refused with\n`taken` and the `record_id` that has it. Turning `unique` on is\nrefused with `duplicate_values` while records share a value (and\nso is restoring a deleted unique field, `409`). A field migration\nto a unique field is refused with `duplicate_values` when its\nconverted values or backfill would be shared, and fails if values\nwritten while it waits would be.\n","properties":{"description":{"type":"string","maxLength":500,"description":"Help text for editors.","uniqueKey":"to.configuration.oneOf.10.description","typeLabel":"string"},"searchable":{"type":"boolean","description":"Search words match the field, in every search (API keys, search tokens, members). Default true for text, long_text, rich_text and enum.","uniqueKey":"to.configuration.oneOf.10.searchable","typeLabel":"boolean"},"filterable":{"type":"boolean","description":"API searches can filter on it. Default false.","uniqueKey":"to.configuration.oneOf.10.filterable","typeLabel":"boolean"},"sortable":{"type":"boolean","description":"API searches can sort on it (one value only). Default false.","uniqueKey":"to.configuration.oneOf.10.sortable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"to.configuration.oneOf.10","typeLabel":"object"}],"isRequired":true,"uniqueKey":"to.configuration","typeLabel":"object"},"multiple":{"type":"boolean","description":"A list of distinct values (a repeated value is refused with `duplicate_value`, an empty string with `blank_value`). Not available for boolean, long_text, rich_text and json fields.","isRequired":true,"uniqueKey":"to.multiple","typeLabel":"boolean"},"required":{"type":"boolean","isRequired":true,"uniqueKey":"to.required","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"to","typeLabel":"object"},"backfill":{"oneOf":[{"type":"null","description":"`{\"value\": ...}` when missing values are filled in, otherwise null.","isRequired":true,"uniqueKey":"backfill.oneOf.0","typeLabel":"null"},{"type":"object","description":"`{\"value\": ...}` when missing values are filled in, otherwise null.","required":["value"],"properties":{"value":{"oneOf":[{"isRequired":true}],"isRequired":true,"uniqueKey":"backfill.oneOf.1.value","typeLabel":"any"}},"isRequired":true,"uniqueKey":"backfill.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"backfill","typeLabel":"null | object"},"on_invalid":{"type":"string","enum":["fail","clear"],"isRequired":true,"uniqueKey":"on_invalid","typeLabel":"enum\u003cstring>"},"time_zone":{"oneOf":[{"type":"string","description":"The time zone dates were read in when `include_time` was turned off, if one was given.","isRequired":true,"uniqueKey":"time_zone.oneOf.0","typeLabel":"string"},{"type":"null","description":"The time zone dates were read in when `include_time` was turned off, if one was given.","isRequired":true,"uniqueKey":"time_zone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"time_zone","typeLabel":"string | null"},"records":{"type":"object","additionalProperties":false,"required":["total","unchanged","converted","backfilled","cleared","invalid"],"description":"Records by outcome, including soft-deleted records (which are converted but never backfilled).","properties":{"total":{"type":"integer","isRequired":true,"uniqueKey":"records.total","typeLabel":"integer"},"unchanged":{"type":"integer","isRequired":true,"uniqueKey":"records.unchanged","typeLabel":"integer"},"converted":{"type":"integer","isRequired":true,"uniqueKey":"records.converted","typeLabel":"integer"},"backfilled":{"type":"integer","isRequired":true,"uniqueKey":"records.backfilled","typeLabel":"integer"},"cleared":{"type":"integer","isRequired":true,"uniqueKey":"records.cleared","typeLabel":"integer"},"invalid":{"type":"integer","isRequired":true,"uniqueKey":"records.invalid","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"records","typeLabel":"object"},"failure":{"oneOf":[{"type":"null","description":"Why the migration failed; null otherwise. A failed migration changed nothing.","isRequired":true,"uniqueKey":"failure.oneOf.0","typeLabel":"null"},{"type":"object","description":"Why the migration failed; null otherwise. A failed migration changed nothing.","required":["message"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"failure.oneOf.1.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"failure.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"failure","typeLabel":"null | object"},"schema_change_id":{"oneOf":[{"type":"string","description":"The `migrate_field` schema change, once complete.","isRequired":true,"uniqueKey":"schema_change_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The `migrate_field` schema change, once complete.","isRequired":true,"uniqueKey":"schema_change_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"schema_change_id","typeLabel":"string | null"},"cancel_requested_at":{"oneOf":[{"type":"string","format":"date-time","description":"When cancelling was asked for, while a running migration rolls back.","isRequired":true,"uniqueKey":"cancel_requested_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When cancelling was asked for, while a running migration rolls back.","isRequired":true,"uniqueKey":"cancel_requested_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"cancel_requested_at","typeLabel":"string\u003cdate-time> | null"},"actor":{"type":"object","additionalProperties":false,"required":["type","id","name"],"properties":{"type":{"type":"string","enum":["user","api_key","system"],"isRequired":true,"uniqueKey":"actor.type","typeLabel":"enum\u003cstring>"},"id":{"oneOf":[{"type":"string","description":"The user (`usr_...`) or API key (`key_...`), or null for system changes.","isRequired":true,"uniqueKey":"actor.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The user (`usr_...`) or API key (`key_...`), or null for system changes.","isRequired":true,"uniqueKey":"actor.id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"actor.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":"actor.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":"actor.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"actor.name","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"actor","typeLabel":"object"},"via":{"type":"string","description":"The client a change came through; `scheduler` for scheduled changes.","enum":["ui","api","cli","sdk","mcp","system","scheduler"],"isRequired":true,"uniqueKey":"via","typeLabel":"enum\u003cstring>"},"note":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"note.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"note.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"note","typeLabel":"string | null"},"request_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string | null"},"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>"},"started_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"started_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"started_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"started_at","typeLabel":"string\u003cdate-time> | null"},"completed_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"completed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"completed_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"completed_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"mig_01J9ZQ3F8X5W2K7M4N6P0R1S2T","object":"field_migration","collection_id":"\u003cstring>","field_id":"\u003cstring>","status":"pending","from":{"type":"text","configuration":{"description":"\u003cstring>","searchable":true,"filterable":true,"sortable":true,"min_length":1,"max_length":1,"format":"slug","unique":true},"multiple":true,"required":true},"to":{"type":"text","configuration":{"description":"\u003cstring>","searchable":true,"filterable":true,"sortable":true,"min_length":1,"max_length":1,"format":"slug","unique":true},"multiple":true,"required":true},"backfill":{"value":"\u003cunknown>"},"on_invalid":"fail","time_zone":"\u003cstring>","records":{"total":123,"unchanged":123,"converted":123,"backfilled":123,"cleared":123,"invalid":123},"failure":{"message":"\u003cstring>"},"schema_change_id":"\u003cstring>","cancel_requested_at":"2023-11-07T05:31:56Z","actor":{"type":"user","id":"\u003cstring>","name":"\u003cstring>"},"via":"ui","note":"\u003cstring>","request_id":"\u003cstring>","created_at":"2026-09-27T12:00:00.000Z","started_at":"2023-11-07T05:31:56Z","completed_at":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"96afbb00-27f8-43d9-9636-cfa52b9c4166":{"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"},"6d5290ae-ecba-4652-acd8-8dda3088e19e":{"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"},"e10ec92c-3760-4c80-bc4b-c9fc08819ac2":{"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"},"0544b988-db8d-4430-9105-701b017b4a65":{"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"},"448c2a42-a48d-4f13-b50c-247ba9f8f584":{"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"},"3aeaf667-4dd5-42bf-8464-cb66a187976d":{"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"},"44062587-12e8-47f5-b408-9ce48fe75da2":{"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":"Migrate a field - Nohead","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T14:20:21.080Z","originalFileLocation":"api-reference/migrations/migrate-a-field.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=\"Changes one of the collection\u0026#x27;s fields (field_id) in a way that rewrites existing record values: its type, multiple, a stricter configuration, a date\u0026#x27;s include_time, or making it required with a backfill for records that have no value. Every record is checked first. With dry_run=true the result is a preview: counts per outcome and sample records, nothing written. Without it, a migration whose values do not all convert is refused (422) unless on_invalid is clear; otherwise it is accepted (202) and applied in the background. Poll GET /v1/migrations/{migration_id}. While a migration is pending or running, schema writes to the collection return 409, and record writes do once it is running (a pending one may wait for others to finish). A value written while it waits that does not convert fails the migration, or is cleared with on_invalid: clear. Each record whose data changes gets a migrate revision, so cleared or converted values stay recoverable. A dry run\u0026#x27;s preview shows sample record values, so it also needs records:read.\">\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=\"Migrate a field - Nohead\">\u003cmeta data-mint-head property=\"og:description\" content=\"Changes one of the collection\u0026#x27;s fields (field_id) in a way that rewrites existing record values: its type, multiple, a stricter configuration, a date\u0026#x27;s include_time, or making it required with a backfill for records that have no value. Every record is checked first. With dry_run=true the result is a preview: counts per outcome and sample records, nothing written. Without it, a migration whose values do not all convert is refused (422) unless on_invalid is clear; otherwise it is accepted (202) and applied in the background. Poll GET /v1/migrations/{migration_id}. While a migration is pending or running, schema writes to the collection return 409, and record writes do once it is running (a pending one may wait for others to finish). A value written while it waits that does not convert fails the migration, or is cleared with on_invalid: clear. Each record whose data changes gets a migrate revision, so cleared or converted values stay recoverable. A dry run\u0026#x27;s preview shows sample record values, so it also needs records:read.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Nohead\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.nohead.io/api-reference/migrations/migrate-a-field\">\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=Field+migrations\u0026amp;title=Migrate+a+field\u0026amp;description=Changes+one+of+the+collection%27s+fields+%28%60field_id%60%29+in+a+way+that%0Arewrites+existing+record+values%3A+its+%60type%60%2C+%60multiple%60%2C+a+stricter%0A%60configuration%60%2C+a+date%27s+\u0026amp;theme=5304bc0da6bac525d02ea050\u0026amp;signature=bd08fc301d077be0f644bcf5192a6f6571c91ce31bf2153dc429344a3668f28d\">\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=\"Migrate a field - Nohead\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Changes one of the collection\u0026#x27;s fields (field_id) in a way that rewrites existing record values: its type, multiple, a stricter configuration, a date\u0026#x27;s include_time, or making it required with a backfill for records that have no value. Every record is checked first. With dry_run=true the result is a preview: counts per outcome and sample records, nothing written. Without it, a migration whose values do not all convert is refused (422) unless on_invalid is clear; otherwise it is accepted (202) and applied in the background. Poll GET /v1/migrations/{migration_id}. While a migration is pending or running, schema writes to the collection return 409, and record writes do once it is running (a pending one may wait for others to finish). A value written while it waits that does not convert fails the migration, or is cleared with on_invalid: clear. Each record whose data changes gets a migrate revision, so cleared or converted values stay recoverable. A dry run\u0026#x27;s preview shows sample record values, so it also needs records:read.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://nohead.mintlify.site/_mintlify/api/og/v2?division=Field+migrations\u0026amp;title=Migrate+a+field\u0026amp;description=Changes+one+of+the+collection%27s+fields+%28%60field_id%60%29+in+a+way+that%0Arewrites+existing+record+values%3A+its+%60type%60%2C+%60multiple%60%2C+a+stricter%0A%60configuration%60%2C+a+date%27s+\u0026amp;theme=5304bc0da6bac525d02ea050\u0026amp;signature=bd08fc301d077be0f644bcf5192a6f6571c91ce31bf2153dc429344a3668f28d\">\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/migrations/migrate-a-field\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/migrations/migrate-a-field.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/migrations/migrate-a-field#webpage\",\"url\":\"https://docs.nohead.io/api-reference/migrations/migrate-a-field\",\"name\":\"Migrate a field\",\"description\":\"Changes one of the collection's fields (field_id) in a way that rewrites existing record values: its type, multiple, a stricter configuration, a date's include_time, or making it required with a backfill for records that have no value. Every record is checked first. With dry_run=true the result is a preview: counts per outcome and sample records, nothing written. Without it, a migration whose values do not all convert is refused (422) unless on_invalid is clear; otherwise it is accepted (202) and applied in the background. Poll GET /v1/migrations/{migration_id}. While a migration is pending or running, schema writes to the collection return 409, and record writes do once it is running (a pending one may wait for others to finish). A value written while it waits that does not convert fails the migration, or is cleared with on_invalid: clear. Each record whose data changes gets a migrate revision, so cleared or converted values stay recoverable. A dry run's preview shows sample record values, so it also needs records:read.\",\"dateModified\":\"2026-11-05T14:20:21.080Z\",\"isPartOf\":{\"@id\":\"https://docs.nohead.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.nohead.io/api-reference/migrations/migrate-a-field#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.nohead.io/api-reference/migrations/migrate-a-field#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.nohead.io/api-reference/records/list-records\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Field migrations\",\"item\":\"https://docs.nohead.io/api-reference/migrations/list-field-migrations\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Migrate a field\",\"item\":\"https://docs.nohead.io/api-reference/migrations/migrate-a-field\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.nohead.io/api-reference/migrations/migrate-a-field#apireference\",\"headline\":\"Migrate a field\",\"name\":\"Migrate a field\",\"description\":\"Changes one of the collection's fields (field_id) in a way that rewrites existing record values: its type, multiple, a stricter configuration, a date's include_time, or making it required with a backfill for records that have no value. Every record is checked first. With dry_run=true the result is a preview: counts per outcome and sample records, nothing written. Without it, a migration whose values do not all convert is refused (422) unless on_invalid is clear; otherwise it is accepted (202) and applied in the background. Poll GET /v1/migrations/{migration_id}. While a migration is pending or running, schema writes to the collection return 409, and record writes do once it is running (a pending one may wait for others to finish). A value written while it waits that does not convert fails the migration, or is cleared with on_invalid: clear. Each record whose data changes gets a migrate revision, so cleared or converted values stay recoverable. A dry run's preview shows sample record values, so it also needs records:read.\",\"url\":\"https://docs.nohead.io/api-reference/migrations/migrate-a-field\",\"mainEntityOfPage\":{\"@id\":\"https://docs.nohead.io/api-reference/migrations/migrate-a-field#webpage\"},\"dateModified\":\"2026-11-05T14:20:21.080Z\",\"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","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","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","description":"The collection's field migrations, newest first. Published-only API keys get `403`.","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","description":"Published-only API keys get `403`.","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":"Migrate a field - 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"]}