Skip to content

Create a cohort

POST
/cohorts
curl --request POST \
--url https://api.retorio.com/be/v2/cohorts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "Sales onboarding 2026", "type": "email", "isForBenchmarking": true }'

Creates an empty cohort. type is fixed for the lifetime of the cohort: create an email cohort to invite users by address, or a token cohort to generate anonymous access tokens.

Auth
Access key
Roles
Owner / Admin / Custom
Media typeapplication/json
object
name
required

The name of the cohort.

string
>= 3 characters

Example

Sales onboarding 2026
type
required
string
Allowed values: email token
isForBenchmarking

Whether this cohort is used for benchmark profiling. Programs are assigned to it like any other cohort, and its coaching users’ attempts in them feed the benchmark profiles.

boolean

Created

Media typeapplication/json
object
extId
required
string
<= 64 characters
name
required
string
<= 255 characters
createdAt
required
string format: date-time

Example generated

{
"extId": "example",
"name": "example",
"createdAt": "2026-04-15T12:00:00Z"
}

The request body is not valid. Also answered when the request body is not valid JSON.

Media typeapplication/json
Any of:
object
message
required
string
status
required

Canonical error name, e.g. INVALID_ARGUMENT.

string
details
nullable

Example generated

{
"message": "example",
"status": "example",
"details": "example"
}

Not authenticated: the bearer token is missing, malformed, expired or revoked, its sign-in method does not match your organization’s configuration, the user it belongs to was removed, or your organization is deactivated.

Media typeapplication/json
object
message
required
string
status
required

Canonical error name, e.g. INVALID_ARGUMENT.

string
details
nullable

Example generated

{
"message": "example",
"status": "example",
"details": "example"
}

Refused: the token does not belong to an admin, or your organization does not have the coaching product, or the admin’s roles do not grant cohorts:manage.

Media typeapplication/json
Any of:
object
message
required
string
status
required

Canonical error name, e.g. INVALID_ARGUMENT.

string
details
nullable

Example generated

{
"message": "example",
"status": "example",
"details": "example"
}

The request body is larger than 10 MB.

Media typeapplication/json
object
statusCode
required
integer
message
required
string
error
required

The HTTP reason phrase, e.g. Bad Request.

string

Example generated

{
"statusCode": 1,
"message": "example",
"error": "example"
}

The Content-Type charset or the Content-Encoding is one the API cannot decode. Send UTF-8 JSON without a content encoding.

Media typeapplication/json
object
statusCode
required
integer
message
required
string
error
required

The HTTP reason phrase, e.g. Bad Request.

string

Example generated

{
"statusCode": 1,
"message": "example",
"error": "example"
}

Internal Server Error

Media typeapplication/json
object
key
additional properties
nullable

Example generated

{
"additionalProperty": "example"
}

Retorio is GDPR and DSGVO compliant, EU AI Act aligned, ISO 27001 certified, and hosted on Google Cloud with EU data residency. For anything specific to your rollout, ask your Retorio contact.