403.
Find your server’s public IP
Whitelist the public IP your requests leave from. Private addresses such as10.x.x.x or 192.168.x.x don’t work.
Run this on the server that will call the API:
Whitelist rules
- Every key needs at least one entry, and can have up to 50.
- Each entry is a single IPv4 or IPv6 address (
203.0.113.10,2001:db8::1) or a CIDR range (198.51.100.0/28). - Ranges can’t be broader than
/16for IPv4 or/32for IPv6.0.0.0.0/0is rejected. - IPs added under Profile → Whitelist apply to every API key on your account, on top of each key’s own list.
- Setting
X-Forwarded-Foror similar headers yourself has no effect.
Add or change IPs
On a new key: enter the IPs in Allowed IPs when you generate the key. See API Keys. On an existing key: go to Developers → API Keys and click Edit IPs on the key. The list you save replaces the current one, and the key and secret stay the same. For every key at once: add the IP under Profile → Whitelist.Check your IP
CallGET /ip-whitelist/check from the server that uses the key. It never blocks, so you can run it any time, including right after changing a whitelist.
The full response is in the API reference.
To check a server you haven’t deployed yet, add
?ip=<address>. result then describes that address, and key_usage still describes the server you called from.
Errors
FAQ
Does the whitelist apply to dashboard sign-in?
Does the whitelist apply to dashboard sign-in?
No. It only applies to requests made with an API key. People can sign in to the dashboard from any network.
Can I allow any IP?
Can I allow any IP?
No. Every key needs a whitelist, and ranges broader than
/16 (IPv4) or /32 (IPv6) are rejected.My key worked and now returns 403.
My key worked and now returns 403.
Your server’s public IP has probably changed. Run the check endpoint from that server and add the new
request_ip to the key.
