Update Content Type
curl --request PUT \
--url https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id} \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"layoutComponentId": "<string>",
"componentIdsAllowList": [
{}
],
"templateContentIds": [
"<string>"
],
"permissions": {},
"metadata": {}
}
'import requests
url = "https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id}"
payload = {
"name": "<string>",
"description": "<string>",
"layoutComponentId": "<string>",
"componentIdsAllowList": [{}],
"templateContentIds": ["<string>"],
"permissions": {},
"metadata": {}
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
layoutComponentId: '<string>',
componentIdsAllowList: [{}],
templateContentIds: ['<string>'],
permissions: {},
metadata: {}
})
};
fetch('https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'layoutComponentId' => '<string>',
'componentIdsAllowList' => [
[
]
],
'templateContentIds' => [
'<string>'
],
'permissions' => [
],
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"layoutComponentId\": \"<string>\",\n \"componentIdsAllowList\": [\n {}\n ],\n \"templateContentIds\": [\n \"<string>\"\n ],\n \"permissions\": {},\n \"metadata\": {}\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id}")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"layoutComponentId\": \"<string>\",\n \"componentIdsAllowList\": [\n {}\n ],\n \"templateContentIds\": [\n \"<string>\"\n ],\n \"permissions\": {},\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"layoutComponentId\": \"<string>\",\n \"componentIdsAllowList\": [\n {}\n ],\n \"templateContentIds\": [\n \"<string>\"\n ],\n \"permissions\": {},\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_bodyContent Types
Update Content Type
Update an existing content type
PUT
/
app
/
v1
/
organizations
/
{organizationId}
/
projects
/
{projectId}
/
content-types
/
{id}
Update Content Type
curl --request PUT \
--url https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id} \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"layoutComponentId": "<string>",
"componentIdsAllowList": [
{}
],
"templateContentIds": [
"<string>"
],
"permissions": {},
"metadata": {}
}
'import requests
url = "https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id}"
payload = {
"name": "<string>",
"description": "<string>",
"layoutComponentId": "<string>",
"componentIdsAllowList": [{}],
"templateContentIds": ["<string>"],
"permissions": {},
"metadata": {}
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
layoutComponentId: '<string>',
componentIdsAllowList: [{}],
templateContentIds: ['<string>'],
permissions: {},
metadata: {}
})
};
fetch('https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'layoutComponentId' => '<string>',
'componentIdsAllowList' => [
[
]
],
'templateContentIds' => [
'<string>'
],
'permissions' => [
],
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"layoutComponentId\": \"<string>\",\n \"componentIdsAllowList\": [\n {}\n ],\n \"templateContentIds\": [\n \"<string>\"\n ],\n \"permissions\": {},\n \"metadata\": {}\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id}")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"layoutComponentId\": \"<string>\",\n \"componentIdsAllowList\": [\n {}\n ],\n \"templateContentIds\": [\n \"<string>\"\n ],\n \"permissions\": {},\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content-types/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"layoutComponentId\": \"<string>\",\n \"componentIdsAllowList\": [\n {}\n ],\n \"templateContentIds\": [\n \"<string>\"\n ],\n \"permissions\": {},\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_bodyPath Parameters
Organization ID
Project ID
Content Type ID
Request Body
All fields are optional. Only provided fields will be updated.Display name for the content type
Structured markdown description
ID of the layout component
Array of component IDs or component groups
Array of pre-built content example IDs
Access control settings
Additional type metadata
Example Request
{
"description": "Updated description for blog posts",
"componentIdsAllowList": [
{
"id": "content",
"name": "Content Components",
"componentIds": ["c126", "c127"]
},
{
"id": "media",
"name": "Media Components",
"componentIds": ["c128", "c129"]
}
],
"templateContentIds": ["cont125", "cont126"]
}
Updating a published content type changes its status to
modified. The changes will not affect published content until the content type is published again.Response
Returns the updated ContentType object.{
"id": "ct123",
"name": "Article",
"description": "Updated description for blog posts",
"status": "modified",
"version": 3,
"lastPublishedVersion": 3,
"layoutComponentId": "c123",
"componentIdsAllowList": [
{
"id": "content",
"name": "Content Components",
"componentIds": ["c126", "c127"]
},
{
"id": "media",
"name": "Media Components",
"componentIds": ["c128", "c129"]
}
],
"packageVersion": "1.0.0",
"schema": { ... },
"templateContentIds": ["cont125", "cont126"],
"permissions": { ... },
"metadata": { ... },
"createdAt": "2024-03-20T10:00:00Z",
"updatedAt": "2024-03-21T14:30:00Z"
}
Error Responses
Content Type Not Found
{
"error": {
"code": "NOT_FOUND",
"message": "Content type not found"
}
}
Invalid Component Allow List
{
"error": {
"code": "VALIDATION_FAILED",
"message": "componentIdsAllowList validation failed",
"details": {
"duplicateGroupIds": ["questions"],
"invalidComponentIds": ["c999"],
"emptyGroups": ["media"],
"missingFields": [
{
"groupIndex": 2,
"missingFields": ["id"]
}
]
}
}
}
Code Examples
curl -X PUT "https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/content-types/ct123" \
-H "Authorization: Bearer YOUR_JWT" \
-H "Content-Type: application/json" \
-d '{
"description": "Updated description",
"componentIdsAllowList": ["c126", "c127", "c128"]
}'
const response = await fetch(
'https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/content-types/ct123',
{
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_JWT',
'Content-Type': 'application/json'
},
body: JSON.stringify({
description: 'Updated description',
componentIdsAllowList: ['c126', 'c127', 'c128']
})
}
);
const contentType = await response.json();
console.log(`Updated content type, new status: ${contentType.status}`);
⌘I