{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"2618a971-a872-4fa3-ae51-652b0a232bd0","name":"contentbird Integration API","description":"Welcome to the contentbird Integration API documentation. With this documentation we will show you how easy it is to integrate the contentbird workflow to any other system (e.g. CMS).\n\n# Overview\n\nThere are two main concepts how you can integrate your system with our Integration API. You can decide between **PULL** or **PUSH**.\n\nIf you want to pull the data at any time, you can easily use our endpoints to do that.  \nIf you want to receive the data via webhook events (push), you can decide on which actions this should happen.\n\n**With the following diagram we want to show you the basic flow:**\n\n<img src=\"https://media.contentbird.io/static/images/contentbird-integration-api-flow.png\">\n\n[](https://de.contentbird.io/wp-content/uploads/sites/2/2020/01/contentbird-integration-api-flow.png)\n\nAs you can see inside the contentbird platform all needed content data are prepared and then will be send to your API (or you can fetch the data).\n\nEach data item (e.g. custom element) can be mapped to your system.\n\nAfter processing the data (e.g. store them to a database) you can either publish the content directly or do this later. As soon as the content got published you can update the status of the content inside contentbird.\n\n# Examples\n\nIn this section we want to show you some basic examples how you can integrate our API in your system.\n\n### Basic CMS integration\n\n**1\\. Storing the authentication data**\n\nFirst of all your integration needs to store the token you can generate under Setup / System / Integrations / Api authentication for the request header value `X-ContentbirdApiToken`.  \nBefore 2025-09-17 the header value was `X-ContentbirdCmsToken`\n\nYou should do this by storing it into a config file or database. [Learn more about the authentication here](#authentication).\n\nTo make the API calls your integration also needs to store our API URL ([https://api.live.mycontentbird.io/api/cms/](https://api.live.mycontentbird.io/api/cms/))\n\n**2\\. Create draft**\n\nIn contentbird the content managers and authors will produce each content and move it through different content statuses. As soon as the content is finally approved for publishing at the CMS, we can send a webhook to your integration ([Transition to content status](#201746a5-e359-441e-861f-887b7146b744)) with all information about this content.\n\nYour integration endpoint needs to read the content data and create a draft. For the basic integration the draft should have the content title and content from contentbird.\n\nIf you want to be more advanced and import more data you can check custom elements (e.g. meta description) or custom fields.\n\nWhile storing the draft your integration also needs to store the contentbird ID to be able to update the content via API.\n\nAfter successfully creating the draft we suggest your integration should [update the status inside contentbird](#0acab283-9f99-435f-8e00-6b2cc0691123) to let the users know about the success. The contentbird status name could be \"CMS imported\". If creating the draft will fail, you could update to another status \"CMS failed\".\n\n**3\\. Publish content**\n\nAs soon as the draft will be published inside the CMS, your integration needs to [update the content status inside contentbird](#feb8ad48-5dd3-426d-904a-60d76a292ceb) and send important data like the published content URL.\n\nIf the CMS supports setting a published date in the future, please make sure that your integration also will send the API call to update the content status.\n\n# Authentication\n\nAn API token is required to be sent as part of every request to the contentbird API, in the form of an `X-ContentbirdApiToken` request header.\n\nYou can generate under Setup / System / Integrations / Api authentication for the request header value `X-ContentbirdApiToken`.\n\nBefore 2025-09-17 the header value was `X-ContentbirdCmsToken`\n\n## API Token related error response\n\nIf an API token is missing, malformed, or invalid, you will receive a `401 Unauthorised` response code and the following JSON response:\n\n```\n{\n    \"statusCode\": 401,\n    \"message\": \"Invalid or missing token\"\n}\n\n ```\n\n# Error handling\n\ncoming soon ...\n\n# API reference","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"6174875","team":223299,"collectionId":"2618a971-a872-4fa3-ae51-652b0a232bd0","publishedId":"SWT7BKWp","public":true,"publicUrl":"https://api.docs.mycontentbird.io","privateUrl":"https://go.postman.co/documentation/6174875-2618a971-a872-4fa3-ae51-652b0a232bd0","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2021-12-16T10:40:38.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[{"name":"Production","id":"6902b0fc-8542-4fe0-9f9e-249793bb18c3","owner":"6174875","values":[{"key":"apiUrl","value":"https://api.live.mycontentbird.io/api/cms","enabled":true}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/275cc1ac36d9e935354470ce1ad4bfd25a9ada8012eca697a6dee21620e69016","favicon":"https://res.cloudinary.com/postman/image/upload/v1658145748/team/uyei1guodd4cnes2jo9b.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"Production","value":"6174875-6902b0fc-8542-4fe0-9f9e-249793bb18c3"}],"canonicalUrl":"https://api.docs.mycontentbird.io/view/metadata/SWT7BKWp"}