Auphere Partner API · Reference
/ v0.1
Security
How keys, scopes and workspace isolation work — the short version you can hand to your security reviewer.
Your secret key
- Backend only. It authorises everything you can do; a browser must never see it. Keep it in your environment or secret manager.
- We store a SHA-256 hash, not the key. We cannot recover it or show it to you again — if it is lost, rotate it.
- Rotation has a grace window. The old key keeps working for a short period so you can deploy without downtime, then dies.
- Revocation is immediate. A revoked key stops working on the next request, everywhere.
- Self-identifying prefix. Keys start with
ak_live_/ak_test_so secret scanners can flag one that leaks into a repository.
Least privilege by scope
provision and broadcasts are independent. Ask for one key per capability and the blast radius of a leak shrinks accordingly: an integration key that leaks cannot message a single end customer.
Workspace isolation
This is the part worth scrutinising, because it is what keeps your clients apart from each other and your data apart from other partners’.
- You never send a workspace id. There is no such field. We derive it from
(your partner identity, your external_client_ref)— an attacker cannot widen a request by editing a body. - Every query runs under row-level security bound to that one workspace. Cross-workspace reads are not filtered out after the fact; they are impossible at the database level.
- References are namespaced per partner. The same
external_client_refused by two partners resolves to two different workspaces. Someone else’s reference returns404. - A tenant-bound key cannot use partner-level scopes. A key restricted to one client is rejected outright on endpoints that resolve the client from a reference.
Attack surface
The API has no browser surface: no CORS layer, no cookies, no session tokens. Every caller is a server holding a secret. There is nothing to embed and nothing to steal from a page.
Audit trail
Provisioning, WhatsApp signups, administrator changes and campaigns each leave an append-only record with the key that performed it and the originating IP. Ask us for an export any time; it is also visible per-partner in the Auphere panel.
What we store about your clients’ customers
- Phone numbers, conversations and message status — the operational minimum to run messaging.
- Opt-outs, honoured automatically on every subsequent send.
- Credentials you send us for connectors are encrypted at rest and never returned by any endpoint.