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.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 exposesfrom_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.

