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.

  • AuthJWT 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 cookiepassword changed
GET/api/v1/auth/users/assignableJWT cookiecases:createtenant context, password changed
GET/api/v1/auth/users/meJWT cookiepassword changed
GET/api/v1/auth/users/me/avatarJWT cookiepassword changed
POST/api/v1/auth/users/me/avatarJWT cookiepassword changed
POST/api/v1/auth/users/me/change-passwordJWT cookie
PATCH/api/v1/auth/users/me/themeJWT cookiepassword 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 cookietenant 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 cookietenant context, password changed
GET/api/v1/dashboard/metricsJWT cookietenant context, password changed
GET/api/v1/dashboard/recent-activityJWT cookietenant context, password changed
GET/api/v1/dashboard/severity-distributionJWT cookietenant context, password changed
GET/api/v1/dashboard/status-breakdownJWT cookietenant 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 cookiepassword changed
PUT/api/v1/config/brandingJWT cookieconfig:modifypassword changed
GET/api/v1/config/branding/logoJWT cookiepassword 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 cookietenant context, password changed
GET/api/v1/sse/cases/:caseId/streamJWT cookietenant context, password changed

system-dashboard

Base path: /api/v1/system/dashboard

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

tenants

Base path: /api/v1/tenants

MethodPathAuthPermissionNotes
GET/api/v1/tenantsJWT cookiesystem-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 cookiesystem-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