> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://contentful.com/developers/docs/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://contentful.com/_mcp/server. # Create a resource type PUT https://api.contentful.com/organizations/{organization_id}/app_definitions/{app_definition_id}/resource_provider/resource_types/{resource_type_id} Content-Type: application/vnd.contentful.management.v1+json Creates or updates a resource type for an app's resource provider. Requires the app to have an associated resource provider — PUT fails without one. Reference: https://contentful.com/developers/docs/references/content-management-api/native-external-references/create-a-resource-type ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Request ### Path parameters - `organization_id` (string, required) — The ID of the organization - `app_definition_id` (string, required) — The ID of the app definition - `resource_type_id` (string, required) — The ID of the resource type ### Body (application/vnd.contentful.management.v1+json) This endpoint expects a map from string to any. - `map from string to any` ## Response ### 200 OK - Request successful - `map from string to any` ## Examples **Request** ```json { "defaultFieldMapping": { "externalUrl": "{ /externalUrl }", "image": { "altText": "{ /name }", "url": "{ /image/url }" }, "subtitle": "Entity ID: { /urn }", "title": "{ /name }" }, "name": "TMDB:Person" } ``` **Response** ```json { "defaultFieldMapping": { "externalUrl": "{ /externalUrl }", "image": { "altText": "{ /name }", "url": "{ /image/url }" }, "subtitle": "Entity ID: { /urn }", "title": "{ /name }" }, "name": "TMDB:Person", "sys": { "appDefinition": { "sys": { "id": "99SummRPRBowauM8T5Ljb34", "linkType": "AppDefinition", "type": "Link" } }, "createdAt": "2025-02-19T17:31:45.000Z", "createdBy": { "sys": { "id": "7BslKh9TdKGOK41VmLDjFZ", "linkType": "User", "type": "Link" } }, "id": "TMDB:Person", "resourceProvider": { "sys": { "id": "TMDB", "linkType": "ResourceProvider", "type": "Link" } }, "type": "ResourceType", "updatedAt": "2025-02-19T17:31:45.000Z", "updatedBy": { "sys": { "id": "4FLrUHftHW3v2BLi9fzfjU", "linkType": "User", "type": "Link" } } } } ``` **SDK Code** ```android Android SDK currently doesn't implement this endpoint. ``` ```java Java SDK currently doesn't implement this endpoint. ``` ```kotlin Kotlin SDK currently doesn't implement this endpoint. ``` ```swift Swift We currently don't provide a CMA SDK for this platform. ``` ```js-legacy JavaScript (legacy) import { createClient } from 'contentful-management' const client = createClient({ accessToken: '' }, { type: 'legacy' }) client.getOrganization('') .then((organization) => organization.getAppDefinition('')) .then((appDefinition) => appDefinition.getResourceProvider()) .then((resourceProvider) => resourceProvider.upsertResourceType( ':', { name: 'Resource type name', defaultFieldMapping: { externalUrl: '{ /externalUrl }', title: '{ /name }', subtitle: 'Entity ID: { /urn }', image: { altText: '{ /name }', url: '{ /image/url }' } } }) ) .then((resourceType) => console.log(resourceType)) .catch(console.error); ``` ```javascript JavaScript import { createClient } from 'contentful-management' // Client init const client = contentful.createClient({ accessToken: '' }) const resourceType = await client.resourceType.upsert( { organizationId: '', appDefinitionId: '', resourceTypeId: ':', }, { name: 'Resource type name', defaultFieldMapping: { externalUrl: '{ /externalUrl }', title: '{ /name }', subtitle: 'Entity ID: { /urn }', image: { altText: '{ /name }', url: '{ /image/url }' } } } ) ``` ```php PHP SDK currently doesn't implement this endpoint. ``` ```ruby Ruby SDK currently doesn't implement this endpoint. ``` ```python Python SDK currently doesn't implement this endpoint. ``` ```.net .NET SDK currently doesn't implement this endpoint. ```