ALLOD API

v1.0.0 https://swg.your-domainhttps://dam.your-domain

Servers

  • https://swg.your-domain
  • https://dam.your-domain

The ALLOD platform runs entirely in your own infrastructure. Every API call stays inside your network - no vendor cloud in the path. This reference covers two products: - **ALLOD | SWG** - the Secure Web Gateway and its admin API - **ALLOD | DAM** - the Digital Asset Manager and its governance API

SWG - System

Health check and metrics endpoints.

200 Text/plain metric lines
200 Server is healthy

Returns whether initial setup has been completed and what steps remain.

200 Setup state object
application/json
object
200 OK
200 JSON with level field (debug, info, warn, error)
application/json
object
level * string enum: debug | info | warn | error
200 OK

Forces an immediate sync of the license and catalog data from allodlicense.

200 Sync result with license details
200 License settings object (token redacted)
application/json
object
license_server_url string
license_token string
200 OK
200 Integrations config object
application/json
object
200 OK

Generates and streams a ZIP archive containing logs, config (secrets redacted), and diagnostic info for support.

200 ZIP archive (application/zip)

SWG - Firewall

Firewall rules, default policy and domain allow/deny management.

200 Array of rule objects
application/json
object
default_tls_inspection boolean
rules array
204 Saved
200 JSON with default_policy, default_tls_inspection and rules
application/json
object
default_policy string enum: allow | deny
default_tls_inspection boolean
200 Updated

SWG - DLP

Data Loss Prevention - events, configuration, body samples.

200 S3 config object (secret_key redacted)
application/json
object
access_key string
bucket string
enabled boolean
endpoint string
prefix string
region string
retention_days integer
secret_key string
200 OK

Cursor-paginated list of DLP upload/download events.

NameInTypeDescription
before query string(date-time)
before_id query string
limit query integer
200 JSON with events array, has_more, next_before, next_before_id
200 DLP config with mode, action, rules, keyword_lists, post_detection_window
application/json
object
204 Saved

Called by the agent when a screenshot is taken while the device has an active sensitive-context resource (ZTNA/DAM). ocr_text is matched against DLP rules; the event is dropped (not stored) when no sensitive context is active. process/window_title (the foreground window at the moment of capture) are best-effort and may be empty on a headless session. The domain the device was browsing (host/domain_category) is attached server-side from the navigation heatmap, not sent by the agent. Also covers screenshots that never touch disk - a capture pasted straight to the clipboard (PrtScn, Cmd+Ctrl+Shift+3/4) is reported the same way, with path empty and filename set to the synthetic "clipboard-image.png".

application/json
object
device_id * string
filename * string - Screenshot filename, or the synthetic "clipboard-image.png" for a clipboard-only capture (there's no real file to name).
ocr_text string
path string - On-disk path of the screenshot file. Empty for a clipboard-only capture that was never saved as a file.
process string - Foreground window's process/app name at screenshot time (best-effort)
sha256 string
user string
window_title string - Foreground window's title, or browser tab URL when the app is a known browser (best-effort)
200 JSON with action ("alert", "block", or "dropped") and event_id (empty when dropped). On "block" (ocr_text matched a block-severity DLP rule), the agent removes the artifact - deleting the file, or clearing the clipboard for a clipboard-only capture, since there's nothing on disk to remove.

Fetches the body sample from S3 and streams it inline, decompressing gzip/zstd/deflate automatically.

NameInTypeDescription
id * path string
200 Body sample (Content-Type reflects the original transfer)
404 Event not found or no stored content

SWG - CASB

Cloud Access Security Broker - shadow IT, app usage, tenant discovery.

Same as /api/casb/shadow-it but authenticated with a license-bearer token rather than an API key. Used by the allodlicense server to aggregate cross-deployment analytics.

NameInTypeDescription
days query integer
limit query integer
200 Shadow IT report

Returns hosts observed in the last 30 days that fall under the configured internal DNS zone and have no saascat catalog match - internal tools (e.g. a self-hosted git server) that shadow-IT detection can't see because they aren't SaaS apps. Matching is DNS-zone-based, not IP/CIDR-based, to avoid ever matching a private IP range an employee's home network happens to reuse. Consumed by Allod DAM's swgsync poller for asset discovery.

200 Object with since (RFC3339) and domains (array of per-host traffic summaries)

Returns per-app traffic aggregates for the last 30 days. Authenticated with a license-bearer token.

200 Array of app usage objects

Returns tenant identifiers extracted from proxied traffic, grouped by cloud app.

NameInTypeDescription
days query integer
200 Array of {app_id, tenant, last_seen, user_count} objects

Returns non-IdP accounts used by more than two distinct people across devices, aggregated from tenant sightings - a shadow-IT and credential-sharing signal.

200 Array of {AppID, AppName, Tenant, DistinctUsers, Users, DeviceCount, LastSeen} objects
NameInTypeDescription
days query integer
limit query integer
200 Array of discovered service objects with app, category, bytes, users

Returns SaaS traffic broken down by originating process name (where available from agent UID lookup).

NameInTypeDescription
days query integer
200 Array of {process, app_id, bytes, requests} objects
NameInTypeDescription
days query integer
limit query integer
200 Array of firewall block events with CASB app metadata

Returns connection counts for the last 30 days split by inspection category (managed SaaS, unmanaged SaaS, unknown).

200 Coverage object with bucket counts
NameInTypeDescription
days query integer
limit query integer
200 Array of managed app usage objects
200 CASB config object
application/json
object
200 OK

SWG - ZTNA

Zero Trust Network Access settings.

WebSocket upgrade for reverse tunnels. Agent registers the local ports it listens on (e.g. debug port). On-prem processes can then connect back to agent localhost through the connector hub.

101 Switching Protocols

WebSocket upgrade for on-prem connector daemons. After upgrade, connector sends a register message with its name and the CIDRs it can reach. The hub then routes proxy connections for those CIDRs through the connector. Protocol: JSON control frames + binary data frames with uint32 conn_id prefix.

101 Switching Protocols
200 JSON with access_routes array and virtual_subnet CIDR
application/json
object
access_routes string[] - CIDRs pushed to agents for transparent proxy interception
string[] - CIDRs pushed to agents for transparent proxy interception
items
string
virtual_subnet string - CIDR for device virtual IPs
200 OK

SWG - Access

Step-up SSO and just-in-time access requests - approval workflow and self-service resource discovery.

Powers the Access Requests admin page. Requires an authenticated admin session - not currently available via X-Api-Key.

200 JSON with requests array (id, device_id, user, resource, justification, ttl, requested_at)

Powers the end-user self-service page for pre-provisioning a step-up SSO or JIT grant before opening a non-HTTP client. Requires an authenticated session - not currently available via X-Api-Key.

NameInTypeDescription
device_id * query string
200 JSON with resources array (kind, target, description, auth, jit_approval, sign_in_url)

Same decision path used by the Slack, Teams, and PagerDuty approval buttons. Requires an authenticated admin session - not currently available via X-Api-Key.

NameInTypeDescription
id * path string
application/json
object
decision * string enum: approve | deny
200 Decision applied
404 Request not found or already decided

SWG - Events

Unified event log - firewall blocks and DLP events.

Cursor-paginated event log. Returns DLP upload/download events and firewall block events.

NameInTypeDescription
before query string(date-time) Cursor: timestamp of last event on previous page
before_id query string Cursor: event_id tie-breaker
limit query integer
type query string
200 JSON with events array, has_more, next_before, next_before_id
200 Connection test result

Returns configuration for the external event store (ClickHouse or compatible).

200 Event store config object (password redacted)
application/json
object
dsn string
enabled boolean
200 OK

Returns configuration for structured event log sinks: local file, Elastic Beats, syslog.

200 Event log config object
application/json
object
200 OK

Returns recent proxy request log entries (all traffic, not just blocked/DLP). Cursor-paginated.

NameInTypeDescription
before query string(date-time)
before_id query string
limit query integer
search query string
200 JSON with entries array, has_more, next_before, next_before_id
NameInTypeDescription
id * path string
200 Event object
404 Not found

SWG - Devices

Enrolled agent devices and their status.

application/json
object
user_id * string
200 ZIP archive of all data associated with the user

Irreversibly deletes all events, access log entries, and device records associated with the given user.

application/json
object
user_id * string
200 Confirmation of erasure
200 Array of device objects with device_id, name, platform, last_seen_at

Returns last-known geographic locations of enrolled devices derived from their IP addresses.

200 Array of {device_id, country, city, lat, lon, last_seen_at} objects

SWG - Agent

Agent lifecycle - enroll, heartbeat, config distribution, upgrade.

WebSocket upgrade. Agents use this for real-time config pushes and DLP local-path enrichment. Requires Upgrade: websocket header.

101 Switching Protocols

Agents post SNI hostname observations gathered during QUIC downgrade mode so the proxy can log them for shadow-IT purposes.

application/json
object
entries array
204 Accepted

Called by agents during TLS inspection to obtain a CA-signed leaf certificate for a given hostname. Returns PEM-encoded certificate and private key.

NameInTypeDescription
host * query string
200 JSON with cert and key PEM fields

Sent periodically by enrolled agents. Response includes config push: block_quic, proxy_token, access_routes (CIDRs for transparent proxy), windivert_url (Windows only), and local_path_enabled.

application/json
object
compliance_ok boolean
compliance_output string
device_id * string
200 Config push payload

Called by the allodswg agent on first run to register the device.

application/json
object
device_id * string
name string
platform string
200 Enrollment confirmed

Returns CA cert and proxy address for the agent to configure the OS proxy.

200 Config object

Used by agents to self-update. Returns the binary for the requesting platform.

200 Binary file
404 No binary available for this platform
200 Array of {filename, platform, version, size} objects

Multipart upload. The binary filename must follow the pattern allodswg-agent-<platform>[.exe].

multipart/form-data
object
file string(binary)
200 JSON with filename, platform, version, sha256

Sends an upgrade command to all agents connected via WebSocket. Each agent will download the latest binary and restart.

200 JSON with count of agents signaled

Broadcasts the current firewall rules, CA cert, and proxy settings to all agents connected via WebSocket.

200 JSON with count of agents notified

Serves files from the controller assets directory. Used by Windows agents to auto-download WinDivert.dll and WinDivert64.sys on startup.

NameInTypeDescription
name * path string Filename (alphanumeric, dots, hyphens, underscores only)
200 File contents
404 Asset not found

SWG - CA

Certificate Authority - TLS inspection cert and SCEP for MDM.

Simple Certificate Enrollment Protocol (RFC 8894). MDMs use this to automatically fetch and install the proxy CA as a trusted root. Supports GetCACaps and GetCACert operations.

NameInTypeDescription
operation * query string
200 GetCACaps: plain-text capability list. GetCACert: DER-encoded CA certificate (application/x-x509-ca-cert).
400 Unsupported operation
503 CA not yet generated

Generates a new CA key and self-signed certificate. Pushes the new cert to all connected agents. Optional body fields override server-configured defaults.

application/json
object
algorithm string enum: ecdsa-p256 | ecdsa-p384 | rsa-2048 | rsa-4096
ca_validity_days integer - CA cert validity in days (recommend ≥730 when using SCEP)
common_name string
country string - ISO 3166-1 alpha-2 country code
leaf_validity_days integer - Per-session leaf cert validity in days
locality string
organization string
province string
200 New CA info object

Returns metadata about the currently active CA certificate: algorithm, subject (CN, O, C, ST, L), validity period, and fingerprint.

200 CA info object
503 CA not yet generated

PEM-encoded CA certificate. Add to OS/browser trust stores, or point MDM to the /scep endpoint for automatic distribution.

200 PEM certificate

SWG - Domains

Domain category classification and overrides.

NameInTypeDescription
domain * query string
200 JSON with category and metadata

Returns the full list of domain category identifiers and their display names used by the firewall and domain classifier.

200 Array of {id, name} objects
NameInTypeDescription
domain * query string
200 JSON with domain, category, source, override fields
200 Array of override objects
application/json
object
category * string
domain * string
200 OK
NameInTypeDescription
domain * query string
200 OK

SWG - Identity

OIDC SSO, SCIM sync, GDPR data export/erase.

200 Array of SCIM user objects
200 Connection test result with user count
200 Sync result
200 Array of SCIM group objects
200 SCIM config (token redacted)
application/json
object
enabled boolean
tenant_id string
token string
200 OK

Attempts discovery and a client credentials check against the configured OIDC issuer.

200 Test result
200 OIDC config (client_secret redacted)
application/json
object
client_id string
client_secret string
enabled boolean
issuer string
200 OK

SWG - Proxy

Proxy and GeoDNS configuration.

200 JSON with require_agent, quic_mode, quic_mode_unsupported, enable_h2, smtp_inspection
application/json
object
enable_h2 boolean
quic_mode string - "inspect" is accepted but hidden from the admin UI and always treated as unsupported (see isQUICInspectUnsupported) - it doesn't achieve real QUIC inspection on any current platform, so it's substituted with quic_mode_unsupported's fallback for every agent enum: bypass | downgrade | inspect
quic_mode_unsupported string - Fallback used whenever quic_mode is "inspect" - which today is always, for every agent platform enum: downgrade | metadata
require_agent boolean
require_idp_user boolean
smtp_inspection boolean
200 OK

SWG - Compliance

Device compliance posture configuration.

200 JSON with config and devices array
application/json
object
204 Saved

SWG - Alerts

Alert configuration and test delivery.

200 Syslog config object
application/json
object
address string - host:port of syslog receiver
enabled boolean
format string enum: rfc5424 | cef
protocol string enum: udp | tcp
200 OK
200 OK
200 Alert config object (webhook URL, enabled actions)
application/json
object
200 OK

SWG - Keys

API key management for the SWG controller.

200 Array of key objects (key value redacted)
application/json
object
name * string
role string enum: superadmin | enrollment
201 Created key including plaintext value (shown once)
NameInTypeDescription
id * path string
200 OK
NameInTypeDescription
id * path string
200 OK
NameInTypeDescription
id * path string
200 OK

SWG - AI

AI translation and enrichment.

Returns whether an AI provider is configured and the translation feature is enabled.

200 JSON with available boolean

Proxies a translation request to the configured AI provider (OpenAI-compatible). Used by the browser extension to translate page content.

application/json
object
target_language * string
text * string
200 JSON with translated text
503 AI translation not configured
200 AI config object (api_key redacted)
application/json
object
api_key string
base_url string
enabled boolean
model string
provider string
200 OK

DAM - Systems

Vendor systems under governance - the core inventory of third-party SaaS/cloud services.

200 Array of system objects
201 Created system object
NameInTypeDescription
id * path string
200 Array of similar system objects
NameInTypeDescription
id * path string
200 GDPR Article 30 Record of Processing Activities entry
NameInTypeDescription
id * path string
200 Updated RoPA entry
NameInTypeDescription
id * path string
200 Array of probe result objects (TLS, geo, SPF, MX, privacy policy, DPA, sanctions)
NameInTypeDescription
id * path string
202 Scan queued
NameInTypeDescription
id * path string
200 Import result
NameInTypeDescription
id * path string
200 System object
NameInTypeDescription
id * path string
200 Updated system object
NameInTypeDescription
id * path string
204 Deleted
NameInTypeDescription
id * path string
type * path string Probe type, e.g. tls, geo, spf, mx, privacy, dpa, sanctions, gleif
202 Scan queued

DAM - Contacts

Vendor contacts and DPO information per system.

NameInTypeDescription
id * path string
200 Array of contact objects
NameInTypeDescription
id * path string
200 Contact object
NameInTypeDescription
cid * path string
id * path string
200 Updated contact object
NameInTypeDescription
cid * path string
id * path string
204 Deleted

DAM - Documents

Contracts, DPAs and other documents attached to a system.

NameInTypeDescription
id * path string
200 Array of document metadata objects
NameInTypeDescription
id * path string
201 Document metadata object
NameInTypeDescription
did * path string
id * path string
204 Deleted

DAM - Reviews

Privacy and security review workflows per system.

200 Array of review objects
NameInTypeDescription
id * path string
200 Array of review objects
NameInTypeDescription
id * path string
201 Created review object
NameInTypeDescription
id * path string
200 Review object
NameInTypeDescription
id * path string
200 Updated review object

DAM - Cycle Types

Review cycle definitions (e.g. Annual GDPR review).

200 Array of cycle type objects
201 Created cycle type object
NameInTypeDescription
id * path string
200 Cycle type object
NameInTypeDescription
id * path string
200 Updated cycle type object
NameInTypeDescription
id * path string
204 Deleted

DAM - Classifications

Data classification levels (e.g. Public, Internal, Confidential).

200 Array of classification level objects
201 Created classification object
NameInTypeDescription
id * path string
200 Updated classification object
NameInTypeDescription
id * path string
204 Deleted

DAM - Keys

API key management for the DAM.

200 Array of API key objects (secret value redacted)
201 API key object including the one-time secret value
NameInTypeDescription
id * path string
204 Deleted

DAM - Notifications

In-app notifications for governance events.

204 All marked as read
200 Array of notification objects
NameInTypeDescription
id * path string
204 Marked as read

DAM - Identity

OIDC SSO and SCIM identity sync configuration.

200 Array of user objects from SCIM
200 Array of group objects from SCIM
200 SCIM push config
200 Updated config
200 Connection test result
202 Sync queued
200 SCIM pull config
200 Updated config
200 Connection test result
200 OIDC config object
200 Updated OIDC config

DAM - Admin

License, SWG integration, probe scans, OSCAL imports and vendor catalog.

202 Scan queued
202 Scan queued

Returns status of GLEIF, EU sanctions list and other intelligence sources.

200 Intel status object
NameInTypeDescription
q query string Search query
200 Array of catalog entries

Called by allodswg to fold DAM-classified systems into its own sensitive-context detection. Only systems with a completed RoPA entry (a linked DataRecord with a classification set) are included - systems without one are simply absent from the map, not an error. Authenticated with the shared license key, not an admin API key.

200 Object mapping saascat_id to classification_level_id (e.g. public/internal/confidential/restricted), plus a count

Called by allodswg to fetch the approved-app list. Authenticated with the shared license key, not an admin API key.

200 Array of approved app domain entries
202 Sync queued
200 SWG sync config (endpoint + license key)
200 Updated config
200 Updated license status