Create exercise
const url = 'https://example.com/api/v1/ttx';const options = { method: 'POST', headers: { cookie: 'ttx_access_token=<ttx_access_token>', 'X-CSRF-Token': '<X-CSRF-Token>', 'Content-Type': 'application/json' }, body: '{"content_language":"example","description":"example","name":"example","organization_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/ttx \ --header 'Content-Type: application/json' \ --header 'X-CSRF-Token: <X-CSRF-Token>' \ --cookie ttx_access_token=<ttx_access_token> \ --data '{ "content_language": "example", "description": "example", "name": "example", "organization_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }'Create an exercise; the caller becomes its Lead Planner.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”object
Example generated
{ "content_language": "example", "description": "example", "name": "example", "organization_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}Responses
Section titled “Responses”Successful Response
object
object
object
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.
Where a simulated actor comes from – the actor library’s levels. An exercise’s cast only holds copies; the origin says of what.
FIRST Traffic Light Protocol 2.0 labels.
Example
{ "can_delete": false, "controls": false, "evaluates": false, "facilitates": false, "msel_status": "draft", "needs_form_status": "draft", "observes": false, "plans": false, "tags": [ { "color": "violet", "origin": "system" } ], "tlp": "clear"}Validation Error
object
object
object
Example generated
{ "detail": [ { "ctx": {}, "input": "example", "loc": [ "example" ], "msg": "example", "type": "example" } ]}