Create service
Create a service under one of the account’s categories. category_id
is required and must belong to this account.
curl --request POST \
--url https://cookiechimp.com/api/v1/services \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"site_service": {
"name": "Google Analytics",
"category_id": "cat1",
"processing_company": "Google LLC",
"privacy_policy_url": "https://policies.google.com/privacy",
"auto_block": true
}
}
'import requests
url = "https://cookiechimp.com/api/v1/services"
payload = { "site_service": {
"name": "Google Analytics",
"category_id": "cat1",
"processing_company": "Google LLC",
"privacy_policy_url": "https://policies.google.com/privacy",
"auto_block": True
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
site_service: {
name: 'Google Analytics',
category_id: 'cat1',
processing_company: 'Google LLC',
privacy_policy_url: 'https://policies.google.com/privacy',
auto_block: true
}
})
};
fetch('https://cookiechimp.com/api/v1/services', 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/services",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'site_service' => [
'name' => 'Google Analytics',
'category_id' => 'cat1',
'processing_company' => 'Google LLC',
'privacy_policy_url' => 'https://policies.google.com/privacy',
'auto_block' => true
]
]),
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/services"
payload := strings.NewReader("{\n \"site_service\": {\n \"name\": \"Google Analytics\",\n \"category_id\": \"cat1\",\n \"processing_company\": \"Google LLC\",\n \"privacy_policy_url\": \"https://policies.google.com/privacy\",\n \"auto_block\": true\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://cookiechimp.com/api/v1/services")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"site_service\": {\n \"name\": \"Google Analytics\",\n \"category_id\": \"cat1\",\n \"processing_company\": \"Google LLC\",\n \"privacy_policy_url\": \"https://policies.google.com/privacy\",\n \"auto_block\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cookiechimp.com/api/v1/services")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"site_service\": {\n \"name\": \"Google Analytics\",\n \"category_id\": \"cat1\",\n \"processing_company\": \"Google LLC\",\n \"privacy_policy_url\": \"https://policies.google.com/privacy\",\n \"auto_block\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "svc1",
"name": "Google Analytics",
"description": "Measures how visitors use the site.",
"processing_company": "Google LLC",
"privacy_policy_url": "https://policies.google.com/privacy",
"additional_info": null,
"accepted_by_default": false,
"enabled": true,
"auto_block": true,
"auto_block_domains": [
"google-analytics.com"
],
"default_language": "en",
"category": {
"id": "cat1",
"name": "Analytics"
},
"translations": [
{
"id": "svct1",
"language_code": "de",
"description": "Misst, wie Besucher die Website nutzen.",
"additional_info": null
}
],
"created_at": "2023-03-01T09:00:00Z",
"updated_at": "2023-03-23T12:34:56Z"
}
}{
"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": 401,
"message": "Invalid API Key"
}
]
}{
"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
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
Service to create
A service is always filed under a category, so category_id is
required here even though it is optional when updating. Translations are
absent for the same reason they are on banners — add them by updating
the service, which is where the account's language entitlement is
enforced. Sending them anyway is not an error, they are simply ignored.
Show child attributes
Show child attributes
Response
Created service
Show child attributes
Show child attributes
{
"id": "svc1",
"name": "Google Analytics",
"description": "Measures how visitors use the site.",
"processing_company": "Google LLC",
"privacy_policy_url": "https://policies.google.com/privacy",
"additional_info": null,
"accepted_by_default": false,
"enabled": true,
"auto_block": true,
"auto_block_domains": ["google-analytics.com"],
"default_language": "en",
"category": { "id": "cat1", "name": "Analytics" },
"translations": [
{
"id": "svct1",
"language_code": "de",
"description": "Misst, wie Besucher die Website nutzen.",
"additional_info": null
}
],
"created_at": "2023-03-01T09:00:00Z",
"updated_at": "2023-03-23T12:34:56Z"
}
Was this page helpful?
curl --request POST \
--url https://cookiechimp.com/api/v1/services \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"site_service": {
"name": "Google Analytics",
"category_id": "cat1",
"processing_company": "Google LLC",
"privacy_policy_url": "https://policies.google.com/privacy",
"auto_block": true
}
}
'import requests
url = "https://cookiechimp.com/api/v1/services"
payload = { "site_service": {
"name": "Google Analytics",
"category_id": "cat1",
"processing_company": "Google LLC",
"privacy_policy_url": "https://policies.google.com/privacy",
"auto_block": True
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
site_service: {
name: 'Google Analytics',
category_id: 'cat1',
processing_company: 'Google LLC',
privacy_policy_url: 'https://policies.google.com/privacy',
auto_block: true
}
})
};
fetch('https://cookiechimp.com/api/v1/services', 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/services",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'site_service' => [
'name' => 'Google Analytics',
'category_id' => 'cat1',
'processing_company' => 'Google LLC',
'privacy_policy_url' => 'https://policies.google.com/privacy',
'auto_block' => true
]
]),
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/services"
payload := strings.NewReader("{\n \"site_service\": {\n \"name\": \"Google Analytics\",\n \"category_id\": \"cat1\",\n \"processing_company\": \"Google LLC\",\n \"privacy_policy_url\": \"https://policies.google.com/privacy\",\n \"auto_block\": true\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://cookiechimp.com/api/v1/services")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"site_service\": {\n \"name\": \"Google Analytics\",\n \"category_id\": \"cat1\",\n \"processing_company\": \"Google LLC\",\n \"privacy_policy_url\": \"https://policies.google.com/privacy\",\n \"auto_block\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cookiechimp.com/api/v1/services")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"site_service\": {\n \"name\": \"Google Analytics\",\n \"category_id\": \"cat1\",\n \"processing_company\": \"Google LLC\",\n \"privacy_policy_url\": \"https://policies.google.com/privacy\",\n \"auto_block\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "svc1",
"name": "Google Analytics",
"description": "Measures how visitors use the site.",
"processing_company": "Google LLC",
"privacy_policy_url": "https://policies.google.com/privacy",
"additional_info": null,
"accepted_by_default": false,
"enabled": true,
"auto_block": true,
"auto_block_domains": [
"google-analytics.com"
],
"default_language": "en",
"category": {
"id": "cat1",
"name": "Analytics"
},
"translations": [
{
"id": "svct1",
"language_code": "de",
"description": "Misst, wie Besucher die Website nutzen.",
"additional_info": null
}
],
"created_at": "2023-03-01T09:00:00Z",
"updated_at": "2023-03-23T12:34:56Z"
}
}{
"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": 401,
"message": "Invalid API Key"
}
]
}{
"errors": [
{
"error": "Name can't be blank"
}
]
}{
"errors": [
{
"code": 429,
"message": "Too many requests. Please retry later."
}
]
}