Skip to main content
POST
/
api
/
v1
/
public
/
groups
Create a content group
curl --request POST \
  --url https://eu.phrase.com/control-hub/api/v1/public/groups \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "description": "<string>"
}
'
import requests

url = "https://eu.phrase.com/control-hub/api/v1/public/groups"

payload = {
"name": "<string>",
"description": "<string>"
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', description: '<string>'})
};

fetch('https://eu.phrase.com/control-hub/api/v1/public/groups', 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://eu.phrase.com/control-hub/api/v1/public/groups",
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([
'name' => '<string>',
'description' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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://eu.phrase.com/control-hub/api/v1/public/groups"

payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\"\n}")

req, _ := http.NewRequest("POST", url, payload)

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://eu.phrase.com/control-hub/api/v1/public/groups")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://eu.phrase.com/control-hub/api/v1/public/groups")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "id": "<string>",
  "name": "<string>",
  "createdAt": "<string>",
  "updatedAt": "<string>",
  "description": "<string>"
}
{
"code": "NotBlank/NotFound/Error/...",
"message": "Organization UID cannot be null",
"args": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"args": {}
}
]
}
{
"code": "NotBlank/NotFound/Error/...",
"message": "Organization UID cannot be null",
"args": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"args": {}
}
]
}
{
"code": "NotBlank/NotFound/Error/...",
"message": "Organization UID cannot be null",
"args": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"args": {}
}
]
}
{
"code": "NotBlank/NotFound/Error/...",
"message": "Organization UID cannot be null",
"args": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"args": {}
}
]
}

Body

application/json
name
string
required

Content group name (not required to be unique within the organization)

Minimum string length: 1
description
string

Optional free-text description

Response

Content group created

id
string
required

Unique identifier of the content group

name
string
required

Content group name (not required to be unique within the organization)

createdAt
string
required

When the content group was created — timestamp (ISO-8601 format)

updatedAt
string
required

When the content group was last updated — timestamp (ISO-8601 format)

description
string

Optional free-text description