Organization API
Organization settings, members, invitations, and branding. This page lists all 24 endpoints in the Organization area of the Visual Sentinel REST API.
Base URL: https://visualsentinel.com. Unless an endpoint says otherwise it accepts an API key or a session cookie, see Authentication. Most error responses use the ErrorResponse shape, see Errors and Rate limits.
Endpoints
- Get organization:
GET /api/organization - Update organization:
PUT /api/organization - Delete organization:
DELETE /api/organization - Get organization settings:
GET /api/organization/settings - Update organization settings:
PATCH /api/organization/settings - Get organization member:
GET /api/organization/members/{id} - Update member role:
PUT /api/organization/members/{id} - Remove organization member:
DELETE /api/organization/members/{id} - List invitations:
GET /api/organization/invitations - Send invitation:
POST /api/organization/invitations - Cancel invitation:
DELETE /api/organization/invitations/{id} - Accept invitation:
POST /api/organization/invitations/accept - Verify invitation token:
GET /api/organization/invitations/verify - Get branding settings:
GET /api/organization/branding - Update branding:
PUT /api/organization/branding - Reset branding:
DELETE /api/organization/branding - Report a problem to Visual Sentinel:
POST /api/organization/feedback - Upload logo:
POST /api/organization/logo - Delete logo:
DELETE /api/organization/logo - Get SMTP settings:
GET /api/organization/smtp - Test SMTP settings:
POST /api/organization/smtp - Update SMTP settings:
PUT /api/organization/smtp - Delete SMTP settings:
DELETE /api/organization/smtp - Leave organization:
POST /api/organization/leave
Get organization
GET /api/organization
Get the current organization's profile.
Responses
200: Organization profile. Body: Organization.
Update organization
PUT /api/organization
Update the organization's profile (name, slug, logo, website, timezone).
Request body (required): object.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | Max length 100. |
slug | string | No | Max length 50. |
logo | string | No | |
website | string (uri) | No | |
description | string | No | Max length 500. |
timezone | string | No | |
billingEmail | string (email) | No |
Responses
200: Organization updated.
Delete organization
DELETE /api/organization
Permanently delete the organization and all its data. Requires OWNER role.
Authentication: session cookie only. API keys are refused.
Responses
200: Organization deleted.
Get organization settings
GET /api/organization/settings
Get organization-level settings (alert defaults, preferences).
Responses
200: Organization settings.
Update organization settings
PATCH /api/organization/settings
Update organization-level settings.
Responses
200: Settings updated.
Get organization member
GET /api/organization/members/{id}
Get details of a specific organization member.
Parameters
id(path, string (uuid), required)
Responses
200: Member details.
Update member role
PUT /api/organization/members/{id}
Update an organization member's role.
Authentication: session cookie only. API keys are refused.
Parameters
id(path, string (uuid), required)
Request body (required): object.
| Field | Type | Required | Description |
|---|---|---|---|
role | string | Yes | One of: ADMIN, MEMBER, VIEWER. |
Responses
200: Member role updated.
Remove organization member
DELETE /api/organization/members/{id}
Remove a member from the organization.
Authentication: session cookie only. API keys are refused.
Parameters
id(path, string (uuid), required)
Responses
200: Member removed.
List invitations
GET /api/organization/invitations
Get all pending invitations for the organization.
Responses
200: Pending invitations.
Send invitation
POST /api/organization/invitations
Send an invitation to join the organization.
Authentication: session cookie only. API keys are refused.
Request body (required): object.
| Field | Type | Required | Description |
|---|---|---|---|
email | string (email) | Yes | |
role | string | Yes | One of: ADMIN, MEMBER, VIEWER. |
Responses
201: Invitation sent.
Cancel invitation
DELETE /api/organization/invitations/{id}
Cancel a pending invitation.
Authentication: session cookie only. API keys are refused.
Parameters
id(path, string (uuid), required)
Responses
200: Invitation cancelled.
Accept invitation
POST /api/organization/invitations/accept
Accept an organization invitation using the invitation token.
Authentication: no session or API key needed.
Request body (required): object.
| Field | Type | Required | Description |
|---|---|---|---|
token | string | Yes |
Responses
200: Invitation accepted.
Verify invitation token
GET /api/organization/invitations/verify
Verify an invitation token is valid and return invitation details.
Authentication: no session or API key needed.
Parameters
token(query, string, required)
Responses
200: Invitation details.400: Invalid or expired token.
Get branding settings
GET /api/organization/branding
Get white-label branding configuration.
Responses
200: Branding settings.
Update branding
PUT /api/organization/branding
Update white-label branding configuration (colors, logo, custom domain).
Responses
200: Branding updated.
Reset branding
DELETE /api/organization/branding
Reset branding to default Visual Sentinel branding.
Responses
200: Branding reset.
Report a problem to Visual Sentinel
POST /api/organization/feedback
Send the Visual Sentinel team a report about a false alert, a bug or a missing feature, optionally for one monitor or incident of the workspace. The monitor and incident must belong to the workspace. 20 reports an hour per workspace. Needs the organization:write scope.
Request body (required): object.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | One of: false_positive, bug, missing_feature. |
note | string | Yes | Min length 3, max length 1000. |
monitorId | string | No | |
incidentId | string | No |
Responses
201: Report received. Body: object.400: Validation failed, or the incident belongs to another monitor.404: Monitor or incident not found in this workspace.429: Rate limit exceeded.
| Field | Type | Required | Description |
|---|---|---|---|
report | object | No | |
report.id | string | No | |
report.type | string | No | One of: false_positive, bug, missing_feature. |
report.monitorId | string or null | No | |
report.incidentId | string or null | No | |
report.createdAt | string (date-time) | No | |
message | string | No |
Upload logo
POST /api/organization/logo
Upload an organization logo image.
Request body (required): object (multipart/form-data).
| Field | Type | Required | Description |
|---|---|---|---|
file | string (binary) | No |
Responses
200: Logo uploaded.
Delete logo
DELETE /api/organization/logo
Remove the organization logo.
Responses
200: Logo deleted.
Get SMTP settings
GET /api/organization/smtp
Get custom SMTP configuration for sending emails.
Responses
200: SMTP settings.
Test SMTP settings
POST /api/organization/smtp
Send a test email using the provided SMTP configuration.
Authentication: session cookie only. API keys are refused.
Responses
200: Test email sent.
Update SMTP settings
PUT /api/organization/smtp
Update custom SMTP configuration.
Authentication: session cookie only. API keys are refused.
Responses
200: SMTP settings updated.
Delete SMTP settings
DELETE /api/organization/smtp
Remove custom SMTP configuration and revert to default.
Authentication: session cookie only. API keys are refused.
Responses
200: SMTP settings removed.
Leave organization
POST /api/organization/leave
Leave the current organization. Owners cannot leave; they must transfer ownership to another member first. After leaving, the user is switched to their next available organization. Session only: an API key gets 403 with code SESSION_REQUIRED.
Authentication: session cookie only. API keys are refused.
Responses
200: Successfully left the organization. Body: object.400: Owners cannot leave. Transfer ownership first.404: Not a member of this organization.503: Database unavailable.
| Field | Type | Required | Description |
|---|---|---|---|
success | boolean | No | |
message | string | No | |
switchTo | string (uuid) or null (uuid) | No | Organization ID to switch to, or null if no other memberships |
Data models
Request and response shapes these endpoints use: Organization.
Generated from the OpenAPI 3.1 specification at https://docs.visualsentinel.com/openapi.json, the same file the interactive reference reads.