RestoreCord with the lid off
A verification is three things: a standard Discord OAuth2 grant, one pass through your server's firewall and, later, an add-member call Discord allows because the member said yes. This site opens each part up.
What the callback actually looks at
Four inputs feed the decision. Flip through them to see what each one is and where it comes from.
One lookup, many answers
The request IP is resolved once per verification. Country, continent, ASN, connection type and anonymity flags from that single answer drive firewall rules, VPN and proxy blocking and the cellular block.
- Country, continent, ASN, IP and CIDR range rules
- ASN blacklisting from Business
- Owners can switch IP logging off; a badge tells members
IP lookup for rowan_02
Resolved once, read by every network check
- Connection type
- Residential
- Country
- DE
- ASN
- AS64500
- Anonymous (VPN or proxy)
- No
- Firewall decision
- Allow
Four scopes, and only one is fixed
identify is the only scope every verification asks for. The rest follow switches in your server settings, so the consent screen never asks for more than your rules use.
- guilds.join is what turns a verification into a member backup
- Fewer scopes keep prompt=none, so returning members skip consent
- Members can revoke the app in Discord at any time
Scopes for this server
What Discord's consent screen will list
- identify
- Always
- guilds.join
- When the join scope is on
- guilds
- For server-membership rules
- When emails are saved or required
Settings
Join scope
Needed for every later pull
Require email
Off, so prompt=none stays in the URL
Which internals each plan switches on
The engine is the same on every plan. What changes is which signals your firewall is allowed to act on.
| Free | Premium | Business | Enterprise | |
|---|---|---|---|---|
| RestoreCord pull cooldown | None | None | None | None |
| Delay between pulls | Fixed | Range | Range | Range |
| Proxied requests | ||||
| Captcha | ||||
| Alt detection (IP and visitor ID) | — | |||
| VPN and proxy blocking | — | |||
| ASN blacklist | — | — | ||
| Server-membership rules | — | — | ||
| Cellular connection block | — | — | — | |
| Minimum account age | — | — | — | |
| Webhook logs | Advanced | Advanced+ |
Rate limits come from two places
Discord limits your bot and RestoreCord's API limits your scripts, and each one answers differently when you push too hard.
Discord
Verification and pulls
Error 10003
Discord limited the account or the bot
Add-member calls
One member per call while pulling
REST API v3
Your scripts and integrations
Request accepted
200
Too many requests in a burst
429 RATE_LIMITED
Client waits for Retry-After
seconds
Single retry succeeds
200
Got a number instead of a role?
Every denial on the verify page carries a code. See which stage of the callback produced it and who can fix it.
Questions engineers ask first
Run the pipeline on your own server
Connect a bot, verify from a spare account and watch every stage on this page happen for real.