> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trychert.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Security

> Keep API keys and call-scoped room credentials on your backend.

## API keys

Use project-scoped FaceTime API keys from your backend. Keys are displayed once, stored as hashes, and can be revoked. Use read scopes for read-only access and write scopes for mutations.

## Webhooks

Signing is optional and new integrations default to unsigned. Enable signing and verify the HMAC-SHA256 signature over the raw request body. Store the signing secret separately from your API key. See [Webhooks](/facetime/webhooks).

## Bring Your Own Room

Keep your LiveKit API key and secret on your backend. Give Chert only a fresh room-scoped participant token for each call. Chert seals those credentials, restricts redemption to the authorized worker command, and scrubs them during terminal cleanup.

Single-use credential redemption does not make the underlying LiveKit JWT inherently single-use. Restrict its permissions and validity window, and do not log it.

## Caller identity

The incoming webhook exposes `from_handle_hash`, which may be null, rather than promising the raw caller handle. Do not treat this value as proof of a caller's identity.

<a id="transcripts" />

## Retained records

Call records and operational events may remain after room credentials are removed. Token expiry is not a guarantee that all call data has been deleted. Confirm retention and any transcript requirements with Chert before collecting sensitive conversation data.

## Hosted Sessions

Hosted Sessions is proposed. Use the documented BYOR credential flow for the current integration.
