A valid request URL is required to generate request examples{
"achievement": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"key": "<string>",
"name": "<string>",
"description": "<string>",
"icon": "<string>",
"hidden": true,
"kind": "event_count",
"rule_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"threshold": 123,
"segment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"active": true,
"holders": 123,
"created_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Create a badge
Requires engagement:manage. The three kinds take different fields and each refusal names the one you left out.
A segment badge is the cheapest one to get right: it reuses the audience engine you already have, and the only difference between it and a segment is that it does not come off. Somebody who was an enterprise trialist in March keeps the badge in June — re-deciding it from the definition would take it back, which is the difference between an audience and an achievement.
A valid request URL is required to generate request examples{
"achievement": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"key": "<string>",
"name": "<string>",
"description": "<string>",
"icon": "<string>",
"hidden": true,
"kind": "event_count",
"rule_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"threshold": 123,
"segment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"active": true,
"holders": 123,
"created_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Authorizations
A staff session token, uk_st_…. Minted by sign-up, sign-in or the two-factor exchange. Only a 401 means it is spent; not_a_member (403) is about the organization named in X-Organization-Id and leaves the token good for the others.
Headers
The organization the caller is acting on — the org_… code that appears in the panel URL. It identifies; the membership JOIN is what authorizes, so a forged code reads nothing: the answer is not_a_member (403), which does not mean the session is over. Absent, the session's default organization answers, or — if that membership was revoked while the session was open — any other one the caller still holds.
Query Parameters
Which environment to act in. A view parameter, valid only on the staff surface — a machine credential never chooses its environment, it is resolved from the key.
live, test Body
Frozen after creation.
80120event_count, points_total, segment 50016Shown only to somebody who has it.
Required for event_count, and it must be a rule of this environment.
Required for event_count (how many awards) and points_total (how many points).
1 <= x <= 1000000Required for segment, and it must be a segment of this environment.
Response
The badge.
A badge. Unlike a segment, it does not stop being true: the unlock is written down and the condition is never asked again for that person.
Show child attributes
Show child attributes