Authentication
Every call to the DreamSync API must carry a valid guild-scoped API key in the Authorization header.
Key format
Live keys use the format ds_live_ followed by a 32-byte random string. Staging uses ds_test_. Keys are case-sensitive. DreamSync stores only an SHA-256 hash of the key and a short prefix for display.
Header
Authorization: Bearer ds_live_…Scopes
Scopes are declared per key. The dashboard filters offered scopes by your server's current plan. A request that requires a scope the key doesn't have is rejected with 403 forbidden.
link:read: read Discord↔Roblox links for guild members (Free)link:read:global: cross-guild link lookup (Developer)update:write: run the shared update engine (Free)bans:read/bans:write: Roblox ban lifecycle (Pro)roles:check: role membership checks (Developer)
Revocation
Revoke a key from the dashboard at any time. A revoked key begins returning 401 revoked within seconds. A key can also revoke itself with DELETE /api/v1/api-key.
Guild scope
Keys are scoped to a single Discord server. Attempting to call endpoints for a different guild returns 403 forbidden. To operate across multiple servers, generate one key per server.
Retention
DreamSync is not a link mirror. Data returned by the API must not be retained for more than 30 days unless the underlying user has re-verified within that window. Keys that exhibit scraping patterns are subject to manual review and revocation.