Skip to content
The API may change between versions while TTX-Zone is 0.x.

Grant planner

POST
/api/v1/organizations/{organization_id}/planners
curl --request POST \
--url https://example.com/api/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/planners \
--header 'Content-Type: application/json' \
--header 'X-CSRF-Token: <X-CSRF-Token>' \
--cookie ttx_access_token=<ttx_access_token> \
--data '{ "email": "hello@example.com" }'

Grant this organization role to a person.

organization_id
required
Organization Id
string format: uuid
Media typeapplication/json
PlannerGrantRequest
object
email
required
Email
string format: email

Example generated

{
"email": "hello@example.com"
}

Successful Response

Media typeapplication/json
PlannerRead
object
email
required
Email
string
full_name
required
Full Name
string
granted_at
required
Granted At
string format: date-time
last_login_at
Any of:
string format: date-time
tags
Tags
Array<object>
default:
OrganizationTagRead
object
applied
required
Applied
boolean
color
required
TagColor

Palette shared by both tag pools (Organization and TTX). The 8 original members plus TEAL/LIME/GRAPHITE are curated swatches chosen to stay clear of every color already carrying a fixed meaning elsewhere (–color-severity-*, –color-accent/-cta, -danger, -success) – see frontend/src/index.css for their exact hex. CUSTOM is the escape hatch: a tag with color=CUSTOM carries its real color in the sibling custom_hex field instead (validated by CUSTOM_HEX_PATTERN below) rather than a fixed token, at the cost of no contrast guarantee – the fixed swatches remain the safe default; CUSTOM is opt-in.

string
Allowed values: violet indigo fuchsia rose plum slate sand moss teal lime graphite custom
created_at
required
Created At
string format: date-time
custom_hex
required
Any of:
string
disabled_at
Any of:
string format: date-time
id
required
Id
string format: uuid
name
required
Name
string
origin
Any of:
ActorOrigin

Where a simulated actor comes from – the actor library’s levels. An exercise’s cast only holds copies; the origin says of what.

string
Allowed values: system organization exercise
origin_id
Any of:
string
<= 64 characters
origin_name
Any of:
string
<= 64 characters
usage_count
Usage Count
integer
0
user_id
required
User Id
string format: uuid

Example

{
"tags": []
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string

Example generated

{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}