Detect · iCloud Private Relay
Stop scoring Apple users as fraud.
iCloud Private Relay exits sit in hosting-style ranges, so a naive datacenter
rule scores a real iPhone user like a server. GeoQ's is_relay
signal recognises Apple's published relay ranges and caps the risk
score at 20 — the false-positive reducer, not another block rule.
Fact + limit: is_relay identifies the relay exit. It
tells you the network kind is benign — it doesn't authenticate the user.
The false positive it fixes
Private Relay routes a user's traffic through partner infrastructure. The exit IP looks like a datacenter, which is exactly the kind of range fraud rules treat as suspicious. Without a relay signal, you either block legitimate Apple traffic or loosen your datacenter rule for everyone.
With is_relay, you keep the strict datacenter rule and carve out the one benign case explicitly. The score for a relay exit is capped at 20 (low), and benign_network_kind appears in reasons[] so the decision is auditable.
In your code
const res = await fetch("https://api.geoq.io/v1/check?ip=104.28.0.1", { headers: { "x-api-key": process.env.GEOQ_KEY }, }); const { signals, risk } = await res.json(); // A real Apple user on Private Relay — don't treat as fraud. if (signals.is_relay) { // relay_provider === "icloud"; risk.score is capped at 20. allowWithLightFriction(); // e.g. skip the hard block, keep the captcha }
What sets the signal
| Field | Meaning |
|---|---|
is_relay | True if the IP is an Apple iCloud Private Relay egress. |
relay_provider | "icloud" for Apple's relay; null otherwise. |
risk.reasons[] | Includes benign_network_kind when the cap applies. |
evidence.relay | authoritative — from Apple's own published ranges. |
FAQ
iCloud Private Relay detection — FAQ
How do you detect iCloud Private Relay?
is_relay signal carries the authoritative evidence label, with relay_provider: "icloud". Ranges are refreshed daily. Why does relay traffic look like a datacenter?
connection_type === "datacenter". That's the false positive: a real Apple user on an iPhone, scored like a server. The is_relay signal is what tells the two apart. Does GeoQ block relay users?
is_relay is a benign network kind: when it's true, the risk score is capped at 20 and benign_network_kind is added to reasons[]. You still see every signal that fired, but the headline score won't push a genuine Apple user into your fraud bucket. See the risk-score methodology. Can I still see the underlying signals?
connection_type still reads datacenter and that reason is still in reasons[]. You decide whether to treat a relay exit as low-risk for your use case. What's the difference between a relay and a VPN?
is_vpn adds +30 to the score. iCloud Private Relay is a privacy feature built into Apple's OS that doesn't let the user pick an exit country to evade geo rules. We treat relay as benign and VPN as a risk signal — they're separate fields, so you can handle them separately. How fresh is the relay range data?
Related
Get a free key — 5,000 lookups/day, no card.
Every signal and the same risk score as every paid plan. Upgrade only when you outgrow it.