Skip to main content
Every Yativo API key has an IP whitelist: the list of public IP addresses allowed to use it. This guide explains the rules, how to find the right IPs, and how to check your setup. Related guides:

Environments

Sandbox and production whitelists are separate.

Rules at a glance

  • Production (https://api.yativo.com, and every other host on that server): every API key must have at least one allowed IP. A request with no whitelist is rejected with 401.
  • Sandbox (https://smtp.yativo.com): a whitelist is optional. If you set one, requests must still come from those IPs.
  • Since 15 October 2026, keys and whitelists can only be managed in the dashboard.
Use the check endpoint to confirm every server that uses a key passes before you go live.

Two kinds of whitelist

A key’s effective whitelist is its own allowed_ips plus the owner’s account whitelist. Removing an IP from the account whitelist removes it from every key at once. Use key whitelists for most setups. Use the account whitelist for an address that every key should accept, such as your main NAT gateway.

Find your server’s public IP

The whitelist must contain the public IP your requests come from, as seen by the internet. Private addresses (10.x.x.x, 172.16.x.x–172.31.x.x, 192.168.x.x) don’t work. Run this on the server that will call the API:
Or, once you have a key, call the check endpoint from that server and use tested_ip.

Whitelist rules

  • At least one entry is required on every key. A key with no effective whitelist is blocked from every IP.
  • Each key entry is either a single IP (203.0.113.10, 2001:db8::1) or a CIDR range (198.51.100.0/28, 2001:db8:abcd::/48).
  • Ranges can’t be broader than /16 for IPv4 or /32 for IPv6. Entries like 0.0.0.0/0 are rejected.
  • Up to 50 entries per key, with no duplicates.
  • The account whitelist accepts single IPs only.
  • The IP checked is the address your request reaches Yativo from. Setting X-Forwarded-For or similar headers yourself has no effect.

Check your IP

GET /ip-whitelist/check Shows which IP Yativo sees for your request and whether it passes your whitelist. It never blocks, so you can call it any time, including right after changing a whitelist. Limited to 30 requests a minute. Call it with your API key, from the server that uses the key:
To check another address, such as a server you haven’t deployed yet, add ?ip=<address>. result, summary, api_key and sitewide then describe that address, and key_usage still describes the server you called from:
If detected_ip isn’t the IP you expected, your traffic leaves through a different address, such as a NAT gateway or proxy. Whitelist detected_ip.

Change a key’s allowed IPs

In the dashboard, go to API Keys → the key → Allowed IPs. The list you save replaces the current one, and the key and secret don’t change. This needs the team.api-keys.create permission. A revoked key can’t be changed.
When moving servers: add the new IP first, deploy, then remove the old IP. This avoids downtime.
Dashboard developers: this is PUT /teams/{teamId}/api-keys/{keyId}/allowed-ips, described in API keys.

Account whitelist endpoints (dashboard)

These endpoints power the account whitelist in the dashboard settings. Since 15 October 2026 they only work from the dashboard (https://app.yativo.com) with the user’s bearer token. API-key requests get 403. Team members need team.settings.view to read and team.settings.manage to change the whitelist.

Get the account whitelist

data is null if no IPs have been added.

Add IPs

new_ip is an array of 1 to 50 single IPs (no CIDR ranges). They’re added to the existing list; duplicates are ignored.
PUT /api/v1/ip/{id} with the same body also adds IPs, to the record with that id.

Remove an IP

The path parameter is the IP address itself, for example DELETE /api/v1/ip/203.0.113.12. Returns 404 if there’s no whitelist and 400 IP address not found if the IP isn’t on it.

Errors

FAQ

Does the whitelist apply to dashboard sign-in? No. It only applies to requests made with X-Api-Key / X-Api-Secret. People signing in to the dashboard can be on any network. Can I allow any IP? On sandbox, omit the whitelist to call from any IP. On production, no: every key needs at least one address, and 0.0.0.0/0 and ranges broader than /16 (IPv4) or /32 (IPv6) are rejected. My key worked and now returns 401 or 403. A 401 with no whitelisted IPs means you called production without a whitelist. A 403 means your server’s egress IP isn’t on the list (it may have changed). data.error tells you which.