Skip to content

API Endpoints โ€‹

Complete inventory of routes registered in dps-code-api/app.py. Auth legend: ๐Ÿ”‘ API key ยท ๐Ÿ‘ค browser session ยท either. Full detail (bodies, responses, errors, side effects) is in the API reference.

Auth & session โ€‹

MethodPathAuthPurpose
GET/โ€”Liveness probe
GET/auth/discord/loginโ€”Begin Discord OAuth
GET/auth/discord/callbackโ€”OAuth callback
GET/auth/me๐Ÿ‘คCurrent agent + permissions
POST/auth/logout๐Ÿ‘คEnd session
POST/demo/reset๐Ÿ‘ค (demo)Re-seed demo dataset

Generators & utilities โ€‹

MethodPathAuthPurpose
GET/generate/agreement๐Ÿ”‘AGM-#####
GET/generate/agent๐Ÿ”‘DPS-AG-#####
GET/generate/join๐Ÿ”‘SC-###X#
GET/generate/case๐Ÿ”‘DPS-CASE-#####
GET/generate/investigation๐Ÿ”‘INV-#####
GET/generate/clearance๐Ÿ”‘CL-###
POST/util/timestamp๐Ÿ”‘JS date โ†’ Discord Unix timestamp

Reports / dockets โ€‹

MethodPathAuthPurpose
POST/reports/createeitherCreate report (atomic, + event + queue)
GET/reportseitherList (legacy or paginated rpc_list_reports)
GET/reports/<report_id>eitherFull report
PATCH/reports/<report_id>/updateeitherWhitelisted update (status/assignment/โ€ฆ)
DELETE/reports/<report_id>eitherHard delete (reason + forensic audit)
POST/reports/<report_id>/actioneithervalidate / invalidate / investigate / contact_reporter / claim
POST/reports/<report_id>/investigation/begineitherBegin investigation (legacy adapter)
POST/reports/<report_id>/investigation/endeitherConclude investigation โ†’ Pending
POST/reports/<report_id>/viewedeitherNo-op (compat)
POST/reports/<report_id>/evidence/openedeitherNo-op (compat)
POST/reports/<report_id>/noteseitherAdd note
POST/reports/<report_id>/evidenceeitherAdd evidence
POST/reports/<report_id>/timelineeitherAdd timeline entry
POST/reports/<report_id>/discord-profiles๐Ÿ”‘Store bot-captured profile snapshots

Contact threads โ€‹

MethodPathAuthPurpose
GET/reports/<report_id>/contacteitherThread + closed state
POST/reports/<report_id>/contact/replyeitherAgent message (queues bot DM)
POST/reports/<report_id>/contact/closeeitherEnd conversation
POST/reports/<report_id>/contact/respond๐Ÿ”‘Bot relays reporter reply

Evidence & audit โ€‹

MethodPathAuthPurpose
GET/evidenceeitherGlobal evidence list (enriched)
GET/auditeitherPaginated audit log (rpc_audit_log_v2)

Action queues โ€‹

MethodPathAuthPurpose
GET/actions/pending๐Ÿ”‘Pending/processing actions
GET/actions/next๐Ÿ”‘Atomic single pickup (204 when empty)
GET/actions/next/operator๐Ÿ”‘Operator-queue pickup
GET/actions/next/supervisor๐Ÿ”‘Supervisor-queue pickup
GET/actions/pending/operatoreitherOperator queue list
GET/actions/pending/supervisoreitherSupervisor queue list (Senior Agent+)
POST/actions/<action_id>/complete๐Ÿ”‘Record bot outcome (atomic + event)
POST/actions/<action_id>/requeueeitherFailed โ†’ pending

Agents โ€‹

MethodPathAuthPurpose
GET/agentseitherList agents
GET/agents/<discord_id>eitherOne agent
POST/agents/createeitherStart onboarding record
PATCH/agents/<discord_id>/updateeitherBot onboarding fields, or audited admin update (Director for rank/clearance)

Punishments & discipline โ€‹

MethodPathAuthPurpose
POST/punishments๐Ÿ‘คIssue punishment (atomic + audit + delivery)
GET/punishments๐Ÿ‘คList (filters + pagination)
GET/punishments/<punishment_id>๐Ÿ‘คOne punishment
PATCH/punishments/<punishment_id>๐Ÿ‘คWhitelisted edit (reason required)
POST/punishments/<punishment_id>/revoke๐Ÿ‘คRevoke (reason required)
GET/punishments/users/<discord_id>/profile๐Ÿ‘คStored Discord profile snapshot
GET/discipline/next๐Ÿ”‘Atomic delivery pickup (204 when empty)
GET/discipline/pendingeitherDelivery list
POST/discipline/user-lookup๐Ÿ‘คEnqueue profile lookup
POST/discipline/<item_id>/complete๐Ÿ”‘Record delivery outcome
POST/discipline/user-lookup/<item_id>/profile๐Ÿ”‘Deliver captured profile + complete
POST/discipline/<item_id>/requeueeitherFailed โ†’ pending

System Administration โ€‹

MethodPathAuthPurpose
GET/admin/health๐Ÿ‘ค10-section health + incident history
GET/admin/queue๐Ÿ‘คAll queue actions
POST/admin/queue/<action_id>/requeue๐Ÿ‘คRequeue failed (audited)
POST/admin/queue/<action_id>/cancel๐Ÿ‘คCancel (audited)
POST/admin/queue/sweep๐Ÿ‘คManual stale sweep (audited)
GET/admin/audit๐Ÿ‘คAdmin audit trail
GET/admin/agents๐Ÿ‘คFull agent list
PATCH/admin/agents/<discord_id>๐Ÿ‘คAudited agent correction
GET/admin/access๐Ÿ‘คAllowlist (Director)
POST/admin/access/grant๐Ÿ‘คGrant access (Director)
POST/admin/access/revoke๐Ÿ‘คSoft revoke (Director)
POST/admin/access/remove๐Ÿ‘คHard remove (Director)
GET/admin/reports๐Ÿ‘คReport search (Director)
POST/admin/reports/<report_id>/correct๐Ÿ‘คRecord correction (Director)
GET/admin/schema๐Ÿ‘คMigrations + RPC inventory (Director)
POST/admin/schema/reload๐Ÿ‘คPostgREST reload (Director)

Training Center โ€‹

MethodPathAuthPurpose
GET/training/me๐Ÿ‘คRole discovery
GET/training/realtime-config๐Ÿ‘คSupabase URL + anon key + token path
GET/training/realtime-token๐Ÿ‘คShort-lived Realtime JWT
GET/training/scenarios๐Ÿ‘ค (trainer)Scenario catalog
GET/training/trainees๐Ÿ‘ค (trainer)Onboarding agents
GET/training/sessions๐Ÿ‘คRole-scoped session list
POST/training/sessions๐Ÿ‘ค (trainer)Create session
GET/training/sessions/<session_id>๐Ÿ‘คFull session payload
POST/training/sessions/<session_id>/start๐Ÿ‘ค (owner trainer)pending โ†’ active
POST/training/sessions/<session_id>/pause๐Ÿ‘ค (owner trainer)active โ†’ paused
POST/training/sessions/<session_id>/resume๐Ÿ‘ค (owner trainer)paused โ†’ active
POST/training/sessions/<session_id>/restart๐Ÿ‘ค (owner trainer)fresh active run
POST/training/sessions/<session_id>/reset๐Ÿ‘ค (owner trainer)back to pending
POST/training/sessions/<session_id>/end๐Ÿ‘ค (owner trainer)โ†’ completed
POST/training/sessions/<session_id>/abort๐Ÿ‘ค (owner trainer)โ†’ aborted
POST/training/sessions/<session_id>/events๐Ÿ‘ค (participant)Record trainee action (+ engine)
POST/training/sessions/<session_id>/scenarios/<scenario_id>/activate๐Ÿ‘ค (owner trainer)Introduce scenario
POST/training/sessions/<session_id>/evidence/<key>/release๐Ÿ‘ค (owner trainer)Evidence override
POST/training/sessions/<session_id>/evidence/<key>/lock๐Ÿ‘ค (owner trainer)Evidence override
POST/training/sessions/<session_id>/objectives/<id>/complete๐Ÿ‘ค (owner trainer)Objective override
POST/training/sessions/<session_id>/objectives/<id>/reset๐Ÿ‘ค (owner trainer)Objective override
POST/training/sessions/<session_id>/inject๐Ÿ‘ค (owner trainer)Information injection
POST/training/sessions/<session_id>/notes๐Ÿ‘ค (participant)Trainer/trainee note
POST/training/sessions/<session_id>/notes/<note_id>/release๐Ÿ‘ค (owner trainer)Release private note
POST/training/sessions/<session_id>/evaluate๐Ÿ‘ค (owner trainer)Grade + complete

ER:LC โ€‹

MethodPathAuthPurpose
GET/erlc/player/<roblox_id>๐Ÿ”‘ER:LC player lookup via relay