Skip to main content
Business API requests use bearer API keys. A key starts with sk_test_ in sandbox or sk_live_ in live.

Key lifecycle

The dashboard displays the complete secret only when a key is created or explicitly rotated. Sakawave stores a verifier rather than the complete credential, so a lost secret cannot be retrieved. Create or rotate a key, update your secret store, verify the replacement, then revoke the old key. Recommended controls:
  • Keep keys in a secrets manager, never in client-side code or source control.
  • Use separate keys for separate services and environments.
  • Set an expiry date when the dashboard supports your operational cadence.
  • Apply the narrowest IP allowlist possible. An empty allowlist permits any source address.
  • Rotate immediately after suspected exposure or team ownership changes.
  • Treat revocation as irreversible.
IP allowlists accept exact IPv4 or IPv6 addresses, CIDR ranges, *, and trailing IPv4 wildcards such as 203.0.113.*. Avoid * for live credentials.

Environments

The environment embedded in the key must match the API deployment. A test key sent to live—or a live key sent to sandbox—is rejected with INVALID_API_KEY.

Authentication failures

Sakawave deliberately returns the same 401 response for an invalid, inactive, expired, environment-mismatched, or IP-blocked key.
This response does not reveal which check failed. Confirm the environment, key status, expiry, and caller IP locally before contacting support.

Scope contract status

Scope behavior is not yet a public contract. Current issuance stores scopes, but business API authentication does not enforce them. Do not rely on a selected scope to prevent an otherwise valid key from calling an endpoint.
Until enforcement and intended delegation behavior are aligned, use separate keys, network restrictions, and service-level secret isolation as the effective controls.