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

List exercise

GET
/api/v1/ttx
curl --request GET \
--url 'https://example.com/api/v1/ttx?limit=50&offset=0&sort_dir=asc&sort_by=created_at' \
--cookie ttx_access_token=<ttx_access_token>

The exercises the caller can reach.

limit
Limit
integer
default: 50 >= 1 <= 200
offset
Offset
integer
0
sort_dir
Sort Dir
string
default: desc
Allowed values: asc desc
sort_by
Sort By
string
default: created_at
Allowed values: created_at name
q
Any of:
string
<= 200 characters
organization_id
Any of:
string format: uuid
role
Any of:
TTXContextRole

What a user acts as on one exercise, derived from their TTXAccess row: a planning and control team member (role PLANNER) can act as Planner (plans), Controller (controls), Facilitator (facilitates), and – when also assigned so – Evaluator (evaluates) and Observer (observes); every other role acts as itself. Values match RoleEnum’s where they overlap, so guards accept either enum.

string
Allowed values: planner controller facilitator evaluator observer player
archived
Any of:
boolean

Successful Response

Media typeapplication/json
TTXListResponse
object
items
required
Items
Array<object>
TTXRead
object
archived_at
Any of:
string format: date-time
can_delete
Can Delete
boolean
code
required
Code
string
content_language
Any of:
string
controls
Controls
boolean
created_at
required
Created At
string format: date-time
created_by_id
required
Created By Id
string format: uuid
description
required
Any of:
string
evaluates
Evaluates
boolean
facilitates
Facilitates
boolean
id
required
Id
string format: uuid
image_url
required
Any of:
string
lead_planner
Any of:
LeadPlannerRead
object
full_name
required
Full Name
string
user_id
required
User Id
string format: uuid
msel_status
Any of:
MselStatus
string
Allowed values: draft in_review ready
name
required
Name
string
needs_form_status
required
NeedsFormStatus
string
Allowed values: draft ready_for_approval approved
observes
Observes
boolean
organization_id
required
Organization Id
string format: uuid
plans
Plans
boolean
role
required
Role
string
tags
required
Tags
Array<object>
TTXTagRead
object
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
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
tlp
required
Tlp

FIRST Traffic Light Protocol 2.0 labels.

string
Allowed values: clear green amber amber_strict red
limit
required
Limit
integer
offset
required
Offset
integer
total
required
Total
integer

Example

{
"items": [
{
"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

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"
}
]
}