Contentful
App · Website Builders · 20 actions
Manage content in Contentful: create and publish content types, entries and media assets, and read back what is already there. Content types define the schema; entries hold the content; assets hold the media.
Actions
| Action | What it does |
|---|---|
| Activate content type | Publish (activate) a content type. |
| Create asset | Create an asset from a URL - Contentful downloads the file itself, so no bytes are uploaded through this step. |
| Create content type | Create a content type - the schema entries of this type will follow. |
| Create entry | Create an entry of a content type. |
| Deactivate content type | Unpublish (deactivate) a content type. |
| Delete asset | Delete an asset permanently. |
| Delete content type | Delete a content type permanently. |
| Delete entry | Delete an entry permanently. |
| Get asset | Read one asset, with its file details per locale. |
| Get content type | Read one content type in full: its fields, display field and description. |
| Get entry | Read one entry, with its fields wrapped per locale. |
| List assets | List assets (media files) in this space and environment. |
| List content types | List the content types defined in this space and environment - the schemas that entries are created from. |
| List entries | List entries, optionally narrowed to one content type or to text matching a full-text search. |
| List locales | List the locales configured for this environment. |
| Publish asset | Publish an asset, making it live on the Content Delivery API. |
| Publish entry | Publish an entry, making it live on the Content Delivery API. |
| Unpublish asset | Unpublish an asset. |
| Unpublish entry | Unpublish an entry. |
| Update entry | Replace an entry's fields. |
Activate content type
Publish (activate) a content type. Entries of this type cannot be created until it is activated.
Inputs
- Content type ID
content_type_idtextRequired - The content type to act on, from 'List content types'.
Outputs
descriptiontextdisplayFieldtextfieldslistnametextsysobject
Example output
{
"description": "A blog post",
"displayField": "title",
"fields": [
{
"id": "title",
"name": "Title",
"required": true,
"type": "Symbol"
}
],
"name": "Blog Post",
"sys": {
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "blogPost",
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "ContentType",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}Create asset
Create an asset from a URL - Contentful downloads the file itself, so no bytes are uploaded through this step. After creating it, this triggers Contentful's file processing and waits briefly for it to finish; processing is asynchronous, so a very large file may still be processing when this returns - check 'processingComplete' on the result, or run 'Get asset' again later. Leave locale empty to use the environment's default locale. Give an asset ID to choose it yourself.
Inputs
- Title
titletextRequired - The asset's title, shown in the Contentful web app.
- File name
file_nametextRequired - The file name to store, such as 'photo.jpg'.
- File MIME type
content_typetextRequired - The file's MIME type, such as 'image/png' or 'application/pdf'.
- File URL
upload_urltextRequired - A URL Contentful will download the file's bytes from.
- Description
descriptiontext - A description of the asset.
- Locale
localetext - The locale to store the file under. Leave empty for the environment's default.
- Asset ID
asset_idtext - A specific id for the asset. Leave empty to let Contentful generate one.
Outputs
fieldsobjectprocessingCompletetrue/falsesysobject
Example output
{
"fields": {
"file": {
"en-US": {
"contentType": "image/jpeg",
"details": {
"size": 12345
},
"fileName": "sample.jpg",
"url": "//images.ctfassets.net/abc123space/5b6c/sample.jpg"
}
},
"title": {
"en-US": "Sample image"
}
},
"processingComplete": true,
"sys": {
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "5b6c7d8e9f0a1b2c3d4e5f6a",
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "Asset",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}Create content type
Create a content type - the schema entries of this type will follow. Fields is a JSON array of field definitions, each needing an 'id', a 'name' and a 'type' (Symbol, Text, Integer, Number, Boolean, Date, Location, Object, Link, Array or RichText); a Link field also needs 'linkType' (Entry or Asset), and an Array field also needs an 'items' object naming the type each element holds. Give a content type ID to choose it yourself; leave it empty to let Contentful assign one. The content type must be activated before entries of it can be created - see 'Activate content type'.
Inputs
- Name
nametextRequired - The content type's name, shown in the Contentful web app.
- Fields
fieldslistRequired - A JSON array of field definitions, e.g. [{"id": "title", "name": "Title", "type": "Symbol", "required": true}].
- Description
descriptiontext - What this content type is for.
- Display field
display_fieldtext - The id of the field shown as an entry's title in the Contentful web app. Must be one of the ids in 'fields'.
- Content type ID
content_type_idtext - A specific id for the content type, letters, numbers, underscores and dots only. Leave empty to let Contentful generate one.
Outputs
descriptiontextdisplayFieldtextfieldslistnametextsysobject
Example output
{
"description": "A blog post",
"displayField": "title",
"fields": [
{
"id": "title",
"name": "Title",
"required": true,
"type": "Symbol"
}
],
"name": "Blog Post",
"sys": {
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "blogPost",
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "ContentType",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}Create entry
Create an entry of a content type. The content type must already be activated. Give an entry ID to choose it yourself; leave it empty to let Contentful assign one.
Inputs
- Content type ID
content_type_idtextRequired - The content type to act on, from 'List content types'.
- Fields
fieldsobjectRequired - The entry's fields, wrapped per locale, exactly as Contentful stores them - for example {"title": {"en-US": "Hello"}}. Field names must match the content type's model.
- Entry ID
entry_idtext - A specific id for the entry. Leave empty to let Contentful generate one.
Outputs
fieldsobjectsysobject
Example output
{
"fields": {
"title": {
"en-US": "Hello, Contentful"
}
},
"sys": {
"contentType": {
"sys": {
"id": "blogPost",
"linkType": "ContentType",
"type": "Link"
}
},
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "4a5b6c7d8e9f0a1b2c3d4e5f",
"publishedAt": "2026-02-02T16:41:08.000Z",
"publishedVersion": 2,
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "Entry",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}Deactivate content type
Unpublish (deactivate) a content type. Every entry of this content type must already be deleted, and this must run before the content type itself can be deleted.
Inputs
- Content type ID
content_type_idtextRequired - The content type to act on, from 'List content types'.
Outputs
descriptiontextdisplayFieldtextfieldslistnametextsysobject
Example output
{
"description": "A blog post",
"displayField": "title",
"fields": [
{
"id": "title",
"name": "Title",
"required": true,
"type": "Symbol"
}
],
"name": "Blog Post",
"sys": {
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "blogPost",
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "ContentType",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}Delete asset
Delete an asset permanently. Must be unpublished first.
Inputs
- Asset ID
asset_idtextRequired - The asset to act on, from 'List assets' or 'Get asset'.
Outputs
deletedtrue/falseidtextresourcetext
Example output
{
"deleted": true,
"id": "5b6c7d8e9f0a1b2c3d4e5f6a",
"resource": "asset"
}Delete content type
Delete a content type permanently. It must already be deactivated - see 'Deactivate content type' - with every one of its entries deleted.
Inputs
- Content type ID
content_type_idtextRequired - The content type to act on, from 'List content types'.
Outputs
deletedtrue/falseidtextresourcetext
Example output
{
"deleted": true,
"id": "blogPost",
"resource": "content_type"
}Delete entry
Delete an entry permanently. Must be unpublished first.
Inputs
- Entry ID
entry_idtextRequired - The entry to act on, from 'List entries' or 'Get entry'.
Outputs
deletedtrue/falseidtextresourcetext
Example output
{
"deleted": true,
"id": "4a5b6c7d8e9f0a1b2c3d4e5f",
"resource": "entry"
}Get asset
Read one asset, with its file details per locale.
Inputs
- Asset ID
asset_idtextRequired - The asset to act on, from 'List assets' or 'Get asset'.
Outputs
fieldsobjectprocessingCompletetrue/falsesysobject
Example output
{
"fields": {
"file": {
"en-US": {
"contentType": "image/jpeg",
"details": {
"size": 12345
},
"fileName": "sample.jpg",
"url": "//images.ctfassets.net/abc123space/5b6c/sample.jpg"
}
},
"title": {
"en-US": "Sample image"
}
},
"processingComplete": true,
"sys": {
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "5b6c7d8e9f0a1b2c3d4e5f6a",
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "Asset",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}Get content type
Read one content type in full: its fields, display field and description.
Inputs
- Content type ID
content_type_idtextRequired - The content type to act on, from 'List content types'.
Outputs
descriptiontextdisplayFieldtextfieldslistnametextsysobject
Example output
{
"description": "A blog post",
"displayField": "title",
"fields": [
{
"id": "title",
"name": "Title",
"required": true,
"type": "Symbol"
}
],
"name": "Blog Post",
"sys": {
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "blogPost",
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "ContentType",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}Get entry
Read one entry, with its fields wrapped per locale.
Inputs
- Entry ID
entry_idtextRequired - The entry to act on, from 'List entries' or 'Get entry'.
Outputs
fieldsobjectsysobject
Example output
{
"fields": {
"title": {
"en-US": "Hello, Contentful"
}
},
"sys": {
"contentType": {
"sys": {
"id": "blogPost",
"linkType": "ContentType",
"type": "Link"
}
},
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "4a5b6c7d8e9f0a1b2c3d4e5f",
"publishedAt": "2026-02-02T16:41:08.000Z",
"publishedVersion": 2,
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "Entry",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}List assets
List assets (media files) in this space and environment.
Inputs
- Query
querytext - Only assets whose text matches this full-text search.
- Limit
limitnumber - How many to return, 1-100. Defaults to 25.From 1 to 100. Default:
25. - Skip
skipnumber - How many records to skip, for paging past the first page.At least 0. Default:
0.
Outputs
The assets
has_moretrue/false- Whether another page exists past this one
itemslistlimitnumber- The page size used
skipnumber- How many were skipped
totalnumber- Total matching records
Example output
{
"has_more": false,
"items": [
{
"fields": {
"file": {
"en-US": {
"contentType": "image/jpeg",
"details": {
"size": 12345
},
"fileName": "sample.jpg",
"url": "//images.ctfassets.net/abc123space/5b6c/sample.jpg"
}
},
"title": {
"en-US": "Sample image"
}
},
"processingComplete": true,
"sys": {
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "5b6c7d8e9f0a1b2c3d4e5f6a",
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "Asset",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}
],
"limit": 25,
"skip": 0,
"total": 1
}List content types
List the content types defined in this space and environment - the schemas that entries are created from. Each one reports its id, name, description, display field and field definitions.
Inputs
- Limit
limitnumber - How many to return, 1-100. Defaults to 25.From 1 to 100. Default:
25. - Skip
skipnumber - How many records to skip, for paging past the first page.At least 0. Default:
0.
Outputs
The content types
has_moretrue/false- Whether another page exists past this one
itemslistlimitnumber- The page size used
skipnumber- How many were skipped
totalnumber- Total matching records
Example output
{
"has_more": false,
"items": [
{
"description": "A blog post",
"displayField": "title",
"fields": [
{
"id": "title",
"name": "Title",
"required": true,
"type": "Symbol"
}
],
"name": "Blog Post",
"sys": {
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "blogPost",
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "ContentType",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}
],
"limit": 25,
"skip": 0,
"total": 1
}List entries
List entries, optionally narrowed to one content type or to text matching a full-text search.
Inputs
- Content type ID
content_typetext - Only entries of this content type. Leave empty for all types.
- Query
querytext - Only entries whose text matches this full-text search.
- Order
ordertext - A field to sort by, such as 'sys.createdAt' or '-sys.createdAt' for newest first.
- Limit
limitnumber - How many to return, 1-100. Defaults to 25.From 1 to 100. Default:
25. - Skip
skipnumber - How many records to skip, for paging past the first page.At least 0. Default:
0.
Outputs
The entries
has_moretrue/false- Whether another page exists past this one
itemslistlimitnumber- The page size used
skipnumber- How many were skipped
totalnumber- Total matching records
Example output
{
"has_more": false,
"items": [
{
"fields": {
"title": {
"en-US": "Hello, Contentful"
}
},
"sys": {
"contentType": {
"sys": {
"id": "blogPost",
"linkType": "ContentType",
"type": "Link"
}
},
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "4a5b6c7d8e9f0a1b2c3d4e5f",
"publishedAt": "2026-02-02T16:41:08.000Z",
"publishedVersion": 2,
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "Entry",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}
],
"limit": 25,
"skip": 0,
"total": 1
}List locales
List the locales configured for this environment. Every entry and asset field is stored per locale, and exactly one locale here is marked 'default'.
Inputs
None.
Outputs
The environment's locales
countnumber- How many were returned
itemslist
Example output
{
"count": 1,
"items": [
{
"code": "en-US",
"contentDeliveryApi": true,
"contentManagementApi": true,
"default": true,
"fallbackCode": null,
"name": "English (United States)",
"optional": false
}
]
}Publish asset
Publish an asset, making it live on the Content Delivery API. The file must already be processed (have a URL) - 'Create asset' does this automatically.
Inputs
- Asset ID
asset_idtextRequired - The asset to act on, from 'List assets' or 'Get asset'.
Outputs
fieldsobjectprocessingCompletetrue/falsesysobject
Example output
{
"fields": {
"file": {
"en-US": {
"contentType": "image/jpeg",
"details": {
"size": 12345
},
"fileName": "sample.jpg",
"url": "//images.ctfassets.net/abc123space/5b6c/sample.jpg"
}
},
"title": {
"en-US": "Sample image"
}
},
"processingComplete": true,
"sys": {
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "5b6c7d8e9f0a1b2c3d4e5f6a",
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "Asset",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}Publish entry
Publish an entry, making it live on the Content Delivery API.
Inputs
- Entry ID
entry_idtextRequired - The entry to act on, from 'List entries' or 'Get entry'.
Outputs
fieldsobjectsysobject
Example output
{
"fields": {
"title": {
"en-US": "Hello, Contentful"
}
},
"sys": {
"contentType": {
"sys": {
"id": "blogPost",
"linkType": "ContentType",
"type": "Link"
}
},
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "4a5b6c7d8e9f0a1b2c3d4e5f",
"publishedAt": "2026-02-02T16:41:08.000Z",
"publishedVersion": 2,
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "Entry",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}Unpublish asset
Unpublish an asset. Required before it can be deleted.
Inputs
- Asset ID
asset_idtextRequired - The asset to act on, from 'List assets' or 'Get asset'.
Outputs
fieldsobjectprocessingCompletetrue/falsesysobject
Example output
{
"fields": {
"file": {
"en-US": {
"contentType": "image/jpeg",
"details": {
"size": 12345
},
"fileName": "sample.jpg",
"url": "//images.ctfassets.net/abc123space/5b6c/sample.jpg"
}
},
"title": {
"en-US": "Sample image"
}
},
"processingComplete": true,
"sys": {
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "5b6c7d8e9f0a1b2c3d4e5f6a",
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "Asset",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}Unpublish entry
Unpublish an entry. Required before it can be deleted.
Inputs
- Entry ID
entry_idtextRequired - The entry to act on, from 'List entries' or 'Get entry'.
Outputs
fieldsobjectsysobject
Example output
{
"fields": {
"title": {
"en-US": "Hello, Contentful"
}
},
"sys": {
"contentType": {
"sys": {
"id": "blogPost",
"linkType": "ContentType",
"type": "Link"
}
},
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "4a5b6c7d8e9f0a1b2c3d4e5f",
"publishedAt": "2026-02-02T16:41:08.000Z",
"publishedVersion": 2,
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "Entry",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}Update entry
Replace an entry's fields. This replaces the whole fields object rather than merging - include every field you want to keep, not only the ones changing.
Inputs
- Entry ID
entry_idtextRequired - The entry to act on, from 'List entries' or 'Get entry'.
- Fields
fieldsobjectRequired - The entry's fields, wrapped per locale, exactly as Contentful stores them - for example {"title": {"en-US": "Hello"}}. Field names must match the content type's model.
Outputs
fieldsobjectsysobject
Example output
{
"fields": {
"title": {
"en-US": "Hello, Contentful"
}
},
"sys": {
"contentType": {
"sys": {
"id": "blogPost",
"linkType": "ContentType",
"type": "Link"
}
},
"createdAt": "2026-01-14T09:12:44.000Z",
"environment": {
"sys": {
"id": "master",
"linkType": "Environment",
"type": "Link"
}
},
"id": "4a5b6c7d8e9f0a1b2c3d4e5f",
"publishedAt": "2026-02-02T16:41:08.000Z",
"publishedVersion": 2,
"space": {
"sys": {
"id": "abc123space",
"linkType": "Space",
"type": "Link"
}
},
"type": "Entry",
"updatedAt": "2026-02-02T16:41:08.000Z",
"version": 3
}
}