Sorry, no results found for "".

Show examples in:
Javascript HTTP
Endpoint info
Available examples

Content Management API > Field

Create a new field

Body parameters

id string Optional

RFC 4122 UUID of field expressed in URL-safe base64 format

Example: "Pkg-oztERp6o-Rj76nYKJg"
type string Required

Must be exactly "field".

attributes.label string Required

The label of the field

Example: "Title"
attributes.field_type enum Required

Type of input

Example: "string"
boolean Optional
color Optional
date Optional
date_time Optional
file Optional
float Optional
gallery Optional
integer Optional
json Optional
lat_lon Optional
link Optional
links Optional
rich_text Optional
seo Optional
single_block Optional
slug Optional
string Optional
structured_text Optional
text Optional
video Optional
attributes.api_key string Required

Field API key

Example: "title"
attributes.localized boolean Optional

Whether the field needs to be multilanguage or not

attributes.validators object Optional

Optional field validations

Example: { required: {} }
attributes.appearance object Optional

Field appearance details, plugin configuration and field add-ons

Example: { editor: "single_line", parameters: { heading: false }, addons: [{ id: "1234", field_extension: "lorem_ipsum", parameters: {} }], }
editor string Required

A valid editor can be a DatoCMS default field editor type (ie. "single_line"), or a plugin ID offering a custom field editor

parameters object Required

The editor plugin's parameters

addons Required

An array of add-on plugins with id and parameters

Type: Array<object>
id string Required

The ID of a plugin offering a field addon

parameters object Required
field_extension string Optional

The specific field extension to use for the field (only if the editor is a modern plugin)

field_extension string Optional

The specific field extension to use for the field (only if the editor is a modern plugin)

attributes.position integer Optional

Ordering index

Example: 1
attributes.hint string, null Optional

Field hint

Example: "This field will be used as post title"
attributes.default_value Optional

Default value for Field. When field is localized accepts an object of default values with site locales as keys

Type: boolean, null, string, number, object
Example: { en: "A default value", it: "Un valore di default" }
attributes.deep_filtering_enabled boolean Optional

Whether deep filtering for block models is enabled in GraphQL or not

relationships.fieldset.data Optional

Fieldset linkage

attributes.appeareance object Deprecated

Field appearance

This field contains a typo and will be removed in future versions: use appearance instead

editor string Required
parameters object Required

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.1
Authorization: Bearer YOUR-API-TOKEN
Accept: application/json
X-Api-Version: 3
Content-Type: application/vnd.api+json
{
"data": {
"type": "field",
"attributes": {
"label": "Title",
"field_type": "string",
"api_key": "title"
}
}
}
Terminal window
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 Accepted
Content-Type: application/json
Cache-Control: cache-control: max-age=0, private, must-revalidate
X-RateLimit-Limit: 30
X-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.1
Authorization: Bearer YOUR-API-TOKEN
Accept: application/json
X-Api-Version: 3
Terminal window
curl -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 OK
Content-Type: application/json
Cache-Control: cache-control: max-age=0, private, must-revalidate
X-RateLimit-Limit: 30
X-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
},
"relationships": {
"item_type": {
"data": {
"type": "item_type",
"id": "DxMaW10UQiCmZcuuA-IkkA"
}
},
"fieldset": {
"data": null
}
}
}
}
}
}
}