EN IT

Content (V2)

V2 content endpoints use a simplified flat-dictionary model for fields and a separate translations dictionary for localized values.

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

POST /v2/contents/{contentTypeKey}/ids V2

Get content IDs only (V2)

Returns only the IDs of matching content items using V2 filtering.

Requires ReadAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string The content type key

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 matching items
401 Unauthorized

Code examples

curl -X POST "https://api.contit.cloud/v2/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/v2/contents/{contentTypeKey}/ids", content);

response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
const response = await fetch(
  "https://api.contit.cloud/v2/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/v2/contents/{contentTypeKey}/ids",
    json=payload,
    headers=headers
)

data = response.json()
Example Request
{
  "filter": {
    "type": "and",
    "conditions": [
      { "type": "condition", "fieldKey": "active", "operator": "e", "value": true }
    ]
  },
  "page": 1,
  "pageSize": 50
}
Example Response 200
{
  "ids": [
    "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "b2c3d4e5-f6a7-8901-bcde-f12345678901"
  ],
  "total": 2
}
Try it Live
GET /v2/contents/{contentTypeKey}/{id} V2

Get single content (V2)

Retrieve a single content item by ID using the V2 flat-dictionary model.

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
fields object Flat dictionary of field key to value
translations object Dictionary of field key to locale-value pairs
401 Unauthorized
404 Not Found

Code examples

curl -X GET "https://api.contit.cloud/v2/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/v2/contents/{contentTypeKey}/{id}");

response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
const response = await fetch(
  "https://api.contit.cloud/v2/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/v2/contents/{contentTypeKey}/{id}",
    headers=headers
)

data = response.json()
Example Response 200
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "fields": {
    "title": "Breaking News",
    "body": "<p>Full article content here.</p>",
    "category": "news",
    "publishDate": "2026-03-15T10:30:00Z",
    "featured": true
  },
  "translations": {
    "title": {
      "en": "Breaking News",
      "it": "Ultime Notizie"
    },
    "body": {
      "en": "<p>Full article content here.</p>",
      "it": "<p>Contenuto completo dell'articolo.</p>"
    }
  }
}
Try it Live
PUT /v2/contents/{contentTypeKey} V2

Create or update content (V2)

Create a new content item (omit id) or update an existing one using the V2 flat-dictionary model with separate translations.

Requires WriteAccess policy

Path Parameters

NameTypeRequiredDescription
contentTypeKey string The content type key

Request Body application/json

PropertyTypeRequiredDescription
id string Content item ID. Omit or null to create a new item.
fields object Flat dictionary of field key to value
translations object Dictionary of field key to locale-value pairs for localized fields
clientInfo string Optional client identifier for audit logging

Responses

200 Success — returns the saved V2 content item
id string Content item ID (generated if new)
fields object Flat dictionary of field key to value
translations object Translations dictionary
401 Unauthorized

Code examples

curl -X PUT "https://api.contit.cloud/v2/contents/{contentTypeKey}" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "id_value",
  "fields": "fields_value",
  "translations": "translations_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/v2/contents/{contentTypeKey}",
  {
    method: "PUT",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
  "id": "id_value",
  "fields": "fields_value",
  "translations": "translations_value",
  "clientInfo": "clientInfo_value"
})
  }
);

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

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

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

data = response.json()
Example Request
{
  "id": null,
  "fields": {
    "title": "New Article",
    "body": "<p>Content goes here.</p>",
    "category": "blog"
  },
  "translations": {
    "title": {
      "en": "New Article",
      "it": "Nuovo Articolo"
    },
    "body": {
      "en": "<p>Content goes here.</p>",
      "it": "<p>Il contenuto va qui.</p>"
    }
  },
  "clientInfo": "cms-editor-v2"
}
Example Response 200
{
  "id": "c9d0e1f2-a3b4-5678-ghij-901234567890",
  "fields": {
    "title": "New Article",
    "body": "<p>Content goes here.</p>",
    "category": "blog"
  },
  "translations": {
    "title": {
      "en": "New Article",
      "it": "Nuovo Articolo"
    },
    "body": {
      "en": "<p>Content goes here.</p>",
      "it": "<p>Il contenuto va qui.</p>"
    }
  }
}
Try it Live