This is not your widget key
Choose what each key can do
When you create a key, you pick one of three access levels. The level applies everywhere the key is used — your own code calling the API, and the MCP server. A key’s access cannot be changed later — create a new key and revoke the old one.
If a key tries something its access level does not allow, the request is
refused with
403 and a message saying what kind of key it is:
Acting for one of your customers
If you build your own product on the API, your key reaches each of your customers: add their id in a header.404, whether or not it exists.
Revoking
Immediate. Revoked keys are kept along with their last-used time, because that is the first thing anybody wants to know after a leak.Rate limits
Per organization, per minute.Retry-After. The limit exists because a loop in an integration can
spend a month of WhatsApp budget before anybody looks at a dashboard — and
because Meta rate-limits the number afterwards. The damage is money first and
reputation second.
Idempotency protects you from repeating one request. It does nothing about
a thousand different ones. These are separate problems and both are guarded.