Update consent banner
Update a consent banner’s content, appearance or targeting. Set
enabled to true to make it live.
curl --request PUT \
--url https://cookiechimp.com/api/v1/consent-banners/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"consent_banner": {
"name": "EU banner",
"consent_title": "We use cookies",
"consent_mode": "opt_in",
"target_type": "selected_countries",
"target_countries": [
"DE",
"FR"
]
}
}
'import requests
url = "https://cookiechimp.com/api/v1/consent-banners/{id}"
payload = { "consent_banner": {
"name": "EU banner",
"consent_title": "We use cookies",
"consent_mode": "opt_in",
"target_type": "selected_countries",
"target_countries": ["DE", "FR"]
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
consent_banner: {
name: 'EU banner',
consent_title: 'We use cookies',
consent_mode: 'opt_in',
target_type: 'selected_countries',
target_countries: ['DE', 'FR']
}
})
};
fetch('https://cookiechimp.com/api/v1/consent-banners/{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://cookiechimp.com/api/v1/consent-banners/{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([
'consent_banner' => [
'name' => 'EU banner',
'consent_title' => 'We use cookies',
'consent_mode' => 'opt_in',
'target_type' => 'selected_countries',
'target_countries' => [
'DE',
'FR'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://cookiechimp.com/api/v1/consent-banners/{id}"
payload := strings.NewReader("{\n \"consent_banner\": {\n \"name\": \"EU banner\",\n \"consent_title\": \"We use cookies\",\n \"consent_mode\": \"opt_in\",\n \"target_type\": \"selected_countries\",\n \"target_countries\": [\n \"DE\",\n \"FR\"\n ]\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://cookiechimp.com/api/v1/consent-banners/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"consent_banner\": {\n \"name\": \"EU banner\",\n \"consent_title\": \"We use cookies\",\n \"consent_mode\": \"opt_in\",\n \"target_type\": \"selected_countries\",\n \"target_countries\": [\n \"DE\",\n \"FR\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cookiechimp.com/api/v1/consent-banners/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"consent_banner\": {\n \"name\": \"EU banner\",\n \"consent_title\": \"We use cookies\",\n \"consent_mode\": \"opt_in\",\n \"target_type\": \"selected_countries\",\n \"target_countries\": [\n \"DE\",\n \"FR\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "ban1",
"name": "EU banner",
"enabled": true,
"enable_tcf": false,
"force_consent": false,
"consent_mode": "opt_in",
"consent_duration_days": 180,
"consent_layout": "box",
"consent_position": "bottom_center",
"consent_title": "We use cookies",
"consent_description": "We use cookies to improve your experience.",
"privacy_policy_url": "https://example.com/privacy",
"preferences_control_level": "category_and_services",
"dark_mode": "light",
"language_autodetect": "document",
"revision": 2,
"target_type": "selected_countries",
"target_countries": [
"DE",
"FR"
],
"target_us_states": [],
"target_canadian_regions": [],
"translations": [
{
"id": "trn1",
"language_code": "de"
},
{
"id": "trn2",
"language_code": "fr"
}
],
"created_at": "2023-01-05T10:15:30Z",
"updated_at": "2023-02-01T08:00:00Z"
}
}{
"errors": [
{
"code": 400,
"message": "Specify account_id when the API key can access more than one account"
}
]
}{
"errors": [
{
"code": 401,
"message": "API key must belong to an account"
}
]
}{
"errors": [
{
"code": 403,
"message": "User must be an admin of this account"
}
]
}{
"errors": [
{
"code": 404,
"message": "Record not found"
}
]
}{
"errors": [
{
"error": "Name can't be blank"
}
]
}{
"errors": [
{
"code": 429,
"message": "Too many requests. Please retry later."
}
]
}Authorizations
API token obtained from the login endpoint or the dashboard
Path Parameters
ID of the resource
Query Parameters
Which account to act on, as the account's API id. Only meaningful for a user API key, which may reach several accounts — an account key already identifies exactly one and ignores this.
Accepted by the endpoints that declare it; others act on the account the key resolves to on its own.
Optional for reads, where it narrows the request to that account.
Required for writes that declare it when the key can reach more than one
account: without it the request would act on an account it picked rather
than one you named, so it is refused with a 400.
Body
Consent banner to update
Everything a banner accepts on update, including its translations.
Show child attributes
Show child attributes
Response
Updated consent banner
Every setting the update endpoint accepts, plus the read-only fields below — the response is derived from the same list the API permits, so a banner can be read, edited and sent back unchanged.
Show child attributes
Show child attributes
{
"id": "ban1",
"name": "EU banner",
"enabled": true,
"enable_tcf": false,
"force_consent": false,
"consent_mode": "opt_in",
"consent_duration_days": 180,
"consent_layout": "box",
"consent_position": "bottom_center",
"consent_title": "We use cookies",
"consent_description": "We use cookies to improve your experience.",
"privacy_policy_url": "https://example.com/privacy",
"preferences_control_level": "category_and_services",
"dark_mode": "light",
"language_autodetect": "document",
"revision": 2,
"target_type": "selected_countries",
"target_countries": ["DE", "FR"],
"target_us_states": [],
"target_canadian_regions": [],
"translations": [
{ "id": "trn1", "language_code": "de" },
{ "id": "trn2", "language_code": "fr" }
],
"created_at": "2023-01-05T10:15:30Z",
"updated_at": "2023-02-01T08:00:00Z"
}
Was this page helpful?
curl --request PUT \
--url https://cookiechimp.com/api/v1/consent-banners/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"consent_banner": {
"name": "EU banner",
"consent_title": "We use cookies",
"consent_mode": "opt_in",
"target_type": "selected_countries",
"target_countries": [
"DE",
"FR"
]
}
}
'import requests
url = "https://cookiechimp.com/api/v1/consent-banners/{id}"
payload = { "consent_banner": {
"name": "EU banner",
"consent_title": "We use cookies",
"consent_mode": "opt_in",
"target_type": "selected_countries",
"target_countries": ["DE", "FR"]
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
consent_banner: {
name: 'EU banner',
consent_title: 'We use cookies',
consent_mode: 'opt_in',
target_type: 'selected_countries',
target_countries: ['DE', 'FR']
}
})
};
fetch('https://cookiechimp.com/api/v1/consent-banners/{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://cookiechimp.com/api/v1/consent-banners/{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([
'consent_banner' => [
'name' => 'EU banner',
'consent_title' => 'We use cookies',
'consent_mode' => 'opt_in',
'target_type' => 'selected_countries',
'target_countries' => [
'DE',
'FR'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://cookiechimp.com/api/v1/consent-banners/{id}"
payload := strings.NewReader("{\n \"consent_banner\": {\n \"name\": \"EU banner\",\n \"consent_title\": \"We use cookies\",\n \"consent_mode\": \"opt_in\",\n \"target_type\": \"selected_countries\",\n \"target_countries\": [\n \"DE\",\n \"FR\"\n ]\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://cookiechimp.com/api/v1/consent-banners/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"consent_banner\": {\n \"name\": \"EU banner\",\n \"consent_title\": \"We use cookies\",\n \"consent_mode\": \"opt_in\",\n \"target_type\": \"selected_countries\",\n \"target_countries\": [\n \"DE\",\n \"FR\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cookiechimp.com/api/v1/consent-banners/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"consent_banner\": {\n \"name\": \"EU banner\",\n \"consent_title\": \"We use cookies\",\n \"consent_mode\": \"opt_in\",\n \"target_type\": \"selected_countries\",\n \"target_countries\": [\n \"DE\",\n \"FR\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "ban1",
"name": "EU banner",
"enabled": true,
"enable_tcf": false,
"force_consent": false,
"consent_mode": "opt_in",
"consent_duration_days": 180,
"consent_layout": "box",
"consent_position": "bottom_center",
"consent_title": "We use cookies",
"consent_description": "We use cookies to improve your experience.",
"privacy_policy_url": "https://example.com/privacy",
"preferences_control_level": "category_and_services",
"dark_mode": "light",
"language_autodetect": "document",
"revision": 2,
"target_type": "selected_countries",
"target_countries": [
"DE",
"FR"
],
"target_us_states": [],
"target_canadian_regions": [],
"translations": [
{
"id": "trn1",
"language_code": "de"
},
{
"id": "trn2",
"language_code": "fr"
}
],
"created_at": "2023-01-05T10:15:30Z",
"updated_at": "2023-02-01T08:00:00Z"
}
}{
"errors": [
{
"code": 400,
"message": "Specify account_id when the API key can access more than one account"
}
]
}{
"errors": [
{
"code": 401,
"message": "API key must belong to an account"
}
]
}{
"errors": [
{
"code": 403,
"message": "User must be an admin of this account"
}
]
}{
"errors": [
{
"code": 404,
"message": "Record not found"
}
]
}{
"errors": [
{
"error": "Name can't be blank"
}
]
}{
"errors": [
{
"code": 429,
"message": "Too many requests. Please retry later."
}
]
}