Endpoint reference
Every v1 endpoint grouped by capability. Each endpoint lists the HTTP method, path, required scope, plan, and example response. The full OpenAPI document is served by the API at /openapi.json.
Link lookup
/api/v1/guilds/:guildId/discord-to-roblox/:userIdFREEResolve a Discord user’s linked Roblox account in this guild.
Returns the Discord↔Roblox link for members DreamSync has tracked in this guild. Free tier.
link:readExample response
{
"robloxId": 92658764,
"cachedUsername": "evaera",
"discordId": "113691352327389188",
"guildId": "425800792679645204"
}/api/v1/guilds/:guildId/roblox-to-discord/:robloxIdFREEResolve a Roblox user’s linked Discord account in this guild.
Inverse of discord-to-roblox. Same visibility rules.
link:readExample response
{
"robloxId": 92658764,
"cachedUsername": "evaera",
"discordId": "113691352327389188",
"guildId": "425800792679645204"
}Update
/api/v1/guilds/:guildId/update/:userIdFREERun the shared update engine on a member.
Evaluates bindings, applies roles and nickname changes, returns a structured result.
update:writeExample response
{
"ok": true,
"linked": true,
"verified": true,
"robloxId": 92658764,
"rolesAdded": [
"123"
],
"rolesRemoved": [
"789"
],
"nickname": {
"from": "oldname",
"to": "evaera"
},
"bindingsEvaluated": 12,
"bindingsMatched": 4,
"requestId": "req_abc123"
}Bans
/api/v1/guilds/:guildId/bansPROList Roblox bans in this guild.
Paginated via cursor. Pro tier.
bans:readExample response
{
"items": [
{
"guildId": "425800792679645204",
"robloxId": 92658764,
"cachedUsername": "evaera",
"reason": "Cheating",
"enforceDiscord": true,
"createdAt": "2026-04-19T12:00:00Z",
"liftedAt": null
}
],
"nextCursor": null
}/api/v1/guilds/:guildId/bans/:robloxIdPROFetch a single Roblox ban.
Pro tier.
bans:readExample response
{
"guildId": "425800792679645204",
"robloxId": 92658764,
"cachedUsername": "evaera",
"reason": "Cheating",
"enforceDiscord": true,
"createdAt": "2026-04-19T12:00:00Z",
"liftedAt": null
}/api/v1/guilds/:guildId/bans/:robloxIdPROBan a Roblox account from this guild.
Respects banConfig.enforceDiscord. Pro tier.
bans:writeExample request
{
"reason": "Exploiting"
}Example response
{
"guildId": "425800792679645204",
"robloxId": 92658764,
"reason": "Exploiting",
"enforceDiscord": true,
"discordUserBanned": true,
"createdAt": "2026-04-19T12:00:00Z",
"liftedAt": null
}/api/v1/guilds/:guildId/bans/:robloxIdPROLift a Roblox ban.
Pro tier.
bans:writeExample response
{
"guildId": "425800792679645204",
"robloxId": 92658764,
"lifted": true,
"discordUserUnbanned": true
}Roles
/api/v1/guilds/:guildId/discord-has-role/:userId/:roleIdDEVELOPERCheck whether a Discord user has a role.
Developer tier.
roles:checkExample response
{
"guildId": "425800792679645204",
"discordId": "113691352327389188",
"roleId": "987654321098765432",
"hasRole": true
}/api/v1/guilds/:guildId/roblox-has-role/:robloxId/:roleIdDEVELOPERCheck whether a Roblox user’s linked Discord account has a role.
Developer tier.
roles:checkExample response
{
"guildId": "425800792679645204",
"robloxId": 92658764,
"discordId": "113691352327389188",
"roleId": "987654321098765432",
"hasRole": true
}API keys
/api/v1/api-keyFREESelf-revoke the API key used for the request.
After revocation, further requests with the same key fail with HTTP 401.
link:readExample response
{
"revoked": true,
"id": "clxxx",
"prefix": "abcd1234"
}