Skip to main content
This guide covers existing /api/v1 integrations that exchange an API access key for a bearer token. Their credentials and request format differ from the /v1 Public API. For a new integration, start with the API quickstart and Authentication. The new /v1 API uses service-account API keys or OAuth access tokens.

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.

Regional Hosts

The legacy contract uses these regional /api/v1 production hosts: Use the region assigned to the Living Security organization. Do not switch regions to work around an authorization or availability error.

Legacy 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

See MCP Integration to connect an AI tool to Living Security.

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.