Skip to main content

REST API reference

All endpoints are mounted under /api/v1/. This page is generated directly from the API route files, so it reflects the current code.

  • Auth — JWT cookie means the request needs the httpOnly token cookie (set by login). Basic Auth is used for inbound webhooks. None is public.
  • Permission — the granular permission enforced by requirePermission(...), if any. See the permission matrix.
  • Mutating requests (POST/PUT/PATCH/DELETE) also require the X-CSRF-Token header matching the csrf_token cookie.

171 endpoints across 21 domains.

audit​

Base path: /api/v1/audit

MethodPathAuthPermissionNotes
GET/api/v1/auditJWT cookieaudit:readtenant context, password changed
GET/api/v1/audit/:idJWT cookieaudit:readtenant context, password changed
GET/api/v1/audit/actionsJWT cookieaudit:readtenant context, password changed

auth​

Base path: /api/v1/auth

MethodPathAuthPermissionNotes
POST/api/v1/auth/access-deniedJWT cookie——
POST/api/v1/auth/loginNone——
POST/api/v1/auth/logoutJWT cookie——
GET/api/v1/auth/usersJWT cookieusers:createtenant context, password changed
POST/api/v1/auth/usersJWT cookieusers:createtenant context, password changed
DELETE/api/v1/auth/users/:idJWT cookieusers:disabletenant context, password changed
PATCH/api/v1/auth/users/:idJWT cookieusers:createtenant context, password changed
PUT/api/v1/auth/users/:id/disableJWT cookieusers:disabletenant context, password changed
PUT/api/v1/auth/users/:id/enableJWT cookieusers:disabletenant context, password changed
POST/api/v1/auth/users/:id/reassignJWT cookieusers:disabletenant context, password changed
POST/api/v1/auth/users/:id/reset-passwordJWT cookieusers:reset_passwordtenant context, password changed
GET/api/v1/auth/users/:userId/avatarJWT cookie—password changed
GET/api/v1/auth/users/assignableJWT cookiecases:createtenant context, password changed
GET/api/v1/auth/users/meJWT cookie—password changed
GET/api/v1/auth/users/me/avatarJWT cookie—password changed
POST/api/v1/auth/users/me/avatarJWT cookie—password changed
POST/api/v1/auth/users/me/change-passwordJWT cookie——
PATCH/api/v1/auth/users/me/themeJWT cookie—password changed

backups​

Base path: /api/v1/admin/backups

MethodPathAuthPermissionNotes
GET/api/v1/admin/backupsJWT cookiebackup:readsystem-user only, password changed
POST/api/v1/admin/backupsJWT cookiebackup:createsystem-user only, password changed
DELETE/api/v1/admin/backups/:idJWT cookiebackup:deletesystem-user only, password changed
GET/api/v1/admin/backups/:idJWT cookiebackup:readsystem-user only, password changed
GET/api/v1/admin/backups/:id/downloadJWT cookiebackup:downloadsystem-user only, password changed
POST/api/v1/admin/backups/:id/restoreJWT cookiebackup:restoresystem-user only, password changed
POST/api/v1/admin/backups/:id/verifyJWT cookiebackup:readsystem-user only, password changed
GET/api/v1/admin/backups/scheduleJWT cookiebackup:readsystem-user only, password changed
PUT/api/v1/admin/backups/scheduleJWT cookiebackup:createsystem-user only, password changed
GET/api/v1/admin/backups/statusJWT cookiebackup:readsystem-user only, password changed

cases​

Base path: /api/v1/cases

MethodPathAuthPermissionNotes
GET/api/v1/casesJWT cookiecases:readtenant context, password changed
POST/api/v1/casesJWT cookiecases:createtenant context, password changed
DELETE/api/v1/cases/:idJWT cookiecases:deletetenant context, password changed
GET/api/v1/cases/:idJWT cookiecases:readtenant context, password changed
PATCH/api/v1/cases/:idJWT cookiecases:updatetenant context, password changed
POST/api/v1/cases/:id/assignJWT cookiecases:assigntenant context, password changed
GET/api/v1/cases/:id/attachmentsJWT cookiecases:readtenant context, password changed
POST/api/v1/cases/:id/attachmentsJWT cookiecases:updatetenant context, password changed, file upload
DELETE/api/v1/cases/:id/attachments/:attachmentIdJWT cookiecases:updatetenant context, password changed
GET/api/v1/cases/:id/attachments/:attachmentId/downloadJWT cookiecases:readtenant context, password changed
GET/api/v1/cases/:id/attachments/:attachmentId/previewJWT cookiecases:readtenant context, password changed
POST/api/v1/cases/:id/commentsJWT cookiecases:updatetenant context, password changed
POST/api/v1/cases/:id/eventsJWT cookiecases:link_eventtenant context, password changed
GET/api/v1/cases/:id/stepsJWT cookiecases:readtenant context, password changed
POST/api/v1/cases/:id/stepsJWT cookiecases:updatetenant context, password changed
DELETE/api/v1/cases/:id/steps/:stepIdJWT cookiecases:updatetenant context, password changed
PATCH/api/v1/cases/:id/steps/:stepIdJWT cookiecases:updatetenant context, password changed
PATCH/api/v1/cases/:id/steps/:stepId/completeJWT cookiecases:updatetenant context, password changed
POST/api/v1/cases/:id/tagsJWT cookiecases:updatetenant context, password changed
DELETE/api/v1/cases/:id/tags/:tagJWT cookiecases:updatetenant context, password changed
POST/api/v1/cases/:id/tasksJWT cookiecases:updatetenant context, password changed
POST/api/v1/cases/:id/tasks/:taskId/completeJWT cookiecases:updatetenant context, password changed
POST/api/v1/cases/:id/transitionJWT cookie—tenant context, password changed
GET/api/v1/cases/tags/allJWT cookiecases:readtenant context, password changed

config​

Base path: /api/v1/config

MethodPathAuthPermissionNotes
GET/api/v1/configJWT cookieconfig:readtenant context, password changed
PUT/api/v1/config/:keyJWT cookieconfig:modifytenant context, password changed
GET/api/v1/config/password-policyJWT cookie——

dashboard​

Base path: /api/v1/dashboard

MethodPathAuthPermissionNotes
GET/api/v1/dashboard/alert-trendJWT cookie—tenant context, password changed
GET/api/v1/dashboard/metricsJWT cookie—tenant context, password changed
GET/api/v1/dashboard/recent-activityJWT cookie—tenant context, password changed
GET/api/v1/dashboard/severity-distributionJWT cookie—tenant context, password changed
GET/api/v1/dashboard/status-breakdownJWT cookie—tenant context, password changed

ingestion​

Base path: /api/v1/logs (also mounted at /api/v1/ingestion)

MethodPathAuthPermissionNotes
GET/api/v1/logs/batchesJWT cookielogs:searchtenant context, password changed
POST/api/v1/logs/submitJWT cookielogs:submittenant context, password changed
POST/api/v1/logs/uploadJWT cookielogs:submittenant context, password changed

integrations​

Base path: /api/v1/integrations

MethodPathAuthPermissionNotes
GET/api/v1/integrationsJWT cookieintegration:readtenant context, password changed
PUT/api/v1/integrations/:providerJWT cookieintegration:modifytenant context, password changed
GET/api/v1/integrations/enrich/:observableIdJWT cookieobservables:readtenant context, password changed

ldap​

Base path: /api/v1/config/ldap

MethodPathAuthPermissionNotes
GET/api/v1/config/ldapJWT cookieldap:managepassword changed
PUT/api/v1/config/ldapJWT cookieldap:managepassword changed
GET/api/v1/config/ldap/presets/:typeJWT cookieldap:managepassword changed
POST/api/v1/config/ldap/syncJWT cookieldap:managepassword changed
GET/api/v1/config/ldap/sync-statusJWT cookieldap:managepassword changed
POST/api/v1/config/ldap/testJWT cookieldap:managepassword changed

milestones​

Base path: /api/v1/milestones

MethodPathAuthPermissionNotes
GET/api/v1/milestones/assignmentsJWT cookiemilestones:managetenant context, password changed
POST/api/v1/milestones/assignmentsJWT cookiemilestones:managetenant context, password changed
DELETE/api/v1/milestones/assignments/:idJWT cookiemilestones:managetenant context, password changed
PATCH/api/v1/milestones/assignments/:idJWT cookiemilestones:managetenant context, password changed
POST/api/v1/milestones/assignments/bulkJWT cookiemilestones:managetenant context, password changed
GET/api/v1/milestones/definitionsJWT cookiemilestones:managetenant context, password changed
POST/api/v1/milestones/definitionsJWT cookiemilestones:managetenant context, password changed
DELETE/api/v1/milestones/definitions/:idJWT cookiemilestones:managetenant context, password changed
PATCH/api/v1/milestones/definitions/:idJWT cookiemilestones:managetenant context, password changed
GET/api/v1/milestones/meJWT cookiemilestones:readtenant context, password changed
GET/api/v1/milestones/usersJWT cookiemilestones:managetenant context, password changed

notifications​

Base path: /api/v1/notifications

MethodPathAuthPermissionNotes
GET/api/v1/notifications/channelsNone——
POST/api/v1/notifications/channelsNone——
DELETE/api/v1/notifications/channels/:idNone——
GET/api/v1/notifications/channels/:idNone——
PUT/api/v1/notifications/channels/:idNone——
POST/api/v1/notifications/channels/:id/testNone——
GET/api/v1/notifications/historyNone——
GET/api/v1/notifications/smtpNone——
PUT/api/v1/notifications/smtpNone——
POST/api/v1/notifications/smtp/testNone——

observables​

Base path: /api/v1/observables

MethodPathAuthPermissionNotes
GET/api/v1/observablesJWT cookieobservables:readtenant context, password changed
GET/api/v1/observables/:idJWT cookieobservables:readtenant context, password changed
POST/api/v1/observables/:id/commentsJWT cookieobservables:tagtenant context, password changed
POST/api/v1/observables/:id/tagsJWT cookieobservables:tagtenant context, password changed
DELETE/api/v1/observables/:id/tags/:tagJWT cookieobservables:tagtenant context, password changed

playbooks​

Base path: /api/v1/playbooks

MethodPathAuthPermissionNotes
GET/api/v1/playbooksJWT cookieplaybooks:readtenant context, password changed
POST/api/v1/playbooksJWT cookieplaybooks:managetenant context, password changed
DELETE/api/v1/playbooks/:idJWT cookieplaybooks:managetenant context, password changed
GET/api/v1/playbooks/:idJWT cookieplaybooks:readtenant context, password changed
PATCH/api/v1/playbooks/:idJWT cookieplaybooks:managetenant context, password changed
PUT/api/v1/playbooks/:id/stepsJWT cookieplaybooks:managetenant context, password changed
POST/api/v1/playbooks/applyJWT cookieplaybooks:applytenant context, password changed
GET/api/v1/playbooks/case/:caseId/activeJWT cookieplaybooks:readtenant context, password changed
GET/api/v1/playbooks/case/:caseId/historyJWT cookieplaybooks:readtenant context, password changed
GET/api/v1/playbooks/executions/:executionIdJWT cookieplaybooks:readtenant context, password changed
POST/api/v1/playbooks/executions/:executionId/abandonJWT cookieplaybooks:applytenant context, password changed
DELETE/api/v1/playbooks/executions/:executionId/steps/:stepIdJWT cookieplaybooks:applytenant context, password changed
PATCH/api/v1/playbooks/executions/:executionId/steps/:stepIdJWT cookieplaybooks:applytenant context, password changed
POST/api/v1/playbooks/executions/:executionId/steps/:stepId/completeJWT cookieplaybooks:applytenant context, password changed
POST/api/v1/playbooks/executions/:executionId/steps/:stepId/decideJWT cookieplaybooks:applytenant context, password changed
POST/api/v1/playbooks/executions/:executionId/steps/:stepId/undoJWT cookieplaybooks:applytenant context, password changed

reports​

Base path: /api/v1

MethodPathAuthPermissionNotes
GET/api/v1/config/brandingJWT cookie—password changed
PUT/api/v1/config/brandingJWT cookieconfig:modifypassword changed
GET/api/v1/config/branding/logoJWT cookie—password changed
GET/api/v1/reportsJWT cookiereports:readtenant context, password changed
DELETE/api/v1/reports/:reportIdJWT cookiereports:deletetenant context, password changed
GET/api/v1/reports/:reportId/downloadJWT cookiereports:readtenant context, password changed
POST/api/v1/reports/generateJWT cookiereports:generatetenant context, password changed

roles​

Base path: /api/v1/roles

MethodPathAuthPermissionNotes
GET/api/v1/rolesJWT cookieroles:managetenant context, password changed
POST/api/v1/rolesJWT cookieroles:managetenant context, password changed
DELETE/api/v1/roles/:idJWT cookieroles:managetenant context, password changed
GET/api/v1/roles/:idJWT cookieroles:managetenant context, password changed
PUT/api/v1/roles/:idJWT cookieroles:managetenant context, password changed
GET/api/v1/roles/permissionsJWT cookieroles:managetenant context, password changed
GET/api/v1/roles/presetsJWT cookieroles:managetenant context, password changed

schemas​

Base path: /api/v1/schemas

MethodPathAuthPermissionNotes
GET/api/v1/schemasJWT cookieschemas:readtenant context, password changed
POST/api/v1/schemasJWT cookieschemas:createtenant context, password changed
DELETE/api/v1/schemas/:idJWT cookieschemas:createtenant context, password changed
GET/api/v1/schemas/:idJWT cookieschemas:readtenant context, password changed
PATCH/api/v1/schemas/:idJWT cookieschemas:edit_drafttenant context, password changed
PUT/api/v1/schemas/:id/deprecateJWT cookieschemas:deprecatetenant context, password changed
GET/api/v1/schemas/:id/detailJWT cookieschemas:readtenant context, password changed
POST/api/v1/schemas/:id/versionsJWT cookieschemas:edit_drafttenant context, password changed
POST/api/v1/schemas/:schemaId/versions/:versionId/publishJWT cookieschemas:publishtenant context, password changed

Base path: /api/v1/search

MethodPathAuthPermissionNotes
GET/api/v1/searchJWT cookielogs:searchtenant context, password changed

sse​

Base path: /api/v1/sse

MethodPathAuthPermissionNotes
GET/api/v1/sse/cases/:caseId/presenceJWT cookie—tenant context, password changed
GET/api/v1/sse/cases/:caseId/streamJWT cookie—tenant context, password changed

system-dashboard​

Base path: /api/v1/system/dashboard

MethodPathAuthPermissionNotes
GET/api/v1/system/dashboard/tenant-summariesJWT cookie—system-user only, password changed

tenants​

Base path: /api/v1/tenants

MethodPathAuthPermissionNotes
GET/api/v1/tenantsJWT cookie—system-user only, password changed
POST/api/v1/tenantsJWT cookieusers:createsystem-user only, password changed
DELETE/api/v1/tenants/:idJWT cookieusers:createsystem-user only, password changed
GET/api/v1/tenants/:idJWT cookie—system-user only, password changed
PUT/api/v1/tenants/:idJWT cookieusers:createsystem-user only, password changed
POST/api/v1/tenants/:id/activateJWT cookieusers:createsystem-user only, password changed
POST/api/v1/tenants/:id/adminJWT cookieusers:createsystem-user only, password changed

webhooks​

Base path: /api/v1/webhooks

MethodPathAuthPermissionNotes
GET/api/v1/webhooks/alertsNone——
GET/api/v1/webhooks/alerts/:alertIdNone——
POST/api/v1/webhooks/alerts/:alertId/acknowledgeNone——
POST/api/v1/webhooks/alerts/:alertId/dismissNone——
POST/api/v1/webhooks/alerts/:alertId/linkNone——
POST/api/v1/webhooks/alerts/:alertId/unlinkNone——
POST/api/v1/webhooks/alerts/batchNone——
POST/api/v1/webhooks/alerts/bulk/acknowledgeNone——
POST/api/v1/webhooks/alerts/bulk/dismissNone——
POST/api/v1/webhooks/alerts/bulk/linkNone——
POST/api/v1/webhooks/alerts/bulk/unlinkNone——
GET/api/v1/webhooks/alerts/by-case/:caseIdNone——
GET/api/v1/webhooks/alerts/sourcesNone——
GET/api/v1/webhooks/alerts/statsNone——
POST/api/v1/webhooks/receive/:tenantSlugBasic Auth——
GET/api/v1/webhooks/sourcesNone——
POST/api/v1/webhooks/sourcesNone——
DELETE/api/v1/webhooks/sources/:sourceIdNone——
GET/api/v1/webhooks/sources/:sourceIdNone——
PUT/api/v1/webhooks/sources/:sourceIdNone——