EN IT

Content (V1)

Endpoints for searching, reading, creating, updating, and deleting content items using the V1 field model (fields as typed array).

Base URL: https://api.contit.cloud

POST /contents/{contentTypeKey}/ids

Get content IDs only

Returns only the IDs of matching content items, useful for bulk operations or cross-referencing without loading full content.

Requires ReadAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string ✓ The content type key (e.g. 'Product', 'Article')

Request Body application/json

PropertyTypeRequiredDescription
filter object — Filter tree to restrict results
page integer — Page number (1-based)
pageSize integer — Number of items per page

Responses

200 Success
ids string[] Array of content item IDs
total integer Total number of matching items
401 Unauthorized

Code examples

curl -X POST "https://api.contit.cloud/contents/{contentTypeKey}/ids" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "filter": "filter_value",
  "page": 1,
  "pageSize": 1
}'
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-Api-Key", "YOUR_API_KEY");

var content = new StringContent("{
  \"filter\": \"filter_value\",
  \"page\": 1,
  \"pageSize\": 1
}",
    Encoding.UTF8, "application/json");
var response = await http.PostAsync(
    "https://api.contit.cloud/contents/{contentTypeKey}/ids", content);

response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
const response = await fetch(
  "https://api.contit.cloud/contents/{contentTypeKey}/ids",
  {
    method: "POST",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
  "filter": "filter_value",
  "page": 1,
  "pageSize": 1
})
  }
);

const data = await response.json();
import requests

headers = {"X-Api-Key": "YOUR_API_KEY"}
payload = {
  "filter": "filter_value",
  "page": 1,
  "pageSize": 1
}

response = requests.post(
    "https://api.contit.cloud/contents/{contentTypeKey}/ids",
    json=payload,
    headers=headers
)

data = response.json()
Example Request
{
  "filter": {
    "type": "and",
    "conditions": [
      { "type": "condition", "fieldKey": "status", "operator": "e", "value": "published" }
    ]
  },
  "page": 1,
  "pageSize": 100
}
Example Response 200
{
  "ids": [
    "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "c3d4e5f6-a7b8-9012-cdef-123456789012"
  ],
  "total": 3
}
Try it Live
GET /contents/{contentTypeKey}/{id}

Get single content

Retrieve a single content item by its ID.

Requires ReadAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string ✓ The content type key
id string ✓ The content item ID (GUID)

Responses

200 Success
id string Content item ID
contentType string Content type key
fields ContentField[] Array of typed fields
createdAt datetime Creation timestamp
updatedAt datetime Last update timestamp
401 Unauthorized
404 Not Found — content item does not exist

Code examples

curl -X GET "https://api.contit.cloud/contents/{contentTypeKey}/{id}" \
  -H "X-Api-Key: YOUR_API_KEY"
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-Api-Key", "YOUR_API_KEY");

var response = await http.GetAsync("https://api.contit.cloud/contents/{contentTypeKey}/{id}");

response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
const response = await fetch(
  "https://api.contit.cloud/contents/{contentTypeKey}/{id}",
  {
    method: "GET",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
    }
  }
);

const data = await response.json();
import requests

headers = {"X-Api-Key": "YOUR_API_KEY"}

response = requests.get(
    "https://api.contit.cloud/contents/{contentTypeKey}/{id}",
    headers=headers
)

data = response.json()
Example Response 200
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "contentType": "Article",
  "fields": [
    { "type": "Text", "key": "title", "value": "Hello World" },
    { "type": "RichText", "key": "body", "value": "<p>Welcome to Contit.</p>" },
    { "type": "DateTime", "key": "publishDate", "value": "2026-03-15T10:30:00Z" }
  ],
  "createdAt": "2026-03-10T08:00:00Z",
  "updatedAt": "2026-03-15T10:30:00Z"
}
Try it Live
POST /contents/{contentTypeKey}/{id}

Get content with relations

Retrieve a single content item by ID, optionally expanding related content and specifying a locale for translated fields.

Requires ReadAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string ✓ The content type key
id string ✓ The content item ID (GUID)

Request Body application/json

PropertyTypeRequiredDescription
locale string — Locale code for translated fields (e.g. 'en', 'it')
includeRelations string[] — Relation field keys to expand inline

Responses

200 Success — content item with expanded relations
id string Content item ID
contentType string Content type key
fields ContentField[] Array of typed fields, with relations expanded
401 Unauthorized
404 Not Found

Code examples

curl -X POST "https://api.contit.cloud/contents/{contentTypeKey}/{id}" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "locale": "locale_value",
  "includeRelations": []
}'
var client = new ContitClient(
    new ClientContitConfiguration(clientId, clientSecret));

var result = await client.Content.Get<MyModel>(contentType, new ContentsRequest
{
    Page = 1, PageSize = 20
});
const response = await fetch(
  "https://api.contit.cloud/contents/{contentTypeKey}/{id}",
  {
    method: "POST",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
  "locale": "locale_value",
  "includeRelations": []
})
  }
);

const data = await response.json();
import requests

headers = {"X-Api-Key": "YOUR_API_KEY"}
payload = {
  "locale": "locale_value",
  "includeRelations": []
}

response = requests.post(
    "https://api.contit.cloud/contents/{contentTypeKey}/{id}",
    json=payload,
    headers=headers
)

data = response.json()
Example Request
{
  "locale": "it",
  "includeRelations": ["category", "author"]
}
Example Response 200
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "contentType": "Article",
  "fields": [
    { "type": "Text", "key": "title", "value": "Ciao Mondo" },
    { "type": "Relation", "key": "category", "value": { "id": "d4e5f6a7-b8c9-0123-defg-456789012345", "contentType": "Category", "fields": [{ "type": "Text", "key": "name", "value": "Tecnologia" }] } },
    { "type": "Relation", "key": "author", "value": { "id": "e5f6a7b8-c9d0-1234-efgh-567890123456", "contentType": "Author", "fields": [{ "type": "Text", "key": "name", "value": "Marco Rossi" }] } }
  ],
  "createdAt": "2026-03-10T08:00:00Z",
  "updatedAt": "2026-03-15T10:30:00Z"
}
Try it Live
POST /contents/{contentTypeKey}/aggregate

Aggregate field values

Compute an aggregate (Sum, Avg, Min, Max, or Count) on a numeric field across matching content items.

Requires ReadAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string ✓ The content type key

Request Body application/json

PropertyTypeRequiredDescription
fieldKey string ✓ The field key to aggregate on
aggregateType string ✓ Aggregation function: Sum, Avg, Min, Max, or Count
filter object — Optional filter to restrict which items are aggregated

Responses

200 Success — returns a single decimal value
value decimal The computed aggregate value
401 Unauthorized

Code examples

curl -X POST "https://api.contit.cloud/contents/{contentTypeKey}/aggregate" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "fieldKey": "fieldKey_value",
  "aggregateType": "aggregateType_value",
  "filter": "filter_value"
}'
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-Api-Key", "YOUR_API_KEY");

var content = new StringContent("{
  \"fieldKey\": \"fieldKey_value\",
  \"aggregateType\": \"aggregateType_value\",
  \"filter\": \"filter_value\"
}",
    Encoding.UTF8, "application/json");
var response = await http.PostAsync(
    "https://api.contit.cloud/contents/{contentTypeKey}/aggregate", content);

response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
const response = await fetch(
  "https://api.contit.cloud/contents/{contentTypeKey}/aggregate",
  {
    method: "POST",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
  "fieldKey": "fieldKey_value",
  "aggregateType": "aggregateType_value",
  "filter": "filter_value"
})
  }
);

const data = await response.json();
import requests

headers = {"X-Api-Key": "YOUR_API_KEY"}
payload = {
  "fieldKey": "fieldKey_value",
  "aggregateType": "aggregateType_value",
  "filter": "filter_value"
}

response = requests.post(
    "https://api.contit.cloud/contents/{contentTypeKey}/aggregate",
    json=payload,
    headers=headers
)

data = response.json()
Example Request
{
  "type": "condition",
            "fieldKey": "price",
  "aggregateType": "Avg",
  "filter": {
    "type": "and",
    "conditions": [
      { "type": "condition", "fieldKey": "status", "operator": "e", "value": "published" }
    ]
  }
}
Example Response 200
{
  "value": 49.95
}
Try it Live
POST /contents/{contentTypeKey}/aggregategroup

Grouped aggregation

Compute an aggregate grouped by a specific field, returning one result per distinct group value.

Requires ReadAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string ✓ The content type key

Request Body application/json

PropertyTypeRequiredDescription
fieldKey string ✓ The field key to aggregate on
aggregateType string ✓ Aggregation function: Sum, Avg, Min, Max, or Count
groupByFieldKey string ✓ The field key to group results by
filter object — Optional filter to restrict which items are aggregated

Responses

200 Success
items AggregateGroupItem[] Array of group-value / aggregate-value pairs
401 Unauthorized

Code examples

curl -X POST "https://api.contit.cloud/contents/{contentTypeKey}/aggregategroup" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "fieldKey": "fieldKey_value",
  "aggregateType": "aggregateType_value",
  "groupByFieldKey": "groupByFieldKey_value",
  "filter": "filter_value"
}'
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-Api-Key", "YOUR_API_KEY");

var content = new StringContent("{
  \"fieldKey\": \"fieldKey_value\",
  \"aggregateType\": \"aggregateType_value\",
  \"groupByFieldKey\": \"groupByFieldKey_value\",
  \"filter\": \"filter_value\"
}",
    Encoding.UTF8, "application/json");
var response = await http.PostAsync(
    "https://api.contit.cloud/contents/{contentTypeKey}/aggregategroup", content);

response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
const response = await fetch(
  "https://api.contit.cloud/contents/{contentTypeKey}/aggregategroup",
  {
    method: "POST",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
  "fieldKey": "fieldKey_value",
  "aggregateType": "aggregateType_value",
  "groupByFieldKey": "groupByFieldKey_value",
  "filter": "filter_value"
})
  }
);

const data = await response.json();
import requests

headers = {"X-Api-Key": "YOUR_API_KEY"}
payload = {
  "fieldKey": "fieldKey_value",
  "aggregateType": "aggregateType_value",
  "groupByFieldKey": "groupByFieldKey_value",
  "filter": "filter_value"
}

response = requests.post(
    "https://api.contit.cloud/contents/{contentTypeKey}/aggregategroup",
    json=payload,
    headers=headers
)

data = response.json()
Example Request
{
  "type": "condition",
            "fieldKey": "price",
  "aggregateType": "Sum",
  "groupByFieldKey": "category",
  "filter": null
}
Example Response 200
{
  "items": [
    { "groupValue": "Electronics", "aggregateValue": 2499.90 },
    { "groupValue": "Books", "aggregateValue": 389.50 },
    { "groupValue": "Clothing", "aggregateValue": 1250.00 }
  ]
}
Try it Live
POST /contents/{contentTypeKey}/encrypt/check

Check encrypted field value

Verify that an encrypted field matches a given plaintext value without revealing the stored data.

Requires ReadAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string ✓ The content type key

Request Body application/json

PropertyTypeRequiredDescription
id string ✓ The content item ID
encryptFields object ✓ Dictionary of field key to plaintext value to check against

Responses

200 Success — returns true if values match
match boolean Whether the provided value matches the stored encrypted value
401 Unauthorized
404 Not Found

Code examples

curl -X POST "https://api.contit.cloud/contents/{contentTypeKey}/encrypt/check" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "id_value",
  "encryptFields": "encryptFields_value"
}'
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-Api-Key", "YOUR_API_KEY");

var content = new StringContent("{
  \"id\": \"id_value\",
  \"encryptFields\": \"encryptFields_value\"
}",
    Encoding.UTF8, "application/json");
var response = await http.PostAsync(
    "https://api.contit.cloud/contents/{contentTypeKey}/encrypt/check", content);

response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
const response = await fetch(
  "https://api.contit.cloud/contents/{contentTypeKey}/encrypt/check",
  {
    method: "POST",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
  "id": "id_value",
  "encryptFields": "encryptFields_value"
})
  }
);

const data = await response.json();
import requests

headers = {"X-Api-Key": "YOUR_API_KEY"}
payload = {
  "id": "id_value",
  "encryptFields": "encryptFields_value"
}

response = requests.post(
    "https://api.contit.cloud/contents/{contentTypeKey}/encrypt/check",
    json=payload,
    headers=headers
)

data = response.json()
Example Request
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "encryptFields": {
    "ssn": "123-45-6789"
  }
}
Example Response 200
{
  "match": true
}
Try it Live
POST /contents/{contentTypeKey}/encrypt/decrypt

Decrypt encrypted fields

Decrypt one or more encrypted fields on a content item. Requires a valid TOTP code for additional security.

Requires ReadAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string ✓ The content type key

Request Body application/json

PropertyTypeRequiredDescription
id string ✓ The content item ID
encryptFieldKeys string[] ✓ Array of field keys to decrypt
totpCode string ✓ Time-based one-time password for authorization

Responses

200 Success — returns decrypted field values
fields object Dictionary of field key to decrypted plaintext value
401 Unauthorized
403 Forbidden — invalid TOTP code

Code examples

curl -X POST "https://api.contit.cloud/contents/{contentTypeKey}/encrypt/decrypt" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "id_value",
  "encryptFieldKeys": [],
  "totpCode": "totpCode_value"
}'
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-Api-Key", "YOUR_API_KEY");

var content = new StringContent("{
  \"id\": \"id_value\",
  \"encryptFieldKeys\": [],
  \"totpCode\": \"totpCode_value\"
}",
    Encoding.UTF8, "application/json");
var response = await http.PostAsync(
    "https://api.contit.cloud/contents/{contentTypeKey}/encrypt/decrypt", content);

response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
const response = await fetch(
  "https://api.contit.cloud/contents/{contentTypeKey}/encrypt/decrypt",
  {
    method: "POST",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
  "id": "id_value",
  "encryptFieldKeys": [],
  "totpCode": "totpCode_value"
})
  }
);

const data = await response.json();
import requests

headers = {"X-Api-Key": "YOUR_API_KEY"}
payload = {
  "id": "id_value",
  "encryptFieldKeys": [],
  "totpCode": "totpCode_value"
}

response = requests.post(
    "https://api.contit.cloud/contents/{contentTypeKey}/encrypt/decrypt",
    json=payload,
    headers=headers
)

data = response.json()
Example Request
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "encryptFieldKeys": ["ssn", "taxId"],
  "totpCode": "482916"
}
Example Response 200
{
  "fields": {
    "ssn": "123-45-6789",
    "taxId": "RSSMRC80A01H501Z"
  }
}
Try it Live
PUT /contents/{contentTypeKey}/encrypt

Set encrypted field values

Store one or more field values in encrypted form on a content item.

Requires WriteAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string ✓ The content type key

Request Body application/json

PropertyTypeRequiredDescription
id string ✓ The content item ID
encryptFields object ✓ Dictionary of field key to plaintext value to encrypt and store
clientInfo string — Optional client identifier for audit logging

Responses

200 Success — fields encrypted and stored
401 Unauthorized
404 Not Found

Code examples

curl -X PUT "https://api.contit.cloud/contents/{contentTypeKey}/encrypt" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "id_value",
  "encryptFields": "encryptFields_value",
  "clientInfo": "clientInfo_value"
}'
var client = new ContitClient(
    new ClientContitConfiguration(clientId, clientSecret));

await client.Content.AddOrUpdate(contentType, contentModel);
const response = await fetch(
  "https://api.contit.cloud/contents/{contentTypeKey}/encrypt",
  {
    method: "PUT",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
  "id": "id_value",
  "encryptFields": "encryptFields_value",
  "clientInfo": "clientInfo_value"
})
  }
);

const data = await response.json();
import requests

headers = {"X-Api-Key": "YOUR_API_KEY"}
payload = {
  "id": "id_value",
  "encryptFields": "encryptFields_value",
  "clientInfo": "clientInfo_value"
}

response = requests.put(
    "https://api.contit.cloud/contents/{contentTypeKey}/encrypt",
    json=payload,
    headers=headers
)

data = response.json()
Example Request
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "encryptFields": {
    "ssn": "123-45-6789"
  },
  "clientInfo": "admin-panel-v3"
}
Example Response 200
{
  "success": true
}
Try it Live
PUT /contents/{contentTypeKey}

Create or update content

Create a new content item (id = null) or update an existing one. Returns the full content model including system-generated fields.

Requires WriteAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string ✓ The content type key

Request Body application/json

PropertyTypeRequiredDescription
id string — Content item ID. Pass null or omit to create a new item.
contentType string ✓ The content type key (must match path parameter)
fields ContentField[] ✓ Array of typed fields with type, key, and value
clientInfo string — Optional client identifier for audit logging

Responses

200 Success — returns the saved content item with system fields populated
id string Content item ID (generated if new)
contentType string Content type key
fields ContentField[] Array of typed fields
createdAt datetime Creation timestamp
updatedAt datetime Last update timestamp
401 Unauthorized

Code examples

curl -X PUT "https://api.contit.cloud/contents/{contentTypeKey}" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "id_value",
  "contentType": "contentType_value",
  "fields": [],
  "clientInfo": "clientInfo_value"
}'
var client = new ContitClient(
    new ClientContitConfiguration(clientId, clientSecret));

await client.Content.AddOrUpdate(contentType, contentModel);
const response = await fetch(
  "https://api.contit.cloud/contents/{contentTypeKey}",
  {
    method: "PUT",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
  "id": "id_value",
  "contentType": "contentType_value",
  "fields": [],
  "clientInfo": "clientInfo_value"
})
  }
);

const data = await response.json();
import requests

headers = {"X-Api-Key": "YOUR_API_KEY"}
payload = {
  "id": "id_value",
  "contentType": "contentType_value",
  "fields": [],
  "clientInfo": "clientInfo_value"
}

response = requests.put(
    "https://api.contit.cloud/contents/{contentTypeKey}",
    json=payload,
    headers=headers
)

data = response.json()
Example Request
{
  "id": null,
  "contentType": "Article",
  "fields": [
    { "type": "Text", "key": "title", "value": "New Article" },
    { "type": "RichText", "key": "body", "value": "<p>Article body here.</p>" },
    { "type": "DateTime", "key": "publishDate", "value": "2026-03-20T09:00:00Z" }
  ],
  "clientInfo": "cms-editor"
}
Example Response 200
{
  "id": "f6a7b8c9-d0e1-2345-fghi-678901234567",
  "contentType": "Article",
  "fields": [
    { "type": "Text", "key": "title", "value": "New Article" },
    { "type": "RichText", "key": "body", "value": "<p>Article body here.</p>" },
    { "type": "DateTime", "key": "publishDate", "value": "2026-03-20T09:00:00Z" },
    { "type": "Text", "key": "_createdBy", "value": "api-client" }
  ],
  "createdAt": "2026-03-20T09:00:00Z",
  "updatedAt": "2026-03-20T09:00:00Z"
}
Try it Live
DELETE /contents/{contentTypeKey}/{id}

Delete content

Permanently delete a content item by its ID.

Requires WriteAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string ✓ The content type key
id string ✓ The content item ID (GUID)

Responses

200 Success — content deleted
401 Unauthorized
404 Not Found

Code examples

curl -X DELETE "https://api.contit.cloud/contents/{contentTypeKey}/{id}" \
  -H "X-Api-Key: YOUR_API_KEY"
var client = new ContitClient(
    new ClientContitConfiguration(clientId, clientSecret));

await client.Content.Delete(contentType, id);
const response = await fetch(
  "https://api.contit.cloud/contents/{contentTypeKey}/{id}",
  {
    method: "DELETE",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
    }
  }
);

const data = await response.json();
import requests

headers = {"X-Api-Key": "YOUR_API_KEY"}

response = requests.delete(
    "https://api.contit.cloud/contents/{contentTypeKey}/{id}",
    headers=headers
)

data = response.json()
Example Response 200
{
  "success": true
}
Try it Live
PUT /contents/{contentTypeKey}/publish Deprecated

Publish content (deprecated)

Deprecated. Use PUT /contents/{contentTypeKey} with the appropriate status field instead.

Deprecated — This endpoint is deprecated and will be removed in a future version.
Requires WriteAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string ✓ The content type key

Request Body application/json

PropertyTypeRequiredDescription
id string ✓ The content item ID to publish
clientInfo string — Optional client identifier

Responses

200 Success
401 Unauthorized

Code examples

curl -X PUT "https://api.contit.cloud/contents/{contentTypeKey}/publish" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "id_value",
  "clientInfo": "clientInfo_value"
}'
var client = new ContitClient(
    new ClientContitConfiguration(clientId, clientSecret));

await client.Content.AddOrUpdate(contentType, contentModel);
const response = await fetch(
  "https://api.contit.cloud/contents/{contentTypeKey}/publish",
  {
    method: "PUT",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
  "id": "id_value",
  "clientInfo": "clientInfo_value"
})
  }
);

const data = await response.json();
import requests

headers = {"X-Api-Key": "YOUR_API_KEY"}
payload = {
  "id": "id_value",
  "clientInfo": "clientInfo_value"
}

response = requests.put(
    "https://api.contit.cloud/contents/{contentTypeKey}/publish",
    json=payload,
    headers=headers
)

data = response.json()
Example Request
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "clientInfo": "cms-editor"
}
Example Response 200
{
  "success": true
}