> For the complete documentation index, see [llms.txt](https://knowledgebase.fabricdata.com/studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://knowledgebase.fabricdata.com/studio/integrations-and-apis/origin-studio-production-api/fields.md).

# Fields

Manage Fields in the context of a tenant. A Field defines a data point that can be stored on a Record — for example, a synopsis, genre list, or release year. Fields may include a validation schema that the system enforces when data is saved. All tenants have access to a shared set of system-owned fields representing the standard metadata for a title. Tenants may also create their own custom fields.

## Get fields

> Returns all metadata fields available to the current tenant, including both system-provisioned fields (shared across all tenants) and tenant-specific custom fields. Use \`filter.workType\` to retrieve fields with layout position context. Use \`include=dataset\` or \`include=dataset.items\` to embed the linked controlled-vocabulary dataset in the response.

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"tags":[{"name":"Fields","description":"Manage Fields in the context of a tenant. A Field defines a data point that can be stored on a Record — for example, a synopsis, genre list, or release year. Fields may include a validation schema that the system enforces when data is saved. All tenants have access to a shared set of system-owned fields representing the standard metadata for a title. Tenants may also create their own custom fields."}],"servers":[{"url":"{protocol}://{domain}/{basePath}","variables":{"protocol":{"enum":["http","https"],"default":"https"},"domain":{"default":"api.studio.fabricdata.com"},"basePath":{"default":"v1"}}}],"security":[{"jwt-apikey-authorizer":[]}],"components":{"securitySchemes":{"jwt-apikey-authorizer":{"type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"FieldFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldFindManyResponse","description":"Paginated response for listing metadata fields. The `data` array contains field resources matching the applied filters. When `include=dataset` or `include=dataset.items` is requested, the `included` array contains the related datasets and optionally their items. Pagination is cursor-based: use `meta.cursor` with a `next` link to retrieve the next page.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Field"}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"},"next":{"type":["string","null"]}},"additionalProperties":false},"included":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/Dataset"},{"$ref":"#/components/schemas/DatasetItem"}]}},"meta":{"type":"object","properties":{"cursor":{"type":"string"}},"additionalProperties":false}}},"Field":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IField","description":"A JSON:API field resource representing a metadata field that can be attached to records within a tenant. Fields have a label (display name), a unique key, a JSON schema defining the value structure, and a dataset relationship that constrains the valid values. When retrieved with `filter.workType`, the `section` relationship indicates where the field appears in the record layout.","allOf":[{"type":"object","required":["id","type","attributes","meta","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["fields"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/FieldAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"additionalProperties":false},"relationships":{"type":"object","additionalProperties":false,"properties":{"tenant":{"type":"object","required":["data","links"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"additionalProperties":false},"links":{"type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}},"dataset":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]},"meta":{"type":"object","required":["tenantId"],"properties":{"tenantId":{"type":"string"},"localized":{"type":"boolean"},"validKeys":{"type":"array","items":{"type":"string"},"description":"Valid dataset item keys for non-localized datasets or default keys for localized datasets"},"validKeysByLocale":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Valid dataset item keys by locale for localized datasets"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"section":{"type":"object","additionalProperties":false,"description":"Section relationship from the record layout. Only included when filter.workType is provided.","properties":{"data":{"type":"object","required":["id","key","label"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"}}}}}}}}}]},"FieldAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldAttributes","description":"Attributes of a metadata field. `label` is the human-readable display name. `key` is the machine-readable identifier used in record data storage. `schema` is a JSON Schema object defining the structure and validation rules for the field's values. `localized` indicates whether the field stores separate values per locale. `dataSource` distinguishes system-provisioned fields (`fabric`) from tenant-created ones (`custom`).","type":"object","required":["label","dataSource","key","localized"],"additionalProperties":false,"properties":{"label":{"type":"string","description":"Human-readable display name for the field shown in the UI. Example: `\"Release Year\"`, `\"Genre\"`, `\"Synopsis\"`."},"key":{"type":"string","description":"Stable machine-readable identifier for the field used when reading and writing record data. Example: `\"release_year\"`, `\"genre\"`. Cannot be changed after creation."},"schema":{"type":"object","description":"Generated JSON Schema fragment describing the shape and validation rules for this field's value. Derived automatically from `dataType`, `list`, `localized`, and `dataValidation` on create. Read-only on the response.","properties":{"type":{"type":"string"},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","properties":{"field":{"type":"object","properties":{"type":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"}},"required":["type"]}},"required":["type"]}}}},"additionalProperties":false},"dataSource":{"type":"string","description":"Indicates who owns the field. `fabric` means it is a system-provisioned field shared across all tenants (read-only, cannot be deleted). `custom` means it was created by the tenant and can be modified or deleted. Example: `\"fabric\"`, `\"custom\"`."},"localized":{"type":"boolean","description":"When `true`, the field stores a separate value per locale (e.g. one synopsis in English and another in French). When `false`, a single value is stored regardless of locale."},"supportsInheritance":{"type":"boolean","description":"When `true`, this field's value can be inherited from a parent record (for example a Season inheriting from a Series). Authorization policies may use this flag to control inheritance behaviour."},"supportsKeywordSearch":{"type":"boolean","description":"When `true`, this text field is mapped with a `.keyword` subfield in OpenSearch and `eq` queries use an exact-match term query on the keyword subfield instead of match_phrase. Typically enabled for identifier fields (e.g. Origin ID, EIDR ID)."},"list":{"type":"boolean","description":"When `true`, the field stores multiple values (an array). When `false`, the field stores a single scalar value. For example, a `genre` field is typically a list while a `release_year` field is not."},"uiComponent":{"type":"string","description":"Hint for the UI about which input component to render for this field. Common values: `TextInput`, `TextArea`, `NumberInput`, `ToggleSwitch`, `Date`, `DateTime`, `Time`, `Select`, `MultiSelect`, `Autocomplete`, `AutocompleteSelect`, `AutocompleteMultiSelect`, `DataGrid`, `Custom`."},"uiSpan":{"type":"number","description":"Hint for the UI about how much horizontal space to allocate for this field when rendering forms."},"propertiesAttributes":{"type":"object","description":"Extensible map of additional display or configuration metadata for the field. The structure is open-ended and used by the UI to carry extra rendering hints. Not validated by the API.","additionalProperties":true}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"Dataset":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataset","description":"A JSON:API dataset resource representing a controlled vocabulary or lookup list used to constrain field values. Datasets can be localized (items keyed by locale) or non-localized. When `allowCustomItems` is false, the dataset is locked — items may only be managed by Fabric.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"allowCustomItems":{"type":"boolean","description":"Indicates if users can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"additionalProperties":false},"relationships":{"type":"object","properties":{"tenant":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false},"items":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false}},"required":["tenant"],"additionalProperties":false}},"required":["attributes","meta"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"DatasetAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetAttributes","description":"Attributes of a dataset. `key` is the machine-readable identifier. `label` is the human-readable display name. `localized` indicates whether items are keyed by locale. `availableLocales` lists the supported locales for localized datasets. `dataSource` indicates if the dataset is system-provisioned (`fabric`) or tenant-created (`custom`). `allowCustomItems` controls whether tenants can add, update, or delete items.","type":"object","additionalProperties":false,"properties":{"dataSource":{"type":"string","description":"Data source of the dataset","enum":["fabric","custom"]},"label":{"type":"string","description":"Label for the dataset"},"localized":{"type":"boolean","description":"Indicates if the dataset is localized"},"availableLocales":{"type":"array","description":"Available locales for the dataset","items":{"type":"string"}},"key":{"type":"string","description":"Key attribute of the dataset"},"tenantId":{"type":"string","description":"Tenant ID of the dataset"},"allowCustomItems":{"type":"boolean","description":"Indicates if customers can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"required":["dataSource","label","key"]},"DatasetItem":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItem","description":"A JSON:API dataset item resource representing a single entry in a controlled vocabulary dataset. Each item has a `key` (machine-readable identifier) and `value` (display label). For localized datasets, items also carry a `locale` code.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetItemAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"relationships":{"type":"object","properties":{"dataset":{"$ref":"#/components/schemas/DatasetRelationship"},"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"additionalProperties":false}},"required":["attributes","relationships"],"additionalProperties":false}]},"DatasetItemAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItemAttributes","description":"Attributes of a single dataset item (a controlled vocabulary entry). `key` is the stable machine-readable identifier stored on records. `value` is the human-readable label displayed in the UI. `locale` scopes the item to a specific language/region for localized datasets. `dataSource` indicates whether the item was created by Fabric or by the tenant.","type":"object","additionalProperties":false,"properties":{"locale":{"type":"string","description":"Locale of the dataset item"},"dataSource":{"type":"string","description":"Data source of the dataset item"},"key":{"type":"string","description":"Key attribute of the dataset item"},"value":{"type":"string","description":"Value of the dataset item"}},"required":["key","value"]},"DatasetRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetRelationship","description":"A JSON:API relationship object linking a resource to a dataset. Contains the dataset's `id` and `type`, plus a `links.related` URL for fetching the full dataset resource.","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"ErrorResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IErrorResponse","description":"Standard JSON:API error response returned when a request fails. Contains an `errors` array with one or more error objects (status, title, and optional detail).","type":"object","required":["errors"],"additionalProperties":false,"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"Error":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IError","description":"A single JSON:API error object. `status` is the HTTP status code as a string. `title` is a short, human-readable summary. `detail` provides optional context. `meta` may include structured conflict or authorization details.","type":"object","additionalProperties":false,"required":["status","title"],"properties":{"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","description":"A JSON Pointer to the request field that caused the error (e.g. `/data/attributes/title`).","properties":{"pointer":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true,"properties":{"stack":{"type":"string","description":"Error stack trace. Only present in non-production environments."},"conflictItems":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"unauthorizedItems":{"type":"array","items":{"type":"string"}}}}}}}},"paths":{"/fields":{"get":{"summary":"Get fields","operationId":"fieldFindMany","description":"Returns all metadata fields available to the current tenant, including both system-provisioned fields (shared across all tenants) and tenant-specific custom fields. Use `filter.workType` to retrieve fields with layout position context. Use `include=dataset` or `include=dataset.items` to embed the linked controlled-vocabulary dataset in the response.","tags":["Fields"],"parameters":[{"name":"filter.key","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string"},"description":"Filter fields by one or more keys."},{"name":"filter.dataSource","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string"},"description":"Filter fields by data source."},{"name":"filter.workType","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string"},"description":"Filter fields by workType. When provided, fields are filtered based on record layout structure and include recordLayout relationship with group/section info."},{"name":"filter.id","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string"},"description":"Filter fields by one or more IDs (separated by commas). This filter takes precedence over all other filters."},{"name":"filter.label","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string"},"description":"Filter fields by label."},{"name":"include","description":"Include related resources. Supports multiple values separated by commas.","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string","enum":["dataset","dataset.items","dataset,dataset.items"]}},{"name":"tenantId","description":"The ID of the tenant to retrieve fields for. If not provided, fields for the current tenant will be returned.","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldFindManyResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Create a new field

> Creates a new custom metadata field for the current tenant. Requires \`label\`, \`key\`, and \`dataType\`. The \`key\` must be unique within the tenant and must not collide with the key of a system-provisioned field (\`dataSource: fabric\`) for the tenant; such keys are reserved and the request is rejected with a 400 BadRequestError. The \`key\` cannot be changed after creation. Tenants may create up to 250 custom fields. Optionally link a dataset relationship to constrain the field to a controlled vocabulary.

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"tags":[{"name":"Fields","description":"Manage Fields in the context of a tenant. A Field defines a data point that can be stored on a Record — for example, a synopsis, genre list, or release year. Fields may include a validation schema that the system enforces when data is saved. All tenants have access to a shared set of system-owned fields representing the standard metadata for a title. Tenants may also create their own custom fields."}],"servers":[{"url":"{protocol}://{domain}/{basePath}","variables":{"protocol":{"enum":["http","https"],"default":"https"},"domain":{"default":"api.studio.fabricdata.com"},"basePath":{"default":"v1"}}}],"security":[{"jwt-apikey-authorizer":[]}],"components":{"securitySchemes":{"jwt-apikey-authorizer":{"type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"FieldCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldCreateOneRequest","description":"Request body for creating a new metadata field in a tenant. The `data.attributes` must include `label`, `key`, and `localized`. An optional dataset relationship can be provided to link the field to a valid-values dataset.","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseCreateRequest"},{"type":"object","required":["type"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["fields"]}}},{"type":"object","required":["attributes","relationships"],"additionalProperties":false,"properties":{"attributes":{"required":["label","key","dataType"],"type":"object","additionalProperties":false,"properties":{"label":{"type":"string","description":"Human-readable display name for the field shown in the UI. Example: `\"Release Year\"`, `\"Genre\"`."},"key":{"type":"string","description":"Stable machine-readable identifier for the field. Used when reading and writing record data. Must be unique within the tenant and must not match the key of a system-provisioned field (`dataSource: fabric`) for the tenant; system field keys are reserved. Cannot be changed after creation. Example: `\"release_year\"`, `\"custom_genre\"`."},"localized":{"type":"boolean","description":"When `true`, the field stores a separate value per locale. When `false` (default), a single value is shared across all locales."},"supportsInheritance":{"type":"boolean","nullable":true,"description":"When `true`, this field's value can be inherited from a parent record (for example a Season from a Series). Defaults to `false`."},"supportsKeywordSearch":{"type":"boolean","nullable":true,"description":"When `true`, this text field uses a `.keyword` subfield in OpenSearch for exact-match `eq` queries. Defaults to `false`."},"uiComponent":{"type":"string","description":"Hint for the UI about which input component to render. Common values: `TextInput`, `TextArea`, `NumberInput`, `ToggleSwitch`, `Date`, `DateTime`, `Select`, `Autocomplete`, `AutocompleteMultiSelect`."},"list":{"type":"boolean","description":"When `true`, the field accepts multiple values (an array). When `false` (default), the field accepts a single value. Example: `genre` is a list; `release_year` is not."},"dataSource":{"type":"string","description":"Indicates the origin of the field. Defaults to `custom` for tenant-created fields. Use `fabric` only when provisioning system fields."},"dataType":{"type":"string","enum":["string","number","boolean","dataset"],"default":"string","description":"The data type of the field's value. `string` for text, `number` for numeric values, `boolean` for true/false flags, `dataset` for fields whose valid values are constrained by a dataset (controlled vocabulary)."},"dataValidation":{"type":"object","description":"Optional validation constraints applied to the field's value when a record is saved. Applicable constraints depend on `dataType`: string fields use `minLength`, `maxLength`, `pattern`, `format`; number fields use `minimum`, `maximum`; list fields use `minItems`, `maxItems`.","properties":{"minLength":{"type":"number","nullable":true,"description":"Minimum number of characters for string fields."},"maxLength":{"type":"number","nullable":true,"description":"Maximum number of characters for string fields."},"minimum":{"type":"number","nullable":true,"description":"Minimum numeric value for number fields."},"maximum":{"type":"number","nullable":true,"description":"Maximum numeric value for number fields."},"pattern":{"type":"string","nullable":true,"description":"Regular expression pattern the string value must match."},"format":{"type":"string","nullable":true,"description":"Named format the string value must conform to (e.g. `date`, `date-time`, `uri`)."},"minItems":{"type":"number","nullable":true,"description":"Minimum number of items for list fields (`list: true`)."},"maxItems":{"type":"number","nullable":true,"description":"Maximum number of items for list fields (`list: true`)."}},"additionalProperties":false}}},"relationships":{"type":"object","properties":{"dataset":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"],"additionalProperties":false}},"required":["id","type","meta"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"additionalProperties":false}}}]}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]},"FieldFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldFindOneResponse","description":"Response for retrieving a single metadata field by ID. The `data` object is the field resource. When `include=dataset` or `include=dataset.items` is requested, the `included` array contains the related dataset and optionally its items.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"$ref":"#/components/schemas/Field"},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false},"included":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/Dataset"},{"$ref":"#/components/schemas/DatasetItem"}]}}}},"Field":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IField","description":"A JSON:API field resource representing a metadata field that can be attached to records within a tenant. Fields have a label (display name), a unique key, a JSON schema defining the value structure, and a dataset relationship that constrains the valid values. When retrieved with `filter.workType`, the `section` relationship indicates where the field appears in the record layout.","allOf":[{"type":"object","required":["id","type","attributes","meta","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["fields"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/FieldAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"additionalProperties":false},"relationships":{"type":"object","additionalProperties":false,"properties":{"tenant":{"type":"object","required":["data","links"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"additionalProperties":false},"links":{"type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}},"dataset":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]},"meta":{"type":"object","required":["tenantId"],"properties":{"tenantId":{"type":"string"},"localized":{"type":"boolean"},"validKeys":{"type":"array","items":{"type":"string"},"description":"Valid dataset item keys for non-localized datasets or default keys for localized datasets"},"validKeysByLocale":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Valid dataset item keys by locale for localized datasets"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"section":{"type":"object","additionalProperties":false,"description":"Section relationship from the record layout. Only included when filter.workType is provided.","properties":{"data":{"type":"object","required":["id","key","label"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"}}}}}}}}}]},"FieldAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldAttributes","description":"Attributes of a metadata field. `label` is the human-readable display name. `key` is the machine-readable identifier used in record data storage. `schema` is a JSON Schema object defining the structure and validation rules for the field's values. `localized` indicates whether the field stores separate values per locale. `dataSource` distinguishes system-provisioned fields (`fabric`) from tenant-created ones (`custom`).","type":"object","required":["label","dataSource","key","localized"],"additionalProperties":false,"properties":{"label":{"type":"string","description":"Human-readable display name for the field shown in the UI. Example: `\"Release Year\"`, `\"Genre\"`, `\"Synopsis\"`."},"key":{"type":"string","description":"Stable machine-readable identifier for the field used when reading and writing record data. Example: `\"release_year\"`, `\"genre\"`. Cannot be changed after creation."},"schema":{"type":"object","description":"Generated JSON Schema fragment describing the shape and validation rules for this field's value. Derived automatically from `dataType`, `list`, `localized`, and `dataValidation` on create. Read-only on the response.","properties":{"type":{"type":"string"},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","properties":{"field":{"type":"object","properties":{"type":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"}},"required":["type"]}},"required":["type"]}}}},"additionalProperties":false},"dataSource":{"type":"string","description":"Indicates who owns the field. `fabric` means it is a system-provisioned field shared across all tenants (read-only, cannot be deleted). `custom` means it was created by the tenant and can be modified or deleted. Example: `\"fabric\"`, `\"custom\"`."},"localized":{"type":"boolean","description":"When `true`, the field stores a separate value per locale (e.g. one synopsis in English and another in French). When `false`, a single value is stored regardless of locale."},"supportsInheritance":{"type":"boolean","description":"When `true`, this field's value can be inherited from a parent record (for example a Season inheriting from a Series). Authorization policies may use this flag to control inheritance behaviour."},"supportsKeywordSearch":{"type":"boolean","description":"When `true`, this text field is mapped with a `.keyword` subfield in OpenSearch and `eq` queries use an exact-match term query on the keyword subfield instead of match_phrase. Typically enabled for identifier fields (e.g. Origin ID, EIDR ID)."},"list":{"type":"boolean","description":"When `true`, the field stores multiple values (an array). When `false`, the field stores a single scalar value. For example, a `genre` field is typically a list while a `release_year` field is not."},"uiComponent":{"type":"string","description":"Hint for the UI about which input component to render for this field. Common values: `TextInput`, `TextArea`, `NumberInput`, `ToggleSwitch`, `Date`, `DateTime`, `Time`, `Select`, `MultiSelect`, `Autocomplete`, `AutocompleteSelect`, `AutocompleteMultiSelect`, `DataGrid`, `Custom`."},"uiSpan":{"type":"number","description":"Hint for the UI about how much horizontal space to allocate for this field when rendering forms."},"propertiesAttributes":{"type":"object","description":"Extensible map of additional display or configuration metadata for the field. The structure is open-ended and used by the UI to carry extra rendering hints. Not validated by the API.","additionalProperties":true}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"Dataset":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataset","description":"A JSON:API dataset resource representing a controlled vocabulary or lookup list used to constrain field values. Datasets can be localized (items keyed by locale) or non-localized. When `allowCustomItems` is false, the dataset is locked — items may only be managed by Fabric.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"allowCustomItems":{"type":"boolean","description":"Indicates if users can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"additionalProperties":false},"relationships":{"type":"object","properties":{"tenant":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false},"items":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false}},"required":["tenant"],"additionalProperties":false}},"required":["attributes","meta"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"DatasetAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetAttributes","description":"Attributes of a dataset. `key` is the machine-readable identifier. `label` is the human-readable display name. `localized` indicates whether items are keyed by locale. `availableLocales` lists the supported locales for localized datasets. `dataSource` indicates if the dataset is system-provisioned (`fabric`) or tenant-created (`custom`). `allowCustomItems` controls whether tenants can add, update, or delete items.","type":"object","additionalProperties":false,"properties":{"dataSource":{"type":"string","description":"Data source of the dataset","enum":["fabric","custom"]},"label":{"type":"string","description":"Label for the dataset"},"localized":{"type":"boolean","description":"Indicates if the dataset is localized"},"availableLocales":{"type":"array","description":"Available locales for the dataset","items":{"type":"string"}},"key":{"type":"string","description":"Key attribute of the dataset"},"tenantId":{"type":"string","description":"Tenant ID of the dataset"},"allowCustomItems":{"type":"boolean","description":"Indicates if customers can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"required":["dataSource","label","key"]},"DatasetItem":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItem","description":"A JSON:API dataset item resource representing a single entry in a controlled vocabulary dataset. Each item has a `key` (machine-readable identifier) and `value` (display label). For localized datasets, items also carry a `locale` code.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetItemAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"relationships":{"type":"object","properties":{"dataset":{"$ref":"#/components/schemas/DatasetRelationship"},"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"additionalProperties":false}},"required":["attributes","relationships"],"additionalProperties":false}]},"DatasetItemAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItemAttributes","description":"Attributes of a single dataset item (a controlled vocabulary entry). `key` is the stable machine-readable identifier stored on records. `value` is the human-readable label displayed in the UI. `locale` scopes the item to a specific language/region for localized datasets. `dataSource` indicates whether the item was created by Fabric or by the tenant.","type":"object","additionalProperties":false,"properties":{"locale":{"type":"string","description":"Locale of the dataset item"},"dataSource":{"type":"string","description":"Data source of the dataset item"},"key":{"type":"string","description":"Key attribute of the dataset item"},"value":{"type":"string","description":"Value of the dataset item"}},"required":["key","value"]},"DatasetRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetRelationship","description":"A JSON:API relationship object linking a resource to a dataset. Contains the dataset's `id` and `type`, plus a `links.related` URL for fetching the full dataset resource.","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"ErrorResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IErrorResponse","description":"Standard JSON:API error response returned when a request fails. Contains an `errors` array with one or more error objects (status, title, and optional detail).","type":"object","required":["errors"],"additionalProperties":false,"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"Error":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IError","description":"A single JSON:API error object. `status` is the HTTP status code as a string. `title` is a short, human-readable summary. `detail` provides optional context. `meta` may include structured conflict or authorization details.","type":"object","additionalProperties":false,"required":["status","title"],"properties":{"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","description":"A JSON Pointer to the request field that caused the error (e.g. `/data/attributes/title`).","properties":{"pointer":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true,"properties":{"stack":{"type":"string","description":"Error stack trace. Only present in non-production environments."},"conflictItems":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"unauthorizedItems":{"type":"array","items":{"type":"string"}}}}}}}},"paths":{"/fields":{"post":{"summary":"Create a new field","operationId":"fieldCreateOne","description":"Creates a new custom metadata field for the current tenant. Requires `label`, `key`, and `dataType`. The `key` must be unique within the tenant and must not collide with the key of a system-provisioned field (`dataSource: fabric`) for the tenant; such keys are reserved and the request is rejected with a 400 BadRequestError. The `key` cannot be changed after creation. Tenants may create up to 250 custom fields. Optionally link a dataset relationship to constrain the field to a controlled vocabulary.","tags":["Fields"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldCreateOneRequest"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldFindOneResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Get a field by ID

> Retrieves a single metadata field by its unique ID. Use \`include=dataset\` or \`include=dataset.items\` to embed the linked dataset or its items in the response.

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"tags":[{"name":"Fields","description":"Manage Fields in the context of a tenant. A Field defines a data point that can be stored on a Record — for example, a synopsis, genre list, or release year. Fields may include a validation schema that the system enforces when data is saved. All tenants have access to a shared set of system-owned fields representing the standard metadata for a title. Tenants may also create their own custom fields."}],"servers":[{"url":"{protocol}://{domain}/{basePath}","variables":{"protocol":{"enum":["http","https"],"default":"https"},"domain":{"default":"api.studio.fabricdata.com"},"basePath":{"default":"v1"}}}],"security":[{"jwt-apikey-authorizer":[]}],"components":{"securitySchemes":{"jwt-apikey-authorizer":{"type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"FieldFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldFindOneResponse","description":"Response for retrieving a single metadata field by ID. The `data` object is the field resource. When `include=dataset` or `include=dataset.items` is requested, the `included` array contains the related dataset and optionally its items.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"$ref":"#/components/schemas/Field"},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false},"included":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/Dataset"},{"$ref":"#/components/schemas/DatasetItem"}]}}}},"Field":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IField","description":"A JSON:API field resource representing a metadata field that can be attached to records within a tenant. Fields have a label (display name), a unique key, a JSON schema defining the value structure, and a dataset relationship that constrains the valid values. When retrieved with `filter.workType`, the `section` relationship indicates where the field appears in the record layout.","allOf":[{"type":"object","required":["id","type","attributes","meta","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["fields"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/FieldAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"additionalProperties":false},"relationships":{"type":"object","additionalProperties":false,"properties":{"tenant":{"type":"object","required":["data","links"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"additionalProperties":false},"links":{"type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}},"dataset":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]},"meta":{"type":"object","required":["tenantId"],"properties":{"tenantId":{"type":"string"},"localized":{"type":"boolean"},"validKeys":{"type":"array","items":{"type":"string"},"description":"Valid dataset item keys for non-localized datasets or default keys for localized datasets"},"validKeysByLocale":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Valid dataset item keys by locale for localized datasets"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"section":{"type":"object","additionalProperties":false,"description":"Section relationship from the record layout. Only included when filter.workType is provided.","properties":{"data":{"type":"object","required":["id","key","label"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"}}}}}}}}}]},"FieldAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldAttributes","description":"Attributes of a metadata field. `label` is the human-readable display name. `key` is the machine-readable identifier used in record data storage. `schema` is a JSON Schema object defining the structure and validation rules for the field's values. `localized` indicates whether the field stores separate values per locale. `dataSource` distinguishes system-provisioned fields (`fabric`) from tenant-created ones (`custom`).","type":"object","required":["label","dataSource","key","localized"],"additionalProperties":false,"properties":{"label":{"type":"string","description":"Human-readable display name for the field shown in the UI. Example: `\"Release Year\"`, `\"Genre\"`, `\"Synopsis\"`."},"key":{"type":"string","description":"Stable machine-readable identifier for the field used when reading and writing record data. Example: `\"release_year\"`, `\"genre\"`. Cannot be changed after creation."},"schema":{"type":"object","description":"Generated JSON Schema fragment describing the shape and validation rules for this field's value. Derived automatically from `dataType`, `list`, `localized`, and `dataValidation` on create. Read-only on the response.","properties":{"type":{"type":"string"},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","properties":{"field":{"type":"object","properties":{"type":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"}},"required":["type"]}},"required":["type"]}}}},"additionalProperties":false},"dataSource":{"type":"string","description":"Indicates who owns the field. `fabric` means it is a system-provisioned field shared across all tenants (read-only, cannot be deleted). `custom` means it was created by the tenant and can be modified or deleted. Example: `\"fabric\"`, `\"custom\"`."},"localized":{"type":"boolean","description":"When `true`, the field stores a separate value per locale (e.g. one synopsis in English and another in French). When `false`, a single value is stored regardless of locale."},"supportsInheritance":{"type":"boolean","description":"When `true`, this field's value can be inherited from a parent record (for example a Season inheriting from a Series). Authorization policies may use this flag to control inheritance behaviour."},"supportsKeywordSearch":{"type":"boolean","description":"When `true`, this text field is mapped with a `.keyword` subfield in OpenSearch and `eq` queries use an exact-match term query on the keyword subfield instead of match_phrase. Typically enabled for identifier fields (e.g. Origin ID, EIDR ID)."},"list":{"type":"boolean","description":"When `true`, the field stores multiple values (an array). When `false`, the field stores a single scalar value. For example, a `genre` field is typically a list while a `release_year` field is not."},"uiComponent":{"type":"string","description":"Hint for the UI about which input component to render for this field. Common values: `TextInput`, `TextArea`, `NumberInput`, `ToggleSwitch`, `Date`, `DateTime`, `Time`, `Select`, `MultiSelect`, `Autocomplete`, `AutocompleteSelect`, `AutocompleteMultiSelect`, `DataGrid`, `Custom`."},"uiSpan":{"type":"number","description":"Hint for the UI about how much horizontal space to allocate for this field when rendering forms."},"propertiesAttributes":{"type":"object","description":"Extensible map of additional display or configuration metadata for the field. The structure is open-ended and used by the UI to carry extra rendering hints. Not validated by the API.","additionalProperties":true}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"Dataset":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataset","description":"A JSON:API dataset resource representing a controlled vocabulary or lookup list used to constrain field values. Datasets can be localized (items keyed by locale) or non-localized. When `allowCustomItems` is false, the dataset is locked — items may only be managed by Fabric.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"allowCustomItems":{"type":"boolean","description":"Indicates if users can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"additionalProperties":false},"relationships":{"type":"object","properties":{"tenant":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false},"items":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false}},"required":["tenant"],"additionalProperties":false}},"required":["attributes","meta"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"DatasetAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetAttributes","description":"Attributes of a dataset. `key` is the machine-readable identifier. `label` is the human-readable display name. `localized` indicates whether items are keyed by locale. `availableLocales` lists the supported locales for localized datasets. `dataSource` indicates if the dataset is system-provisioned (`fabric`) or tenant-created (`custom`). `allowCustomItems` controls whether tenants can add, update, or delete items.","type":"object","additionalProperties":false,"properties":{"dataSource":{"type":"string","description":"Data source of the dataset","enum":["fabric","custom"]},"label":{"type":"string","description":"Label for the dataset"},"localized":{"type":"boolean","description":"Indicates if the dataset is localized"},"availableLocales":{"type":"array","description":"Available locales for the dataset","items":{"type":"string"}},"key":{"type":"string","description":"Key attribute of the dataset"},"tenantId":{"type":"string","description":"Tenant ID of the dataset"},"allowCustomItems":{"type":"boolean","description":"Indicates if customers can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"required":["dataSource","label","key"]},"DatasetItem":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItem","description":"A JSON:API dataset item resource representing a single entry in a controlled vocabulary dataset. Each item has a `key` (machine-readable identifier) and `value` (display label). For localized datasets, items also carry a `locale` code.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetItemAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"relationships":{"type":"object","properties":{"dataset":{"$ref":"#/components/schemas/DatasetRelationship"},"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"additionalProperties":false}},"required":["attributes","relationships"],"additionalProperties":false}]},"DatasetItemAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItemAttributes","description":"Attributes of a single dataset item (a controlled vocabulary entry). `key` is the stable machine-readable identifier stored on records. `value` is the human-readable label displayed in the UI. `locale` scopes the item to a specific language/region for localized datasets. `dataSource` indicates whether the item was created by Fabric or by the tenant.","type":"object","additionalProperties":false,"properties":{"locale":{"type":"string","description":"Locale of the dataset item"},"dataSource":{"type":"string","description":"Data source of the dataset item"},"key":{"type":"string","description":"Key attribute of the dataset item"},"value":{"type":"string","description":"Value of the dataset item"}},"required":["key","value"]},"DatasetRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetRelationship","description":"A JSON:API relationship object linking a resource to a dataset. Contains the dataset's `id` and `type`, plus a `links.related` URL for fetching the full dataset resource.","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"ErrorResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IErrorResponse","description":"Standard JSON:API error response returned when a request fails. Contains an `errors` array with one or more error objects (status, title, and optional detail).","type":"object","required":["errors"],"additionalProperties":false,"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"Error":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IError","description":"A single JSON:API error object. `status` is the HTTP status code as a string. `title` is a short, human-readable summary. `detail` provides optional context. `meta` may include structured conflict or authorization details.","type":"object","additionalProperties":false,"required":["status","title"],"properties":{"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","description":"A JSON Pointer to the request field that caused the error (e.g. `/data/attributes/title`).","properties":{"pointer":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true,"properties":{"stack":{"type":"string","description":"Error stack trace. Only present in non-production environments."},"conflictItems":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"unauthorizedItems":{"type":"array","items":{"type":"string"}}}}}}}},"paths":{"/fields/{fieldId}":{"get":{"summary":"Get a field by ID","operationId":"fieldFindOne","description":"Retrieves a single metadata field by its unique ID. Use `include=dataset` or `include=dataset.items` to embed the linked dataset or its items in the response.","tags":["Fields"],"parameters":[{"name":"fieldId","description":"The ID of the field to retrieve","in":"path","required":true,"schema":{"type":"string"}},{"name":"include","description":"Include related resources. Supports multiple values separated by commas.","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string","enum":["dataset","dataset.items","dataset,dataset.items"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldFindOneResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Delete field

> Deletes a custom metadata field by its unique ID. System-provisioned fields (with \`dataSource: fabric\`) cannot be deleted. Only tenant-created custom fields can be removed.

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"tags":[{"name":"Fields","description":"Manage Fields in the context of a tenant. A Field defines a data point that can be stored on a Record — for example, a synopsis, genre list, or release year. Fields may include a validation schema that the system enforces when data is saved. All tenants have access to a shared set of system-owned fields representing the standard metadata for a title. Tenants may also create their own custom fields."}],"servers":[{"url":"{protocol}://{domain}/{basePath}","variables":{"protocol":{"enum":["http","https"],"default":"https"},"domain":{"default":"api.studio.fabricdata.com"},"basePath":{"default":"v1"}}}],"security":[{"jwt-apikey-authorizer":[]}],"components":{"securitySchemes":{"jwt-apikey-authorizer":{"type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"WriteMetaOnlyRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteMetaOnlyRequest","description":"Optional request body carrying only audit metadata, used by mutations that otherwise take no body (e.g. resource DELETEs). Lets clients attach meta.audit.source/reason to such operations. The body itself is optional; it is not otherwise required.","type":"object","additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"ErrorResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IErrorResponse","description":"Standard JSON:API error response returned when a request fails. Contains an `errors` array with one or more error objects (status, title, and optional detail).","type":"object","required":["errors"],"additionalProperties":false,"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"Error":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IError","description":"A single JSON:API error object. `status` is the HTTP status code as a string. `title` is a short, human-readable summary. `detail` provides optional context. `meta` may include structured conflict or authorization details.","type":"object","additionalProperties":false,"required":["status","title"],"properties":{"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","description":"A JSON Pointer to the request field that caused the error (e.g. `/data/attributes/title`).","properties":{"pointer":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true,"properties":{"stack":{"type":"string","description":"Error stack trace. Only present in non-production environments."},"conflictItems":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"unauthorizedItems":{"type":"array","items":{"type":"string"}}}}}}}},"paths":{"/fields/{fieldId}":{"delete":{"summary":"Delete field","operationId":"fieldDeleteOne","requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WriteMetaOnlyRequest"}}}},"description":"Deletes a custom metadata field by its unique ID. System-provisioned fields (with `dataSource: fabric`) cannot be deleted. Only tenant-created custom fields can be removed.","tags":["Fields"],"parameters":[{"name":"fieldId","description":"The ID of the field to delete","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Update a field by ID

> Partially updates a metadata field. Only the attributes included in the request body are modified. Updatable attributes include \`label\`, \`supportsInheritance\`, \`supportsKeywordSearch\`, and \`dataValidation\` constraints. The \`key\`, \`dataType\`, \`localized\`, and \`list\` attributes cannot be changed after creation.

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"tags":[{"name":"Fields","description":"Manage Fields in the context of a tenant. A Field defines a data point that can be stored on a Record — for example, a synopsis, genre list, or release year. Fields may include a validation schema that the system enforces when data is saved. All tenants have access to a shared set of system-owned fields representing the standard metadata for a title. Tenants may also create their own custom fields."}],"servers":[{"url":"{protocol}://{domain}/{basePath}","variables":{"protocol":{"enum":["http","https"],"default":"https"},"domain":{"default":"api.studio.fabricdata.com"},"basePath":{"default":"v1"}}}],"security":[{"jwt-apikey-authorizer":[]}],"components":{"securitySchemes":{"jwt-apikey-authorizer":{"type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"FieldUpdateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldUpdateOneRequest","description":"Request body for partially updating an existing metadata field. Only the attributes included in the request are modified. The `data.id` must match the `fieldId` path parameter.","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","required":["type"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["fields"]}}},{"required":["attributes"],"additionalProperties":false,"properties":{"attributes":{"type":"object","additionalProperties":false,"properties":{"dataValidation":{"type":"object","description":"Updated validation constraints for the field's value. Only the properties provided are changed. Set a property to `null` to remove a constraint.","properties":{"minLength":{"type":"number","nullable":true,"description":"Minimum number of characters for string fields."},"maxLength":{"type":"number","nullable":true,"description":"Maximum number of characters for string fields."},"minimum":{"type":"number","nullable":true,"description":"Minimum numeric value for number fields."},"maximum":{"type":"number","nullable":true,"description":"Maximum numeric value for number fields."},"pattern":{"type":"string","nullable":true,"description":"Regular expression pattern the string value must match."},"format":{"type":"string","nullable":true,"description":"Named format the string value must conform to (e.g. `date`, `date-time`, `uri`)."},"minItems":{"type":"number","nullable":true,"description":"Minimum number of items for list fields."},"maxItems":{"type":"number","nullable":true,"description":"Maximum number of items for list fields."}},"additionalProperties":false},"label":{"type":"string","description":"Updated human-readable display name for the field."},"supportsInheritance":{"type":"boolean","nullable":true,"description":"Updated inheritance flag. When `true`, this field's value can be inherited from a parent record."},"supportsKeywordSearch":{"type":"boolean","nullable":true,"description":"Updated keyword search flag. When `true`, this text field uses a `.keyword` subfield in OpenSearch for exact-match `eq` queries."}}},"relationships":{"type":"object","properties":{"dataset":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"],"additionalProperties":false}},"required":["id","type","meta"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"additionalProperties":false}}}]}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"FieldFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldFindOneResponse","description":"Response for retrieving a single metadata field by ID. The `data` object is the field resource. When `include=dataset` or `include=dataset.items` is requested, the `included` array contains the related dataset and optionally its items.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"$ref":"#/components/schemas/Field"},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false},"included":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/Dataset"},{"$ref":"#/components/schemas/DatasetItem"}]}}}},"Field":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IField","description":"A JSON:API field resource representing a metadata field that can be attached to records within a tenant. Fields have a label (display name), a unique key, a JSON schema defining the value structure, and a dataset relationship that constrains the valid values. When retrieved with `filter.workType`, the `section` relationship indicates where the field appears in the record layout.","allOf":[{"type":"object","required":["id","type","attributes","meta","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["fields"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/FieldAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"additionalProperties":false},"relationships":{"type":"object","additionalProperties":false,"properties":{"tenant":{"type":"object","required":["data","links"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"additionalProperties":false},"links":{"type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}},"dataset":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]},"meta":{"type":"object","required":["tenantId"],"properties":{"tenantId":{"type":"string"},"localized":{"type":"boolean"},"validKeys":{"type":"array","items":{"type":"string"},"description":"Valid dataset item keys for non-localized datasets or default keys for localized datasets"},"validKeysByLocale":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Valid dataset item keys by locale for localized datasets"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"section":{"type":"object","additionalProperties":false,"description":"Section relationship from the record layout. Only included when filter.workType is provided.","properties":{"data":{"type":"object","required":["id","key","label"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"}}}}}}}}}]},"FieldAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldAttributes","description":"Attributes of a metadata field. `label` is the human-readable display name. `key` is the machine-readable identifier used in record data storage. `schema` is a JSON Schema object defining the structure and validation rules for the field's values. `localized` indicates whether the field stores separate values per locale. `dataSource` distinguishes system-provisioned fields (`fabric`) from tenant-created ones (`custom`).","type":"object","required":["label","dataSource","key","localized"],"additionalProperties":false,"properties":{"label":{"type":"string","description":"Human-readable display name for the field shown in the UI. Example: `\"Release Year\"`, `\"Genre\"`, `\"Synopsis\"`."},"key":{"type":"string","description":"Stable machine-readable identifier for the field used when reading and writing record data. Example: `\"release_year\"`, `\"genre\"`. Cannot be changed after creation."},"schema":{"type":"object","description":"Generated JSON Schema fragment describing the shape and validation rules for this field's value. Derived automatically from `dataType`, `list`, `localized`, and `dataValidation` on create. Read-only on the response.","properties":{"type":{"type":"string"},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","properties":{"field":{"type":"object","properties":{"type":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"}},"required":["type"]}},"required":["type"]}}}},"additionalProperties":false},"dataSource":{"type":"string","description":"Indicates who owns the field. `fabric` means it is a system-provisioned field shared across all tenants (read-only, cannot be deleted). `custom` means it was created by the tenant and can be modified or deleted. Example: `\"fabric\"`, `\"custom\"`."},"localized":{"type":"boolean","description":"When `true`, the field stores a separate value per locale (e.g. one synopsis in English and another in French). When `false`, a single value is stored regardless of locale."},"supportsInheritance":{"type":"boolean","description":"When `true`, this field's value can be inherited from a parent record (for example a Season inheriting from a Series). Authorization policies may use this flag to control inheritance behaviour."},"supportsKeywordSearch":{"type":"boolean","description":"When `true`, this text field is mapped with a `.keyword` subfield in OpenSearch and `eq` queries use an exact-match term query on the keyword subfield instead of match_phrase. Typically enabled for identifier fields (e.g. Origin ID, EIDR ID)."},"list":{"type":"boolean","description":"When `true`, the field stores multiple values (an array). When `false`, the field stores a single scalar value. For example, a `genre` field is typically a list while a `release_year` field is not."},"uiComponent":{"type":"string","description":"Hint for the UI about which input component to render for this field. Common values: `TextInput`, `TextArea`, `NumberInput`, `ToggleSwitch`, `Date`, `DateTime`, `Time`, `Select`, `MultiSelect`, `Autocomplete`, `AutocompleteSelect`, `AutocompleteMultiSelect`, `DataGrid`, `Custom`."},"uiSpan":{"type":"number","description":"Hint for the UI about how much horizontal space to allocate for this field when rendering forms."},"propertiesAttributes":{"type":"object","description":"Extensible map of additional display or configuration metadata for the field. The structure is open-ended and used by the UI to carry extra rendering hints. Not validated by the API.","additionalProperties":true}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"Dataset":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataset","description":"A JSON:API dataset resource representing a controlled vocabulary or lookup list used to constrain field values. Datasets can be localized (items keyed by locale) or non-localized. When `allowCustomItems` is false, the dataset is locked — items may only be managed by Fabric.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"allowCustomItems":{"type":"boolean","description":"Indicates if users can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"additionalProperties":false},"relationships":{"type":"object","properties":{"tenant":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false},"items":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false}},"required":["tenant"],"additionalProperties":false}},"required":["attributes","meta"],"additionalProperties":false}]},"DatasetAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetAttributes","description":"Attributes of a dataset. `key` is the machine-readable identifier. `label` is the human-readable display name. `localized` indicates whether items are keyed by locale. `availableLocales` lists the supported locales for localized datasets. `dataSource` indicates if the dataset is system-provisioned (`fabric`) or tenant-created (`custom`). `allowCustomItems` controls whether tenants can add, update, or delete items.","type":"object","additionalProperties":false,"properties":{"dataSource":{"type":"string","description":"Data source of the dataset","enum":["fabric","custom"]},"label":{"type":"string","description":"Label for the dataset"},"localized":{"type":"boolean","description":"Indicates if the dataset is localized"},"availableLocales":{"type":"array","description":"Available locales for the dataset","items":{"type":"string"}},"key":{"type":"string","description":"Key attribute of the dataset"},"tenantId":{"type":"string","description":"Tenant ID of the dataset"},"allowCustomItems":{"type":"boolean","description":"Indicates if customers can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"required":["dataSource","label","key"]},"DatasetItem":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItem","description":"A JSON:API dataset item resource representing a single entry in a controlled vocabulary dataset. Each item has a `key` (machine-readable identifier) and `value` (display label). For localized datasets, items also carry a `locale` code.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetItemAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"relationships":{"type":"object","properties":{"dataset":{"$ref":"#/components/schemas/DatasetRelationship"},"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"additionalProperties":false}},"required":["attributes","relationships"],"additionalProperties":false}]},"DatasetItemAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItemAttributes","description":"Attributes of a single dataset item (a controlled vocabulary entry). `key` is the stable machine-readable identifier stored on records. `value` is the human-readable label displayed in the UI. `locale` scopes the item to a specific language/region for localized datasets. `dataSource` indicates whether the item was created by Fabric or by the tenant.","type":"object","additionalProperties":false,"properties":{"locale":{"type":"string","description":"Locale of the dataset item"},"dataSource":{"type":"string","description":"Data source of the dataset item"},"key":{"type":"string","description":"Key attribute of the dataset item"},"value":{"type":"string","description":"Value of the dataset item"}},"required":["key","value"]},"DatasetRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetRelationship","description":"A JSON:API relationship object linking a resource to a dataset. Contains the dataset's `id` and `type`, plus a `links.related` URL for fetching the full dataset resource.","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"ErrorResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IErrorResponse","description":"Standard JSON:API error response returned when a request fails. Contains an `errors` array with one or more error objects (status, title, and optional detail).","type":"object","required":["errors"],"additionalProperties":false,"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"Error":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IError","description":"A single JSON:API error object. `status` is the HTTP status code as a string. `title` is a short, human-readable summary. `detail` provides optional context. `meta` may include structured conflict or authorization details.","type":"object","additionalProperties":false,"required":["status","title"],"properties":{"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","description":"A JSON Pointer to the request field that caused the error (e.g. `/data/attributes/title`).","properties":{"pointer":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true,"properties":{"stack":{"type":"string","description":"Error stack trace. Only present in non-production environments."},"conflictItems":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"unauthorizedItems":{"type":"array","items":{"type":"string"}}}}}}}},"paths":{"/fields/{fieldId}":{"patch":{"summary":"Update a field by ID","operationId":"fieldUpdateOne","description":"Partially updates a metadata field. Only the attributes included in the request body are modified. Updatable attributes include `label`, `supportsInheritance`, `supportsKeywordSearch`, and `dataValidation` constraints. The `key`, `dataType`, `localized`, and `list` attributes cannot be changed after creation.","tags":["Fields"],"parameters":[{"name":"fieldId","description":"The ID of the field to update","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldUpdateOneRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldFindOneResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Get record layouts

> Returns all record layouts for the current tenant. Each layout defines the editing UI structure (groups, sections, and field order) for a specific work type. Use \`filter.workType\` to retrieve the layout for a single work type such as \`Movie\` or \`Series\`.

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"tags":[{"name":"Fields","description":"Manage Fields in the context of a tenant. A Field defines a data point that can be stored on a Record — for example, a synopsis, genre list, or release year. Fields may include a validation schema that the system enforces when data is saved. All tenants have access to a shared set of system-owned fields representing the standard metadata for a title. Tenants may also create their own custom fields."}],"servers":[{"url":"{protocol}://{domain}/{basePath}","variables":{"protocol":{"enum":["http","https"],"default":"https"},"domain":{"default":"api.studio.fabricdata.com"},"basePath":{"default":"v1"}}}],"security":[{"jwt-apikey-authorizer":[]}],"components":{"securitySchemes":{"jwt-apikey-authorizer":{"type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"RecordLayoutFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutFindManyResponse","description":"Paginated response for listing record layouts in a tenant. Each item in `data` is a full layout resource with attributes (name, workType, groups), tenant relationship, and meta. The top-level `links` object contains a self link.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","relationships","meta"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["recordLayouts"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/RecordLayoutAttributes"}]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"]},"links":{"$ref":"#/components/schemas/LinksRelated"}}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"RecordLayoutAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutAttributes","description":"Attributes of a record layout. `name` is the display name. `workType` specifies which work type this layout applies to. `groups` is the ordered hierarchy of groups → sections → fields that defines the editing UI structure.","type":"object","required":["name","workType","groups"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Human-readable display name for this record layout. Example: `\"Movie Layout\"`, `\"Series Default Layout\"`."},"description":{"type":"string","description":"Optional longer description of the record layout and its purpose."},"workType":{"$ref":"#/components/schemas/WorkTypes"},"groups":{"type":"array","description":"Ordered list of groups that make up this layout. Each group corresponds to a tab or major panel in the record editing UI. The layout hierarchy is: groups → sections → fields.","items":{"$ref":"#/components/schemas/RecordLayoutGroup"}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordLayoutGroup":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutGroup","description":"A top-level grouping of sections within a record layout. Groups typically correspond to tabs or major UI panels in the record editing view. Each group has a unique `key`, a display `label`, a `type` classifier, and an ordered array of sections.","type":"object","required":["key","label","type","sections"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the group within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the group within this layout. Example: `\"origination\"`, `\"technical_details\"`."},"label":{"type":"string","description":"Human-readable label displayed as the tab or panel heading in the editing UI. Example: `\"Origination\"`, `\"Technical Details\"`."},"type":{"type":"string","enum":["fieldGroup","entityCollection"],"description":"Controls the group's role in the layout. `fieldGroup` contains editable metadata fields organized into sections. `entityCollection` is a reserved group for linked entities (such as contributors or credits) and must not contain custom sections."},"hidden":{"type":"boolean","description":"When `true`, the group is hidden in the editing UI. Only applies to `fieldGroup` groups. Cannot be set on `entityCollection` groups. The required origination group cannot be hidden."},"sections":{"type":"array","description":"Ordered list of sections within this group. Each section contains an ordered list of fields. `entityCollection` groups must have an empty sections array.","items":{"$ref":"#/components/schemas/RecordLayoutSection"}}}},"RecordLayoutSection":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutSection","description":"A section within a record layout group. Sections provide a labeled sub-grouping of fields within a tab/group in the editing UI. Each section has a unique `key`, a display `label`, and an ordered array of fields.","type":"object","required":["key","label","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the section within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the section within its parent group. Example: `\"core_metadata\"`, `\"identifiers\"`."},"label":{"type":"string","description":"Human-readable label displayed as the section heading in the editing UI. Example: `\"Core Metadata\"`, `\"Identifiers\"`."},"hidden":{"type":"boolean","description":"When `true`, this section and all its fields are hidden from the editing UI. The system-required `core_metadata` section cannot be hidden."},"fields":{"type":"array","description":"Ordered list of field references within this section. Each entry references a field by its `id` and `key`. The order determines the display order in the editing UI.","items":{"$ref":"#/components/schemas/RecordLayoutField"}}}},"RecordLayoutField":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutField","description":"A field entry within a record layout section. Links a field (identified by `id` and `key`) to its position in the layout. The `fields` array on the section allows multiple sub-fields to be grouped under a single layout position.","type":"object","required":["id","key","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the field being placed in this layout position. Must reference an existing field that belongs to the tenant."},"key":{"type":"string","description":"The machine-readable key of the field being placed in this layout position. Example: `\"synopsis\"`, `\"release_year\"`."}}},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"ErrorResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IErrorResponse","description":"Standard JSON:API error response returned when a request fails. Contains an `errors` array with one or more error objects (status, title, and optional detail).","type":"object","required":["errors"],"additionalProperties":false,"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"Error":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IError","description":"A single JSON:API error object. `status` is the HTTP status code as a string. `title` is a short, human-readable summary. `detail` provides optional context. `meta` may include structured conflict or authorization details.","type":"object","additionalProperties":false,"required":["status","title"],"properties":{"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","description":"A JSON Pointer to the request field that caused the error (e.g. `/data/attributes/title`).","properties":{"pointer":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true,"properties":{"stack":{"type":"string","description":"Error stack trace. Only present in non-production environments."},"conflictItems":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"unauthorizedItems":{"type":"array","items":{"type":"string"}}}}}}}},"paths":{"/recordLayouts":{"get":{"summary":"Get record layouts","operationId":"recordLayoutFindMany","description":"Returns all record layouts for the current tenant. Each layout defines the editing UI structure (groups, sections, and field order) for a specific work type. Use `filter.workType` to retrieve the layout for a single work type such as `Movie` or `Series`.","tags":["Fields"],"parameters":[{"name":"tenantId","description":"The ID of the tenant to retrieve the record layouts for. If not provided, record layouts for the current tenant will be returned.","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string"}},{"name":"filter.workType","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string"},"description":"Filter record layouts by the workType."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordLayoutFindManyResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Create a new record layout

> Creates a new record layout for a specific work type. The layout defines the editing UI structure as an ordered hierarchy of groups, sections, and field references. The request must include a valid \`workType\` (\`Movie\`, \`Series\`, \`Season\`, \`Episode\`, or \`Compilation\`), a \`name\`, and the \`groups\` hierarchy. All field IDs referenced in the layout must belong to the tenant.

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"tags":[{"name":"Fields","description":"Manage Fields in the context of a tenant. A Field defines a data point that can be stored on a Record — for example, a synopsis, genre list, or release year. Fields may include a validation schema that the system enforces when data is saved. All tenants have access to a shared set of system-owned fields representing the standard metadata for a title. Tenants may also create their own custom fields."}],"servers":[{"url":"{protocol}://{domain}/{basePath}","variables":{"protocol":{"enum":["http","https"],"default":"https"},"domain":{"default":"api.studio.fabricdata.com"},"basePath":{"default":"v1"}}}],"security":[{"jwt-apikey-authorizer":[]}],"components":{"securitySchemes":{"jwt-apikey-authorizer":{"type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"RecordLayoutCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutCreateOneRequest","description":"Request body for creating a new record layout. The `data.attributes` must include `name`, `workType`, and the `groups` hierarchy that defines the layout structure.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["recordLayouts"]},"attributes":{"$ref":"#/components/schemas/RecordLayoutAttributes"}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"RecordLayoutAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutAttributes","description":"Attributes of a record layout. `name` is the display name. `workType` specifies which work type this layout applies to. `groups` is the ordered hierarchy of groups → sections → fields that defines the editing UI structure.","type":"object","required":["name","workType","groups"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Human-readable display name for this record layout. Example: `\"Movie Layout\"`, `\"Series Default Layout\"`."},"description":{"type":"string","description":"Optional longer description of the record layout and its purpose."},"workType":{"$ref":"#/components/schemas/WorkTypes"},"groups":{"type":"array","description":"Ordered list of groups that make up this layout. Each group corresponds to a tab or major panel in the record editing UI. The layout hierarchy is: groups → sections → fields.","items":{"$ref":"#/components/schemas/RecordLayoutGroup"}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordLayoutGroup":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutGroup","description":"A top-level grouping of sections within a record layout. Groups typically correspond to tabs or major UI panels in the record editing view. Each group has a unique `key`, a display `label`, a `type` classifier, and an ordered array of sections.","type":"object","required":["key","label","type","sections"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the group within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the group within this layout. Example: `\"origination\"`, `\"technical_details\"`."},"label":{"type":"string","description":"Human-readable label displayed as the tab or panel heading in the editing UI. Example: `\"Origination\"`, `\"Technical Details\"`."},"type":{"type":"string","enum":["fieldGroup","entityCollection"],"description":"Controls the group's role in the layout. `fieldGroup` contains editable metadata fields organized into sections. `entityCollection` is a reserved group for linked entities (such as contributors or credits) and must not contain custom sections."},"hidden":{"type":"boolean","description":"When `true`, the group is hidden in the editing UI. Only applies to `fieldGroup` groups. Cannot be set on `entityCollection` groups. The required origination group cannot be hidden."},"sections":{"type":"array","description":"Ordered list of sections within this group. Each section contains an ordered list of fields. `entityCollection` groups must have an empty sections array.","items":{"$ref":"#/components/schemas/RecordLayoutSection"}}}},"RecordLayoutSection":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutSection","description":"A section within a record layout group. Sections provide a labeled sub-grouping of fields within a tab/group in the editing UI. Each section has a unique `key`, a display `label`, and an ordered array of fields.","type":"object","required":["key","label","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the section within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the section within its parent group. Example: `\"core_metadata\"`, `\"identifiers\"`."},"label":{"type":"string","description":"Human-readable label displayed as the section heading in the editing UI. Example: `\"Core Metadata\"`, `\"Identifiers\"`."},"hidden":{"type":"boolean","description":"When `true`, this section and all its fields are hidden from the editing UI. The system-required `core_metadata` section cannot be hidden."},"fields":{"type":"array","description":"Ordered list of field references within this section. Each entry references a field by its `id` and `key`. The order determines the display order in the editing UI.","items":{"$ref":"#/components/schemas/RecordLayoutField"}}}},"RecordLayoutField":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutField","description":"A field entry within a record layout section. Links a field (identified by `id` and `key`) to its position in the layout. The `fields` array on the section allows multiple sub-fields to be grouped under a single layout position.","type":"object","required":["id","key","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the field being placed in this layout position. Must reference an existing field that belongs to the tenant."},"key":{"type":"string","description":"The machine-readable key of the field being placed in this layout position. Example: `\"synopsis\"`, `\"release_year\"`."}}},"RecordLayoutFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutFindOneResponse","description":"Response for retrieving a single record layout by ID. The `data` object contains the full layout resource including `name`, `workType`, and the `groups` hierarchy (groups → sections → field references) that defines the editing UI structure for the associated work type.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes","meta"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["recordLayouts"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/RecordLayoutAttributes"}]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"ErrorResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IErrorResponse","description":"Standard JSON:API error response returned when a request fails. Contains an `errors` array with one or more error objects (status, title, and optional detail).","type":"object","required":["errors"],"additionalProperties":false,"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"Error":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IError","description":"A single JSON:API error object. `status` is the HTTP status code as a string. `title` is a short, human-readable summary. `detail` provides optional context. `meta` may include structured conflict or authorization details.","type":"object","additionalProperties":false,"required":["status","title"],"properties":{"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","description":"A JSON Pointer to the request field that caused the error (e.g. `/data/attributes/title`).","properties":{"pointer":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true,"properties":{"stack":{"type":"string","description":"Error stack trace. Only present in non-production environments."},"conflictItems":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"unauthorizedItems":{"type":"array","items":{"type":"string"}}}}}}}},"paths":{"/recordLayouts":{"post":{"summary":"Create a new record layout","operationId":"recordLayoutCreateOne","description":"Creates a new record layout for a specific work type. The layout defines the editing UI structure as an ordered hierarchy of groups, sections, and field references. The request must include a valid `workType` (`Movie`, `Series`, `Season`, `Episode`, or `Compilation`), a `name`, and the `groups` hierarchy. All field IDs referenced in the layout must belong to the tenant.","tags":["Fields"],"parameters":[{"name":"tenantId","description":"The ID of the tenant to create the record layout for. If not provided, the current tenant will be used.","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordLayoutCreateOneRequest"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordLayoutFindOneResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Get a record layout by ID

> Retrieves a single record layout by its unique ID. The response includes the full layout structure: groups, sections, and the ordered list of field references.

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"tags":[{"name":"Fields","description":"Manage Fields in the context of a tenant. A Field defines a data point that can be stored on a Record — for example, a synopsis, genre list, or release year. Fields may include a validation schema that the system enforces when data is saved. All tenants have access to a shared set of system-owned fields representing the standard metadata for a title. Tenants may also create their own custom fields."}],"servers":[{"url":"{protocol}://{domain}/{basePath}","variables":{"protocol":{"enum":["http","https"],"default":"https"},"domain":{"default":"api.studio.fabricdata.com"},"basePath":{"default":"v1"}}}],"security":[{"jwt-apikey-authorizer":[]}],"components":{"securitySchemes":{"jwt-apikey-authorizer":{"type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"RecordLayoutFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutFindOneResponse","description":"Response for retrieving a single record layout by ID. The `data` object contains the full layout resource including `name`, `workType`, and the `groups` hierarchy (groups → sections → field references) that defines the editing UI structure for the associated work type.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes","meta"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["recordLayouts"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/RecordLayoutAttributes"}]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"RecordLayoutAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutAttributes","description":"Attributes of a record layout. `name` is the display name. `workType` specifies which work type this layout applies to. `groups` is the ordered hierarchy of groups → sections → fields that defines the editing UI structure.","type":"object","required":["name","workType","groups"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Human-readable display name for this record layout. Example: `\"Movie Layout\"`, `\"Series Default Layout\"`."},"description":{"type":"string","description":"Optional longer description of the record layout and its purpose."},"workType":{"$ref":"#/components/schemas/WorkTypes"},"groups":{"type":"array","description":"Ordered list of groups that make up this layout. Each group corresponds to a tab or major panel in the record editing UI. The layout hierarchy is: groups → sections → fields.","items":{"$ref":"#/components/schemas/RecordLayoutGroup"}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordLayoutGroup":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutGroup","description":"A top-level grouping of sections within a record layout. Groups typically correspond to tabs or major UI panels in the record editing view. Each group has a unique `key`, a display `label`, a `type` classifier, and an ordered array of sections.","type":"object","required":["key","label","type","sections"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the group within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the group within this layout. Example: `\"origination\"`, `\"technical_details\"`."},"label":{"type":"string","description":"Human-readable label displayed as the tab or panel heading in the editing UI. Example: `\"Origination\"`, `\"Technical Details\"`."},"type":{"type":"string","enum":["fieldGroup","entityCollection"],"description":"Controls the group's role in the layout. `fieldGroup` contains editable metadata fields organized into sections. `entityCollection` is a reserved group for linked entities (such as contributors or credits) and must not contain custom sections."},"hidden":{"type":"boolean","description":"When `true`, the group is hidden in the editing UI. Only applies to `fieldGroup` groups. Cannot be set on `entityCollection` groups. The required origination group cannot be hidden."},"sections":{"type":"array","description":"Ordered list of sections within this group. Each section contains an ordered list of fields. `entityCollection` groups must have an empty sections array.","items":{"$ref":"#/components/schemas/RecordLayoutSection"}}}},"RecordLayoutSection":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutSection","description":"A section within a record layout group. Sections provide a labeled sub-grouping of fields within a tab/group in the editing UI. Each section has a unique `key`, a display `label`, and an ordered array of fields.","type":"object","required":["key","label","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the section within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the section within its parent group. Example: `\"core_metadata\"`, `\"identifiers\"`."},"label":{"type":"string","description":"Human-readable label displayed as the section heading in the editing UI. Example: `\"Core Metadata\"`, `\"Identifiers\"`."},"hidden":{"type":"boolean","description":"When `true`, this section and all its fields are hidden from the editing UI. The system-required `core_metadata` section cannot be hidden."},"fields":{"type":"array","description":"Ordered list of field references within this section. Each entry references a field by its `id` and `key`. The order determines the display order in the editing UI.","items":{"$ref":"#/components/schemas/RecordLayoutField"}}}},"RecordLayoutField":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutField","description":"A field entry within a record layout section. Links a field (identified by `id` and `key`) to its position in the layout. The `fields` array on the section allows multiple sub-fields to be grouped under a single layout position.","type":"object","required":["id","key","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the field being placed in this layout position. Must reference an existing field that belongs to the tenant."},"key":{"type":"string","description":"The machine-readable key of the field being placed in this layout position. Example: `\"synopsis\"`, `\"release_year\"`."}}},"ErrorResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IErrorResponse","description":"Standard JSON:API error response returned when a request fails. Contains an `errors` array with one or more error objects (status, title, and optional detail).","type":"object","required":["errors"],"additionalProperties":false,"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"Error":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IError","description":"A single JSON:API error object. `status` is the HTTP status code as a string. `title` is a short, human-readable summary. `detail` provides optional context. `meta` may include structured conflict or authorization details.","type":"object","additionalProperties":false,"required":["status","title"],"properties":{"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","description":"A JSON Pointer to the request field that caused the error (e.g. `/data/attributes/title`).","properties":{"pointer":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true,"properties":{"stack":{"type":"string","description":"Error stack trace. Only present in non-production environments."},"conflictItems":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"unauthorizedItems":{"type":"array","items":{"type":"string"}}}}}}}},"paths":{"/recordLayouts/{recordLayoutId}":{"get":{"summary":"Get a record layout by ID","operationId":"recordLayoutFindOne","description":"Retrieves a single record layout by its unique ID. The response includes the full layout structure: groups, sections, and the ordered list of field references.","tags":["Fields"],"parameters":[{"name":"recordLayoutId","description":"The ID of the record layout to retrieve","in":"path","required":true,"schema":{"type":"string"}},{"name":"tenantId","description":"The ID of the tenant to retrieve the record layout for. If not provided, the current tenant will be used.","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordLayoutFindOneResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Delete a record layout by ID

> Deletes a record layout by its unique ID. Deleting a layout removes the UI structure definition for the associated work type but does not delete the underlying fields.

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"tags":[{"name":"Fields","description":"Manage Fields in the context of a tenant. A Field defines a data point that can be stored on a Record — for example, a synopsis, genre list, or release year. Fields may include a validation schema that the system enforces when data is saved. All tenants have access to a shared set of system-owned fields representing the standard metadata for a title. Tenants may also create their own custom fields."}],"servers":[{"url":"{protocol}://{domain}/{basePath}","variables":{"protocol":{"enum":["http","https"],"default":"https"},"domain":{"default":"api.studio.fabricdata.com"},"basePath":{"default":"v1"}}}],"security":[{"jwt-apikey-authorizer":[]}],"components":{"securitySchemes":{"jwt-apikey-authorizer":{"type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"WriteMetaOnlyRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteMetaOnlyRequest","description":"Optional request body carrying only audit metadata, used by mutations that otherwise take no body (e.g. resource DELETEs). Lets clients attach meta.audit.source/reason to such operations. The body itself is optional; it is not otherwise required.","type":"object","additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"ErrorResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IErrorResponse","description":"Standard JSON:API error response returned when a request fails. Contains an `errors` array with one or more error objects (status, title, and optional detail).","type":"object","required":["errors"],"additionalProperties":false,"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"Error":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IError","description":"A single JSON:API error object. `status` is the HTTP status code as a string. `title` is a short, human-readable summary. `detail` provides optional context. `meta` may include structured conflict or authorization details.","type":"object","additionalProperties":false,"required":["status","title"],"properties":{"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","description":"A JSON Pointer to the request field that caused the error (e.g. `/data/attributes/title`).","properties":{"pointer":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true,"properties":{"stack":{"type":"string","description":"Error stack trace. Only present in non-production environments."},"conflictItems":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"unauthorizedItems":{"type":"array","items":{"type":"string"}}}}}}}},"paths":{"/recordLayouts/{recordLayoutId}":{"delete":{"summary":"Delete a record layout by ID","operationId":"recordLayoutDeleteOne","requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WriteMetaOnlyRequest"}}}},"description":"Deletes a record layout by its unique ID. Deleting a layout removes the UI structure definition for the associated work type but does not delete the underlying fields.","tags":["Fields"],"parameters":[{"name":"recordLayoutId","description":"The ID of the record layout to delete","in":"path","required":true,"schema":{"type":"string"}},{"name":"tenantId","description":"The ID of the tenant to delete the record layout for. If not provided, the current tenant will be used.","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Update a record layout by ID

> Partially updates a record layout. Only the attributes provided are modified. Supports updating \`name\`, \`description\`, and the full \`groups\` hierarchy. When updating \`groups\`, the complete desired structure must be provided — the server replaces the existing hierarchy. All field IDs referenced must belong to the tenant, and required system groups (such as the origination group) must remain present.

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"tags":[{"name":"Fields","description":"Manage Fields in the context of a tenant. A Field defines a data point that can be stored on a Record — for example, a synopsis, genre list, or release year. Fields may include a validation schema that the system enforces when data is saved. All tenants have access to a shared set of system-owned fields representing the standard metadata for a title. Tenants may also create their own custom fields."}],"servers":[{"url":"{protocol}://{domain}/{basePath}","variables":{"protocol":{"enum":["http","https"],"default":"https"},"domain":{"default":"api.studio.fabricdata.com"},"basePath":{"default":"v1"}}}],"security":[{"jwt-apikey-authorizer":[]}],"components":{"securitySchemes":{"jwt-apikey-authorizer":{"type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"RecordLayoutUpdateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutUpdateOneRequest","description":"Request body for partially updating an existing record layout. Only the attributes provided are modified. Typically used to update the `name`, `description`, or the groups/sections/fields structure.","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"required":["attributes"],"additionalProperties":false,"properties":{"attributes":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"description":{"type":"string"},"groups":{"type":"array","items":{"type":"object","required":["key","label","type","sections"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"},"type":{"type":"string","enum":["fieldGroup","entityCollection"]},"hidden":{"type":"boolean"},"sections":{"type":"array","items":{"type":"object","required":["id","key","label","fields"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"},"hidden":{"type":"boolean"},"fields":{"type":"array","items":{"type":"object","required":["id","key"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"span":{"type":"number"}}}}}}}}}}}}}}]}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"RecordLayoutFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutFindOneResponse","description":"Response for retrieving a single record layout by ID. The `data` object contains the full layout resource including `name`, `workType`, and the `groups` hierarchy (groups → sections → field references) that defines the editing UI structure for the associated work type.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes","meta"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["recordLayouts"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/RecordLayoutAttributes"}]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"RecordLayoutAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutAttributes","description":"Attributes of a record layout. `name` is the display name. `workType` specifies which work type this layout applies to. `groups` is the ordered hierarchy of groups → sections → fields that defines the editing UI structure.","type":"object","required":["name","workType","groups"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Human-readable display name for this record layout. Example: `\"Movie Layout\"`, `\"Series Default Layout\"`."},"description":{"type":"string","description":"Optional longer description of the record layout and its purpose."},"workType":{"$ref":"#/components/schemas/WorkTypes"},"groups":{"type":"array","description":"Ordered list of groups that make up this layout. Each group corresponds to a tab or major panel in the record editing UI. The layout hierarchy is: groups → sections → fields.","items":{"$ref":"#/components/schemas/RecordLayoutGroup"}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordLayoutGroup":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutGroup","description":"A top-level grouping of sections within a record layout. Groups typically correspond to tabs or major UI panels in the record editing view. Each group has a unique `key`, a display `label`, a `type` classifier, and an ordered array of sections.","type":"object","required":["key","label","type","sections"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the group within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the group within this layout. Example: `\"origination\"`, `\"technical_details\"`."},"label":{"type":"string","description":"Human-readable label displayed as the tab or panel heading in the editing UI. Example: `\"Origination\"`, `\"Technical Details\"`."},"type":{"type":"string","enum":["fieldGroup","entityCollection"],"description":"Controls the group's role in the layout. `fieldGroup` contains editable metadata fields organized into sections. `entityCollection` is a reserved group for linked entities (such as contributors or credits) and must not contain custom sections."},"hidden":{"type":"boolean","description":"When `true`, the group is hidden in the editing UI. Only applies to `fieldGroup` groups. Cannot be set on `entityCollection` groups. The required origination group cannot be hidden."},"sections":{"type":"array","description":"Ordered list of sections within this group. Each section contains an ordered list of fields. `entityCollection` groups must have an empty sections array.","items":{"$ref":"#/components/schemas/RecordLayoutSection"}}}},"RecordLayoutSection":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutSection","description":"A section within a record layout group. Sections provide a labeled sub-grouping of fields within a tab/group in the editing UI. Each section has a unique `key`, a display `label`, and an ordered array of fields.","type":"object","required":["key","label","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the section within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the section within its parent group. Example: `\"core_metadata\"`, `\"identifiers\"`."},"label":{"type":"string","description":"Human-readable label displayed as the section heading in the editing UI. Example: `\"Core Metadata\"`, `\"Identifiers\"`."},"hidden":{"type":"boolean","description":"When `true`, this section and all its fields are hidden from the editing UI. The system-required `core_metadata` section cannot be hidden."},"fields":{"type":"array","description":"Ordered list of field references within this section. Each entry references a field by its `id` and `key`. The order determines the display order in the editing UI.","items":{"$ref":"#/components/schemas/RecordLayoutField"}}}},"RecordLayoutField":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutField","description":"A field entry within a record layout section. Links a field (identified by `id` and `key`) to its position in the layout. The `fields` array on the section allows multiple sub-fields to be grouped under a single layout position.","type":"object","required":["id","key","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the field being placed in this layout position. Must reference an existing field that belongs to the tenant."},"key":{"type":"string","description":"The machine-readable key of the field being placed in this layout position. Example: `\"synopsis\"`, `\"release_year\"`."}}},"ErrorResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IErrorResponse","description":"Standard JSON:API error response returned when a request fails. Contains an `errors` array with one or more error objects (status, title, and optional detail).","type":"object","required":["errors"],"additionalProperties":false,"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"Error":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IError","description":"A single JSON:API error object. `status` is the HTTP status code as a string. `title` is a short, human-readable summary. `detail` provides optional context. `meta` may include structured conflict or authorization details.","type":"object","additionalProperties":false,"required":["status","title"],"properties":{"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","description":"A JSON Pointer to the request field that caused the error (e.g. `/data/attributes/title`).","properties":{"pointer":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true,"properties":{"stack":{"type":"string","description":"Error stack trace. Only present in non-production environments."},"conflictItems":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"unauthorizedItems":{"type":"array","items":{"type":"string"}}}}}}}},"paths":{"/recordLayouts/{recordLayoutId}":{"patch":{"summary":"Update a record layout by ID","operationId":"recordLayoutUpdateOne","description":"Partially updates a record layout. Only the attributes provided are modified. Supports updating `name`, `description`, and the full `groups` hierarchy. When updating `groups`, the complete desired structure must be provided — the server replaces the existing hierarchy. All field IDs referenced must belong to the tenant, and required system groups (such as the origination group) must remain present.","tags":["Fields"],"parameters":[{"name":"recordLayoutId","description":"The ID of the record layout to update","in":"path","required":true,"schema":{"type":"string"}},{"name":"tenantId","description":"The ID of the tenant to update the record layout for. If not provided, the current tenant will be used.","in":"query","required":false,"style":"form","explode":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordLayoutUpdateOneRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordLayoutFindOneResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```
