Create a new field
Body parameters
RFC 4122 UUID of field expressed in URL-safe base64 format
"Pkg-oztERp6o-Rj76nYKJg"
Must be exactly "field".
The label of the field
"Title"
Type of input
"string"
Field API key
"title"
Whether the field needs to be multilanguage or not
Optional field validations
{ required: {} }
Field appearance details, plugin configuration and field add-ons
{
editor: "single_line",
parameters: { heading: false },
addons: [{ id: "1234", field_extension: "lorem_ipsum", parameters: {} }],
}
A valid editor can be a DatoCMS default field editor type (ie. "single_line"), or a plugin ID offering a custom field editor
The editor plugin's parameters
An array of add-on plugins with id and parameters
The ID of a plugin offering a field addon
The specific field extension to use for the field (only if the editor is a modern plugin)
The specific field extension to use for the field (only if the editor is a modern plugin)
Ordering index
1
Field hint
"This field will be used as post title"
Default value for Field. When field is localized accepts an object of default values with site locales as keys
{ en: "A default value", it: "Un valore di default" }
Whether deep filtering for block models is enabled in GraphQL or not
Whether Content Link (visual editing) encoding is emitted for this field's value in the Content Delivery API. Defaults to true; can only be set to false on string, text and structured_text fields
Field appearance
This field contains a typo and will be removed in future versions: use appearance instead
Returns
Returns a Job ID. You can then poll for the completion of the job that will eventually return a resource object of type field
Examples
The response contains the ID of the asynchronous job that started:
POST https://site-api.datocms.com/item-types/:model_id_or_api_key/fields HTTP/1.1Authorization: Bearer YOUR-API-TOKENAccept: application/jsonX-Api-Version: 3Content-Type: application/vnd.api+json
{ "data": { "type": "field", "attributes": { "label": "Title", "field_type": "string", "api_key": "title" } }}curl -g 'https://site-api.datocms.com/item-types/:model_id_or_api_key/fields' \ -X POST \ -H "Authorization: Bearer YOUR-API-TOKEN" \ -H "Accept: application/json" \ -H "X-Api-Version: 3" \ -H "Content-Type: application/vnd.api+json" \ --data-binary '{"data":{"type":"field","attributes":{"label":"Title","field_type":"string","api_key":"title"}}}'await fetch( "https://site-api.datocms.com/item-types/:model_id_or_api_key/fields", { method: "POST", headers: { Authorization: "Bearer YOUR-API-TOKEN", Accept: "application/json", "X-Api-Version": "3", "Content-Type": "application/vnd.api+json", }, body: JSON.stringify({ data: { type: "field", attributes: { label: "Title", field_type: "string", api_key: "title" }, }, }), },);HTTP/1.1 202 AcceptedContent-Type: application/jsonCache-Control: cache-control: max-age=0, private, must-revalidateX-RateLimit-Limit: 30X-RateLimit-Remaining: 28
{ "data": { "type": "job", "id": "4235" }}To get the asynchronous job result, poll the job result endpoint. While the task is in progress, the endpoint returns a 404 status code. When the job completes, the status changes to 200 OK:
GET https://site-api.datocms.com/job-results/:job_result_id HTTP/1.1Authorization: Bearer YOUR-API-TOKENAccept: application/jsonX-Api-Version: 3curl -g 'https://site-api.datocms.com/job-results/:job_result_id' \ \ -H "Authorization: Bearer YOUR-API-TOKEN" \ -H "Accept: application/json" \ -H "X-Api-Version: 3"await fetch("https://site-api.datocms.com/job-results/:job_result_id", { headers: { Authorization: "Bearer YOUR-API-TOKEN", Accept: "application/json", "X-Api-Version": "3", },});HTTP/1.1 200 OKContent-Type: application/jsonCache-Control: cache-control: max-age=0, private, must-revalidateX-RateLimit-Limit: 30X-RateLimit-Remaining: 28
{ "data": { "type": "job_result", "id": "34", "attributes": { "status": 200, "payload": { "data": { "type": "field", "id": "Pkg-oztERp6o-Rj76nYKJg", "attributes": { "label": "Title", "field_type": "string", "api_key": "title", "localized": true, "validators": { "required": {} }, "position": 1, "hint": "This field will be used as post title", "default_value": { "en": "A default value", "it": "Un valore di default" }, "appearance": { "editor": "single_line", "parameters": { "heading": false }, "addons": [ { "id": "1234", "field_extension": "lorem_ipsum", "parameters": {} } ] }, "deep_filtering_enabled": true, "content_link_enabled": true }, "relationships": { "item_type": { "data": { "type": "item_type", "id": "DxMaW10UQiCmZcuuA-IkkA" } }, "fieldset": { "data": null } } } } } }}