Skip to main content
The Living Security Public API is the supported REST contract for customer systems, partner integrations, and external automation. Only operations in the Public API Reference are part of this contract.
Do not build integrations against browser network calls, Dashboard URLs, internal API explorers, or undocumented endpoints. Product UI availability does not make its underlying app endpoint a supported Public API.

Before You Start

You need:
  • Living Security access that permits API access-key management
  • An API access key created under Settings → Access Keys
  • The one-time access-key secret shown when the credential is created
  • The API issuer ID supplied with your Public API credentials by Living Security
  • The regional base URL for the organization you are integrating
  • A server-side runtime and secret manager
Access-key secrets must not be placed in browser code, mobile apps, source control, client-side environment variables, tickets, or shared logs.
The Access Keys dialog shows the one-time secret, but it does not show the API issuer ID. If Living Security has not supplied the issuer ID with your Public API credentials, request it from Living Security Support. The issuer ID is not the access key ID or organization ID.

Current Contract

The current curated contract is versioned under /api/v1 and uses regional production hosts: Use the region assigned to the Living Security organization. Do not switch regions to work around an authorization or availability error.
The regional URLs and x-organization-id header on this page describe the current generated Public API contract. Continue using them until Living Security publishes and assigns a migration to a consolidated V1 origin and credential-derived organization context.

Current Resources

Use Developers → Public API Reference for the complete operation, parameter, request, response, and schema list. If an operation is not there, it is not currently part of the Public API.

Authentication

Public API access has two stages:
  1. Exchange the secret access key and API issuer ID for a short-lived bearer token and organization ID.
  2. Send the bearer token and organization ID with each API request.
Required request headers are:
The organization header must be the organization returned by the access-key exchange. A key does not authorize access to an arbitrary organization ID.

TypeScript SDK

Install the current major version:
Then exchange the key and configure the SDK:
Use the EU base URL for an EU organization. The SDK exchange is intended for server-side Node.js runtimes.

Direct REST Request

If you perform the exchange outside the SDK, send its bearer token and organization ID on every request:
Bearer tokens are short-lived. Exchange the access key again when obtaining a new token rather than persisting a bearer token as a permanent credential.

Access-Key Lifecycle

  • Name keys after the owning integration or automation.
  • Choose the least-privileged scopes offered by the access-key form.
  • Store the one-time secret immediately; it cannot be retrieved after creation or rotation.
  • Rotate a key through Settings → Access Keys and deploy the replacement before revoking the old credential.
  • Revoke keys that are no longer used or whose secret may have been exposed.
  • Use service-account keys for non-human integrations when that key type is available to your organization.

Pagination

People search supports limit, cursor, offset, and includeTotal parameters. Prefer the cursor returned by the previous response for sequential traversal.
  • limit defaults to 50 and accepts 1–100.
  • cursor continues from a previous response.
  • offset skips a number of records and defaults to 0.
  • includeTotal=true requests an exact filtered count; omit it when the count is not needed.
Read the pagination object returned by the endpoint. Do not calculate the next page from the number of rows received or combine independently paginated requests and sort the partial results yourself.

Errors

Documented JSON errors use this general shape:
message can be a string or an array of validation messages. The curated contract does not currently publish one universal numeric rate limit or guarantee a request-ID response header for every operation. Capture the UTC time, method, path, status, and sanitized response body when requesting support. Do not automatically retry create, rotate, revoke, or delete operations unless the operation explicitly documents idempotency. Check current resource state after an ambiguous network failure.

Compatibility and Deprecation

V1 evolves additively by default. Clients must ignore unknown response fields. A breaking change requires a documented migration path; deprecated operations remain in the reference with their reason, replacement when available, and sunset date during the migration window. Pin the SDK to a compatible major version and review its release notes before upgrading. Treat the generated Public API Reference—not first-party app clients—as the schema source of truth.

Public API, MCP, and the Web Application

MCP tools may call the same underlying use cases, but their outputs are not REST response DTOs. See MCP Integration when a tool interaction fits better than a resource API.

Get Help

Contact Living Security Support with:
  • Organization and region
  • SDK name and version, if used
  • UTC timestamp, method, and path
  • HTTP status and sanitized error body
Never include access-key secrets, bearer tokens, or private customer data.

API Access Keys

Create, rotate, and revoke API credentials.

MCP Integration

Connect supported AI tools through Model Context Protocol.