Documentation

Getting Started

AdminUpdated Sep 20, 2026

Getting Started

Set up your first custom bot, connect a Discord server, and start verifying members in under 10 minutes. This guide walks you through every step from zero to a working verification link.

Prerequisites

Before you begin, make sure you have the following: a Discord account, ownership or Administrator permission on the Discord server you want to protect, and a RestoreHub account (sign up at restorehub.net with Discord, Google, GitHub, Apple, or email/password).

Restore Hub works on a custom-bot model. Instead of adding a shared bot that thousands of servers use, you create your own Discord application and give Restore Hub the credentials. This means your members see your bot name and avatar, not ours.

Tip: You can get started entirely on the Free plan. Free accounts include 1 custom bot, 2 servers, 3 backups, and core verification. Premium features like VPN detection, alt detection, and the firewall require an upgrade.

Step 1 — Create a Discord Application

Every Restore Hub bot starts as a standard Discord application. You will create it in the Discord Developer Portal and then hand the credentials to Restore Hub.

  1. Open the Developer Portal — Navigate to https://discord.com/developers/applications in your browser. Sign in with your Discord account if prompted.

  2. Create a new application — Click the "New Application" button in the top-right corner. Give it a name (this will be the bot's display name in your server) and accept the Discord Developer Terms of Service.

  3. Copy the Application (Client) ID — On the "General Information" page, find the Application ID field. Click "Copy" and save this somewhere — you will paste it into Restore Hub shortly.

  4. Copy the Public Key — Still on "General Information", copy the Public Key. Restore Hub uses this to verify that incoming interaction payloads are genuinely from Discord.

  5. Generate the Client Secret — Navigate to the "OAuth2" section in the left sidebar. Under "Client information", click "Reset Secret" and confirm. Copy the secret immediately — Discord only shows it once.

  6. Create the Bot user and copy the Token — Navigate to "Bot" in the left sidebar. Click "Reset Token" and confirm. Copy the bot token and store it securely. This token gives full control of the bot, so never share it publicly.

  7. Enable Privileged Intents — Scroll down on the Bot page to "Privileged Gateway Intents". Enable Server Members Intent (required for member pulling and backups) and Message Content Intent (required for message backups). Click "Save Changes".

Warning: Your bot token and client secret are sensitive credentials. Never paste them in Discord messages, public repos, or screenshots. Restore Hub encrypts them with AES-256 at rest and never displays them after initial setup.

Step 2 — Set the OAuth2 Redirect URI

Discord requires you to whitelist the exact URL that users are redirected to after authorizing with OAuth2. Restore Hub needs this configured for verification to work.

  1. Navigate to OAuth2 Redirects — In the Developer Portal, go to OAuth2 → General. Scroll down to "Redirects".

  2. Add the Restore Hub callback URL — Click "Add Redirect" and enter: https://restorehub.net/api/callback. If you plan to use a custom domain (e.g., verify.yourdomain.com), also add https://verify.yourdomain.com/api/callback. Click Save Changes.

https://restorehub.net/api/callback

Tip: You can add multiple redirect URIs. Add both the restorehub.net callback and any custom domain callbacks you plan to use.

Step 3 — Add Your Bot to Restore Hub

Now that you have your Discord application configured, bring the credentials into Restore Hub using the 5-step bot setup wizard.

  1. Open the Custom Bots page — Log in to restorehub.net. In the dashboard sidebar, click "Custom Bots", then click "Add Bot".

  2. Paste your credentials (Wizard Step 1 of 5) — Enter the Bot Token, Client ID, Client Secret, Public Key, and Redirect URI. Restore Hub validates each field in real time.

  3. Configure the Interactions Endpoint (Wizard Step 2 of 5) — RestoreHub generates a unique interactions endpoint URL for your bot (e.g., https://restorehub.net/api/interactions/{botId}). The wizard gives you this URL and instructs you to paste it into the Discord Developer Portal under General Information → Interactions Endpoint URL. Discord sends a verification ping — RestoreHub responds automatically. Once Discord shows a green checkmark, proceed.

  4. Set your verification URL (Wizard Step 3 of 5) — Choose between a slug-based URL (restorehub.net/s/your-community) or a custom domain (verify.yourdomain.com). Slugs are instant; custom domains require a CNAME record (covered in the Custom Domains doc).

  5. Invite to a server (Wizard Step 4 of 5) — The wizard generates an OAuth2 invite link with the correct permissions (Manage Roles, Kick Members, View Channels, Read Message History). Click "Invite to Server", select your Discord server from the dropdown, and authorize.

  6. Configure server settings (Wizard Step 5 of 5) — Select the Verified role that members receive after passing verification. Optionally set a log channel for verification events, enable captcha, set minimum account age, and toggle security features.

Step 4 — Share the Verification Link

Your bot is now live. Share the verification URL with your members. You can post it in a channel, put it in your server description, or use the /verify-embed slash command to create a button embed in any channel.

When a member clicks the link, they are taken to your custom verification page. They click "Verify", authorize with Discord OAuth2 (granting identify, email, guilds, and guilds.join scopes), and are automatically assigned the verified role in your server.

Tip: Use the /verify-embed command (Premium+) to post a clean verification embed with a button directly in a Discord channel. Members click the button and are redirected to the verify page.

What Happens Behind the Scenes

Restore Hub bots use Discord's HTTP-based Interactions Endpoint, not the traditional WebSocket Gateway. This is an important architectural distinction that affects how the bot behaves.

With the Gateway approach, a bot maintains a persistent WebSocket connection to Discord and receives every event in real time (messages, reactions, member joins, etc.). This requires always-on infrastructure and shows a green/yellow/red status dot next to the bot in the member list.

With the Interactions Endpoint approach (which Restore Hub uses), Discord sends HTTP POST requests to your bot's endpoint URL only when a user triggers a slash command or button interaction. There is no persistent connection. The bot appears in the member list without a status dot — clean and professional.

All other operations (assigning roles, pulling members, creating backups, kicking members) are performed via Discord's REST API using the bot token. This means Restore Hub can scale to thousands of bots without maintaining thousands of WebSocket connections.

Plan Limits at a Glance

| Feature | Free | Premium | Business | Enterprise |
|---|---|---|---|---|
| Servers | 2 | 10 | 50 | Unlimited |
| Custom Bots | 1 | 5 | 25 | Unlimited |
| Backups | 3 | 10 | 30 | 50 |
| Messages/Backup | 50 | 200 | 500 | 2,000 |
| Pull Cooldown | 6 hours | 1 hour | 15 min | None |
| VPN Detection | No | Yes | Yes | Yes |
| Alt Detection | No | Yes | Yes | Yes |
| Firewall | No | Yes | Yes | Yes |
| Anti-Nuke | No | No | Yes | Yes |
| Anti-Raid | No | No | Yes | Yes |
| Custom Domain | No | No | Yes | Yes |
| Scheduled Backups | No | Yes | Yes | Yes |
| Slash Commands | No | Yes | Yes | Yes |
| Team Management | No | No | Yes | Yes |
| API Rate Limit | 20/10s | 50/10s | 100/10s | 200/10s |

Next Steps

  • Read the Custom Bots doc to understand how HTTP interactions work and what permissions your bot needs.

  • Read the Verification doc to learn about every security check in the verification flow.

  • Read the Security doc to enable VPN detection, alt detection, firewall rules, anti-nuke, and anti-raid.

  • Read the Backups doc to set up server snapshots and scheduled backups.

  • Read the Member Pulling doc to learn how to move verified members between servers.

  • Read the Custom Domains doc if you want verify.yourdomain.com instead of a slug URL.

  • Read the REST API doc if you want to integrate Restore Hub with your own tools or dashboards.

Was this page helpful?