API Reference
RestoreCord REST API reference covering the base URL, API key authentication and permissions, response format, error codes and every /api/v3 endpoint group.
Overview
RestoreCord exposes authenticated /api/v3 endpoints for account data, custom bots, servers, migrations, members, snapshots, firewall, analytics, and webhook configuration.
Base URL
https://restorecord.com/api/v3Examples in the category pages show full paths beginning with /api/v3. Use JSON request bodies unless the endpoint explicitly documents Server-Sent Events or asset responses.
Authentication
Every endpoint in this reference authenticates with an API key sent in the Authorization header.
Authorization: Bearer <keyId>.<secret>API Key Permissions
| Permission | Used by |
|---|---|
READ_ACCOUNT | GET /api/v3/users limited account payload. |
READ_SERVERS | Server list/detail/status reads. |
WRITE_SERVERS | Server create/update/delete. |
READ_MEMBERS | Member lists and lookups. |
WRITE_MEMBERS | Member deletion and unauthorized cleanup. |
READ_BOTS | Bot list/detail reads. |
WRITE_BOTS | Bot create/update/delete. |
READ_ANALYTICS | Member and firewall analytics. |
CREATE_BACKUPS | Snapshot creation and snapshot metadata/migration operations. |
RESTORE_BACKUPS | Snapshot list/detail/delete/restore and role-restore operations. |
SERVER_PULL | Single-member pull operations. |
SERVER_FIREWALL | Firewall rules, passwords, logs, bypasses, and ban import. |
Create, rotate, and revoke API keys from the RestoreCord dashboard. Use the API Keys guide for credential format, permission names, and safe usage guidance.
Response Format
Most endpoints return JSON with success: true on success. Some endpoints intentionally differ: member pull returns Server-Sent Events, preview attachment endpoints can return asset responses, and Discord helper routes may pass through Discord-shaped objects.
{
"success": true,
"message": "Optional message",
"data": {}
}| Status | Meaning |
|---|---|
200 | Successful read, update, delete, or action start. |
201 | Resource created or async job accepted. |
Errors
Errors generally return an error object with a string code and message. Validation errors may include field-level details.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"errors": {
"fieldName": {
"_errors": ["Specific validation error"]
}
}
}
}| Code/status | Typical cause |
|---|---|
400 INVALID_INPUT / VALIDATION_ERROR | Bad ids, invalid JSON body, unsupported enum, invalid URL, invalid search value, or failed validation. |
400 MISSING_FIELD | Required body or query field omitted. |
401 UNAUTHORIZED / INVALID_CREDENTIALS | Missing, invalid, revoked, or expired API key, or an invalid Discord bot token. |
403 FORBIDDEN / INSUFFICIENT_PERMISSIONS | Plan gate, owner-only action, sub-user permission missing, API key permission missing, dashboard-only action, or Discord permission failure. |
404 NOT_FOUND | Resource missing or intentionally hidden because the caller lacks access. |
409 DUPLICATE_RESOURCE / RESOURCE_IN_USE | Uniqueness conflict or delete blocked by active dependency. |
429 RATE_LIMITED | Per-route rate limit or external Discord rate limit. |
500/502/503 | Internal error or dependent service failure. |
Endpoint Groups
Account
Bots
Servers
Migrations
Members
Snapshots
Firewall
Analytics
Webhooks
Route Coverage
This reference lists every supported endpoint.
| Route family | Where documented |
|---|---|
/api/v3/users | Account. |
/api/v3/bots* | Bots. |
/api/v3/servers/status and /api/v3/servers/{serverId}/migrations* | Migrations. |
/api/v3/servers* | Servers plus Members, Firewall, Analytics, Snapshots, and Webhooks for server-scoped feature routes. |
/api/v3/members* | Members. |
/api/v3/snapshots* | Snapshots. |
Some helper routes return raw Discord API objects or other nested payloads that can change. The pages call this out instead of listing every field.
Integration Notes
- Use the RestoreCord server
idin{serverId}path params; useguildIdfields for Discord guild ids. - Treat API keys as scoped credentials. A key without the required permission receives
403. - Handle absent optional fields. Plan gates and privacy gates remove fields rather than returning placeholder values.
- For member pulls, consume
text/event-streaminstead of JSON. - For webhooks, verify
X-Signature-256against the raw request body and keep receivers idempotent. - Only use the routes documented in this reference for API automation.