Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.oktolabs.ai/llms.txt

Use this file to discover all available pages before exploring further.

REST route catalog

This catalog is generated from the FastAPI route decorators in okto-pulse-core/src/okto_pulse/core/api/*.py and okto-pulse-core/src/okto_pulse/core/app.py. The current source surface contains 209 routes: 208 under /api/v1 plus the unprefixed /health liveness endpoint. Use the live OpenAPI schema (GET /openapi.json) for request and response models; this page is the route inventory that prevents hidden endpoints from being missed.

Routes

agents.py (10)

MethodPathSource
POST/api/v1/agentsagents.py:26
GET/api/v1/agentsagents.py:43
GET/api/v1/agents/board/{board_id}agents.py:54
GET/api/v1/agents/{agent_id}agents.py:71
PATCH/api/v1/agents/{agent_id}agents.py:85
POST/api/v1/agents/{agent_id}/regenerate-keyagents.py:108
DELETE/api/v1/agents/{agent_id}agents.py:126
POST/api/v1/agents/{agent_id}/boards/{board_id}agents.py:147
PATCH/api/v1/agents/{agent_id}/boards/{board_id}agents.py:177
DELETE/api/v1/agents/{agent_id}/boards/{board_id}agents.py:202

analytics.py (16)

MethodPathSource
GET/api/v1/analytics/overviewanalytics.py:320
GET/api/v1/boards/{board_id}/analytics/blockersanalytics.py:627
GET/api/v1/boards/{board_id}/analytics/funnelanalytics.py:675
GET/api/v1/boards/{board_id}/analytics/qualityanalytics.py:699
GET/api/v1/boards/{board_id}/analytics/velocityanalytics.py:774
GET/api/v1/boards/{board_id}/analytics/coverageanalytics.py:815
GET/api/v1/boards/{board_id}/analytics/validationsanalytics.py:839
GET/api/v1/boards/{board_id}/analytics/sprintsanalytics.py:965
GET/api/v1/boards/{board_id}/analytics/spec/{spec_id}analytics.py:1082
GET/api/v1/boards/{board_id}/analytics/sprint/{sprint_id}analytics.py:1164
GET/api/v1/boards/{board_id}/analytics/agentsanalytics.py:1231
GET/api/v1/boards/{board_id}/analytics/entitiesanalytics.py:1360
GET/api/v1/boards/{board_id}/analytics/entity/{entity_type}/{entity_id}analytics.py:1397
GET/api/v1/analytics/overview/exportanalytics.py:1430
GET/api/v1/boards/{board_id}/analytics/exportanalytics.py:1483
GET/api/v1/boards/{board_id}/analytics/entity/{entity_type}/{entity_id}/exportanalytics.py:1531

app.py (1)

MethodPathSource
GET/healthapp.py:242

architecture.py (17)

MethodPathSource
GET/api/v1/ideations/{ideation_id}/architecturearchitecture.py:165
POST/api/v1/ideations/{ideation_id}/architecturearchitecture.py:174
GET/api/v1/refinements/{refinement_id}/architecturearchitecture.py:188
POST/api/v1/refinements/{refinement_id}/architecturearchitecture.py:197
GET/api/v1/specs/{spec_id}/architecturearchitecture.py:211
POST/api/v1/specs/{spec_id}/architecturearchitecture.py:220
GET/api/v1/cards/{card_id}/architecturearchitecture.py:234
POST/api/v1/cards/{card_id}/architecturearchitecture.py:243
POST/api/v1/architecture/validatearchitecture.py:257
GET/api/v1/architecture/{design_id}architecture.py:268
PATCH/api/v1/architecture/{design_id}architecture.py:282
DELETE/api/v1/architecture/{design_id}architecture.py:300
GET/api/v1/architecture/{design_id}/diagrams/{diagram_id}/payloadarchitecture.py:314
PUT/api/v1/architecture/{design_id}/diagrams/{diagram_id}/payloadarchitecture.py:347
POST/api/v1/architecture/{design_id}/diagrams/import-excalidrawarchitecture.py:379
GET/api/v1/architecture/{design_id}/diffarchitecture.py:422
POST/api/v1/cards/{card_id}/copy-architecture-from-spec/{spec_id}architecture.py:437

attachments.py (3)

MethodPathSource
POST/api/v1/attachments/{board_id}/{card_id}attachments.py:38
GET/api/v1/attachments/{board_id}/{card_id}/{attachment_id}attachments.py:67
DELETE/api/v1/attachments/{board_id}/{card_id}/{attachment_id}attachments.py:89

boards.py (13)

MethodPathSource
POST/api/v1/boardsboards.py:27
GET/api/v1/boardsboards.py:44
GET/api/v1/boards/{board_id}boards.py:59
PATCH/api/v1/boards/{board_id}boards.py:76
DELETE/api/v1/boards/{board_id}boards.py:96
POST/api/v1/boards/{board_id}/cardsboards.py:110
GET/api/v1/boards/{board_id}/columnsboards.py:133
POST/api/v1/boards/{board_id}/archive/{entity_type}/{entity_id}boards.py:183
POST/api/v1/boards/{board_id}/restore/{entity_type}/{entity_id}boards.py:202
POST/api/v1/boards/{board_id}/sharesboards.py:224
GET/api/v1/boards/{board_id}/sharesboards.py:248
PATCH/api/v1/boards/{board_id}/shares/{share_id}boards.py:263
DELETE/api/v1/boards/{board_id}/shares/{share_id}boards.py:283

cards.py (22)

MethodPathSource
GET/api/v1/cards/{card_id}cards.py:27
PATCH/api/v1/cards/{card_id}cards.py:41
POST/api/v1/cards/{card_id}/movecards.py:59
GET/api/v1/cards/{card_id}/dependenciescards.py:81
GET/api/v1/cards/{card_id}/dependentscards.py:96
POST/api/v1/cards/{card_id}/dependencies/{depends_on_id}cards.py:111
DELETE/api/v1/cards/{card_id}/dependencies/{depends_on_id}cards.py:130
GET/api/v1/cards/{card_id}/activitycards.py:145
GET/api/v1/cards/{card_id}/seencards.py:163
POST/api/v1/cards/{card_id}/test-taskscards.py:208
DELETE/api/v1/cards/{card_id}/test-tasks/{test_task_id}cards.py:279
DELETE/api/v1/cards/{card_id}cards.py:302
POST/api/v1/cards/{card_id}/validatecards.py:319
GET/api/v1/cards/{card_id}/validationscards.py:373
GET/api/v1/cards/{card_id}/validations/{validation_id}cards.py:388
DELETE/api/v1/cards/{card_id}/validations/{validation_id}cards.py:406
GET/api/v1/cards/{card_id}/knowledgecards.py:448
POST/api/v1/cards/{card_id}/knowledgecards.py:462
GET/api/v1/cards/{card_id}/knowledge/{kb_id}cards.py:495
PATCH/api/v1/cards/{card_id}/knowledge/{kb_id}cards.py:513
DELETE/api/v1/cards/{card_id}/knowledge/{kb_id}cards.py:548
GET/api/v1/cards/{card_id}/knowledge/{kb_id}/downloadcards.py:571

comments.py (4)

MethodPathSource
POST/api/v1/comments/card/{card_id}comments.py:29
PATCH/api/v1/comments/{comment_id}comments.py:47
POST/api/v1/comments/{comment_id}/respondcomments.py:65
DELETE/api/v1/comments/{comment_id}comments.py:97

dead_letter.py (1)

MethodPathSource
GET/api/v1/kg/queue/dead-letterdead_letter.py:49

discovery.py (4)

MethodPathSource
GET/api/v1/discovery/intentsdiscovery.py:36
GET/api/v1/discovery/boards/{board_id}/saved-searchesdiscovery.py:53
GET/api/v1/discovery/boards/{board_id}/search-historydiscovery.py:71
POST/api/v1/discovery/intents/{intent_id}/executediscovery.py:93

guidelines.py (9)

MethodPathSource
GET/api/v1/guidelinesguidelines.py:24
POST/api/v1/guidelinesguidelines.py:37
GET/api/v1/guidelines/{guideline_id}guidelines.py:50
PATCH/api/v1/guidelines/{guideline_id}guidelines.py:64
DELETE/api/v1/guidelines/{guideline_id}guidelines.py:80
GET/api/v1/boards/{board_id}/guidelinesguidelines.py:99
POST/api/v1/boards/{board_id}/guidelinesguidelines.py:115
DELETE/api/v1/boards/{board_id}/guidelines/{guideline_id}guidelines.py:138
PATCH/api/v1/boards/{board_id}/guidelines/{guideline_id}guidelines.py:153

ideations.py (15)

MethodPathSource
POST/api/v1/boards/{board_id}/ideationsideations.py:27
GET/api/v1/boards/{board_id}/ideationsideations.py:51
GET/api/v1/ideations/{ideation_id}ideations.py:69
PATCH/api/v1/ideations/{ideation_id}ideations.py:83
POST/api/v1/ideations/{ideation_id}/moveideations.py:100
DELETE/api/v1/ideations/{ideation_id}ideations.py:117
POST/api/v1/ideations/{ideation_id}/evaluateideations.py:131
POST/api/v1/ideations/{ideation_id}/derive-specideations.py:167
GET/api/v1/ideations/{ideation_id}/snapshotsideations.py:187
GET/api/v1/ideations/{ideation_id}/snapshots/{version}ideations.py:198
GET/api/v1/ideations/{ideation_id}/historyideations.py:213
GET/api/v1/ideations/{ideation_id}/qaideations.py:228
POST/api/v1/ideations/{ideation_id}/qaideations.py:239
POST/api/v1/ideations/{ideation_id}/qa/{qa_id}/answerideations.py:255
DELETE/api/v1/ideations/{ideation_id}/qa/{qa_id}ideations.py:272

kg_health.py (1)

MethodPathSource
GET/api/v1/kg/healthkg_health.py:51

kg_routes.py (28)

MethodPathSource
GET/api/v1/kg/boards/{board_id}/nodeskg_routes.py:135
GET/api/v1/kg/boards/{board_id}/nodes/{node_id}kg_routes.py:154
GET/api/v1/kg/boards/{board_id}/graphkg_routes.py:169
GET/api/v1/kg/boards/{board_id}/similarkg_routes.py:303
GET/api/v1/kg/boards/{board_id}/supersedence/{decision_id}kg_routes.py:323
GET/api/v1/kg/boards/{board_id}/contradictionskg_routes.py:333
GET/api/v1/kg/boards/{board_id}/statskg_routes.py:350
GET/api/v1/kg/boards/{board_id}/metricskg_routes.py:375
GET/api/v1/kg/boards/{board_id}/auditkg_routes.py:492
POST/api/v1/kg/boards/{board_id}/audit/{session_id}/undokg_routes.py:535
GET/api/v1/kg/boards/{board_id}/audit/exportkg_routes.py:541
GET/api/v1/kg/global/searchkg_routes.py:561
POST/api/v1/kg/boards/{board_id}/historical-consolidation/startkg_routes.py:590
POST/api/v1/kg/boards/{board_id}/historical-consolidation/cancelkg_routes.py:597
GET/api/v1/kg/boards/{board_id}/historical-consolidation/progresskg_routes.py:604
DELETE/api/v1/kg/boards/{board_id}/kgkg_routes.py:611
GET/api/v1/kg/settingskg_routes.py:658
GET/api/v1/kg/boards/{board_id}/settingskg_routes.py:679
PUT/api/v1/kg/boards/{board_id}/settingskg_routes.py:706
POST/api/v1/kg/boards/{board_id}/cypherkg_routes.py:712
GET/api/v1/kg/schemakg_routes.py:723
GET/api/v1/kg/boards/{board_id}/pendingkg_routes.py:730
GET/api/v1/kg/boards/{board_id}/pending/treekg_routes.py:765
GET/api/v1/kg/boards/{board_id}/eventskg_routes.py:958
POST/api/v1/kg/boards/{board_id}/pending/{queue_entry_id}/retrykg_routes.py:1149
POST/api/v1/kg/boards/{board_id}/nodes/{node_id}/boostkg_routes.py:1247
GET/api/v1/kg/openapi.jsonkg_routes.py:1340
POST/api/v1/kg/{board_id}/migrate-schemakg_routes.py:1367

kg_tick.py (1)

MethodPathSource
POST/api/v1/kg/tick/run-nowkg_tick.py:48

me.py (1)

MethodPathSource
GET/api/v1/me/permissionsme.py:36

presets.py (5)

MethodPathSource
GET/api/v1/presetspresets.py:55
POST/api/v1/presetspresets.py:69
POST/api/v1/presets/{preset_id}/clonepresets.py:90
PUT/api/v1/presets/{preset_id}presets.py:126
DELETE/api/v1/presets/{preset_id}presets.py:154

qa.py (3)

MethodPathSource
POST/api/v1/qa/card/{card_id}qa.py:28
POST/api/v1/qa/{qa_id}/answerqa.py:46
DELETE/api/v1/qa/{qa_id}qa.py:64

queue_health.py (1)

MethodPathSource
GET/api/v1/kg/queue/healthqueue_health.py:40

refinements.py (18)

MethodPathSource
POST/api/v1/ideations/{ideation_id}/refinementsrefinements.py:30
GET/api/v1/ideations/{ideation_id}/refinementsrefinements.py:57
GET/api/v1/refinements/{refinement_id}refinements.py:75
PATCH/api/v1/refinements/{refinement_id}refinements.py:89
POST/api/v1/refinements/{refinement_id}/moverefinements.py:106
DELETE/api/v1/refinements/{refinement_id}refinements.py:126
POST/api/v1/refinements/{refinement_id}/derive-specrefinements.py:140
GET/api/v1/refinements/{refinement_id}/historyrefinements.py:160
GET/api/v1/refinements/{refinement_id}/qarefinements.py:175
POST/api/v1/refinements/{refinement_id}/qarefinements.py:186
POST/api/v1/refinements/{refinement_id}/qa/{qa_id}/answerrefinements.py:202
DELETE/api/v1/refinements/{refinement_id}/qa/{qa_id}refinements.py:219
GET/api/v1/refinements/{refinement_id}/snapshotsrefinements.py:237
GET/api/v1/refinements/{refinement_id}/snapshots/{version}refinements.py:248
GET/api/v1/refinements/{refinement_id}/knowledgerefinements.py:266
GET/api/v1/refinements/{refinement_id}/knowledge/{knowledge_id}refinements.py:277
POST/api/v1/refinements/{refinement_id}/knowledgerefinements.py:292
DELETE/api/v1/refinements/{refinement_id}/knowledge/{knowledge_id}refinements.py:312

settings.py (2)

MethodPathSource
GET/api/v1/settings/runtimesettings.py:78
PUT/api/v1/settings/runtimesettings.py:88

specs.py (21)

MethodPathSource
POST/api/v1/boards/{board_id}/specsspecs.py:24
GET/api/v1/boards/{board_id}/specsspecs.py:48
GET/api/v1/specs/{spec_id}specs.py:66
PATCH/api/v1/specs/{spec_id}specs.py:80
POST/api/v1/specs/{spec_id}/movespecs.py:105
DELETE/api/v1/specs/{spec_id}specs.py:125
GET/api/v1/specs/{spec_id}/historyspecs.py:139
POST/api/v1/specs/{spec_id}/link-card/{card_id}specs.py:151
POST/api/v1/specs/{spec_id}/unlink-card/{card_id}specs.py:170
POST/api/v1/specs/{spec_id}/scenarios/{scenario_id}/link-task/{card_id}specs.py:192
POST/api/v1/specs/{spec_id}/scenarios/{scenario_id}/unlink-task/{card_id}specs.py:253
GET/api/v1/specs/{spec_id}/knowledgespecs.py:301
GET/api/v1/specs/{spec_id}/knowledge/{knowledge_id}specs.py:312
POST/api/v1/specs/{spec_id}/knowledgespecs.py:327
DELETE/api/v1/specs/{spec_id}/knowledge/{knowledge_id}specs.py:343
GET/api/v1/specs/{spec_id}/qaspecs.py:362
POST/api/v1/specs/{spec_id}/qaspecs.py:373
POST/api/v1/specs/{spec_id}/qa/{qa_id}/answerspecs.py:389
DELETE/api/v1/specs/{spec_id}/qa/{qa_id}specs.py:406
POST/api/v1/specs/{spec_id}/validationspecs.py:424
GET/api/v1/specs/{spec_id}/validationsspecs.py:497

sprints.py (12)

MethodPathSource
GET/api/v1/boards/{board_id}/sprintssprints.py:21
POST/api/v1/boards/{board_id}/specs/{spec_id}/sprintssprints.py:35
GET/api/v1/boards/{board_id}/specs/{spec_id}/sprintssprints.py:60
GET/api/v1/sprints/{sprint_id}sprints.py:72
PATCH/api/v1/sprints/{sprint_id}sprints.py:86
POST/api/v1/sprints/{sprint_id}/movesprints.py:106
DELETE/api/v1/sprints/{sprint_id}sprints.py:126
POST/api/v1/sprints/{sprint_id}/evaluationssprints.py:140
POST/api/v1/sprints/{sprint_id}/assign-taskssprints.py:159
POST/api/v1/sprints/{sprint_id}/unassign-taskssprints.py:179
GET/api/v1/sprints/{sprint_id}/historysprints.py:201
GET/api/v1/boards/{board_id}/specs/{spec_id}/sprints/suggestsprints.py:212

traceability.py (1)

MethodPathSource
GET/api/v1/boards/{board_id}/lineage-graphtraceability.py:17
Last modified on May 8, 2026