RestCord logo RestCord

Migrate to 0.9

RestCord 0.9 is a breaking API change. JSON and form fields now go under body. IDs use underscore names. Sync methods return decoded JSON, a stream, or null instead of a DTO or Result. Each listed method also has an Async pair.

The table maps every legacy v6 call. A removal links to the current official Discord documentation or changelog used for review.

Body cells describe the RestCord call shape. Discord v10 can remove or rename legacy body fields. Check the current endpoint documentation before sending a payload.

For multipart calls, pass the old file as body['files[0]']. RestCord builds payload_json; do not pass it. Where applicable, wrap a singular embed in body['embeds'][0].

'body' => ['files[0]' => ['contents' => $contents, 'filename' => 'file.png', 'content_type' => 'image/png']]
old call new call old option keys new option keys body nesting return change removal source
guild.createGuild removed name, region, icon, verification_level, default_message_notifications, explicit_content_filter, roles, channels - name, region, icon, verification_level, default_message_notifications, explicit_content_filter, roles, channels removed DTO/Result to unavailable Discord source
guild.getGuild guilds.getGuild guild.id, with_counts guild_id, with_counts - DTO/Result to decoded JSON -
guild.modifyGuild guilds.updateGuild guild.id, name, region, verification_level, default_message_notifications, explicit_content_filter, afk_channel_id, afk_timeout, icon, owner_id, splash, system_channel_id guild_id, audit_log_reason, body name, region, verification_level, default_message_notifications, explicit_content_filter, afk_channel_id, afk_timeout, icon, owner_id, splash, system_channel_id to body DTO/Result to decoded JSON -
guild.deleteGuild removed guild.id - - DTO/Result to unavailable Discord source
guild.getGuildChannels guilds.listGuildChannels guild.id guild_id - DTO/Result to decoded JSON -
guild.createGuildChannel guilds.createGuildChannel guild.id, name, type, topic, bitrate, user_limit, rate_limit_per_user, position, permission_overwrites, parent_id, nsfw guild_id, audit_log_reason, body name, type, topic, bitrate, user_limit, rate_limit_per_user, position, permission_overwrites, parent_id, nsfw to body DTO/Result to decoded JSON -
guild.modifyGuildChannelPositions guilds.bulkUpdateGuildChannels guild.id, id, position guild_id, body id, position to body DTO/Result to null -
guild.getGuildMember guilds.getGuildMember guild.id, user.id guild_id, user_id - DTO/Result to decoded JSON -
guild.listGuildMembers guilds.listGuildMembers guild.id, limit, after guild_id, limit, after - DTO/Result to decoded JSON -
guild.addGuildMember guilds.addGuildMember guild.id, user.id, access_token, nick, roles, mute, deaf guild_id, user_id, body access_token, nick, roles, mute, deaf to body DTO/Result to decoded JSON, null -
guild.modifyGuildMember guilds.updateGuildMember guild.id, user.id, nick, roles, mute, deaf, channel_id guild_id, user_id, audit_log_reason, body nick, roles, mute, deaf, channel_id to body DTO/Result to decoded JSON, null -
guild.modifyCurrentUserNick guilds.updateMyGuildMember guild.id, nick guild_id, audit_log_reason, body nick to body DTO/Result to decoded JSON -
guild.addGuildMemberRole guilds.addGuildMemberRole guild.id, user.id, role.id guild_id, user_id, role_id, audit_log_reason - DTO/Result to null -
guild.removeGuildMemberRole guilds.deleteGuildMemberRole guild.id, user.id, role.id guild_id, user_id, role_id, audit_log_reason - DTO/Result to null -
guild.removeGuildMember guilds.deleteGuildMember guild.id, user.id guild_id, user_id, audit_log_reason - DTO/Result to null -
guild.getGuildBans guilds.listGuildBans guild.id guild_id, limit, before, after - DTO/Result to decoded JSON -
guild.getGuildBan guilds.getGuildBan guild.id, user.id guild_id, user_id - DTO/Result to decoded JSON -
guild.createGuildBan guilds.banUserFromGuild guild.id, user.id, delete-message-days?, reason? guild_id, user_id, audit_log_reason, body delete-message-days? to body.delete_message_days; reason? to audit_log_reason DTO/Result to null -
guild.removeGuildBan guilds.unbanUserFromGuild guild.id, user.id guild_id, user_id, audit_log_reason, body body added DTO/Result to null -
guild.getGuildRoles guilds.listGuildRoles guild.id guild_id - DTO/Result to decoded JSON -
guild.createGuildRole guilds.createGuildRole guild.id, name, permissions, color, hoist, mentionable guild_id, audit_log_reason, body name, permissions, color, hoist, mentionable to body DTO/Result to decoded JSON -
guild.modifyGuildRolePositions guilds.bulkUpdateGuildRoles guild.id, id, position guild_id, audit_log_reason, body id, position to body DTO/Result to decoded JSON -
guild.modifyGuildRole guilds.updateGuildRole guild.id, role.id, name, permissions, color, hoist, mentionable guild_id, role_id, audit_log_reason, body name, permissions, color, hoist, mentionable to body DTO/Result to decoded JSON -
guild.deleteGuildRole guilds.deleteGuildRole guild.id, role.id guild_id, role_id, audit_log_reason - DTO/Result to null -
guild.getGuildPruneCount guilds.previewPruneGuild guild.id, days guild_id, days, include_roles - DTO/Result to decoded JSON -
guild.beginGuildPrune guilds.pruneGuild guild.id, days, compute_prune_count guild_id, audit_log_reason, body days, compute_prune_count to body DTO/Result to decoded JSON -
guild.getGuildVoiceRegions guilds.listGuildVoiceRegions guild.id guild_id - DTO/Result to decoded JSON -
guild.getGuildInvites guilds.listGuildInvites guild.id guild_id - DTO/Result to decoded JSON -
guild.getGuildIntegrations guilds.listGuildIntegrations guild.id guild_id - DTO/Result to decoded JSON -
guild.createGuildIntegration removed guild.id, type, id - type, id removed DTO/Result to unavailable Discord source
guild.modifyGuildIntegration removed guild.id, integration.id, expire_behavior, expire_grace_period, enable_emoticons - expire_behavior, expire_grace_period, enable_emoticons removed DTO/Result to unavailable Discord source
guild.deleteGuildIntegration guilds.deleteGuildIntegration guild.id, integration.id guild_id, integration_id, audit_log_reason - DTO/Result to null -
guild.syncGuildIntegration removed guild.id, integration.id - - DTO/Result to unavailable Discord source
guild.getGuildEmbed guilds.getGuildWidgetSettings guild.id guild_id - DTO/Result to decoded JSON -
guild.modifyGuildEmbed guilds.updateGuildWidgetSettings guild.id guild_id, audit_log_reason, body body added DTO/Result to decoded JSON -
guild.getGuildVanityUrl guilds.getGuildVanityUrl guild.id guild_id - DTO/Result to decoded JSON -
guild.getGuildWidgetImage guilds.getGuildWidgetPng guild.id, style guild_id, style - DTO/Result to stream -
guild.updateNick guilds.updateMyGuildMember guild.id, nick guild_id, audit_log_reason, body nick to body DTO/Result to decoded JSON -
audit-log.getGuildAuditLog guilds.listGuildAuditLogEntries guild.id guild_id, user_id, target_id, action_type, before, after, limit - DTO/Result to decoded JSON -
channel.getChannel channels.getChannel channel.id channel_id - DTO/Result to decoded JSON -
channel.modifyChannel channels.updateChannel channel.id, name, position, topic, nsfw, rate_limit_per_user, bitrate, user_limit, permission_overwrites, parent_id channel_id, audit_log_reason, body name, position, topic, nsfw, rate_limit_per_user, bitrate, user_limit, permission_overwrites, parent_id to body DTO/Result to decoded JSON -
channel.deleteOrcloseChannel channels.deleteChannel channel.id channel_id, audit_log_reason - DTO/Result to decoded JSON -
channel.getChannelMessages channels.listMessages channel.id, around, before, after, limit channel_id, around, before, after, limit - DTO/Result to decoded JSON -
channel.getChannelMessage channels.getMessage channel.id, message.id channel_id, message_id - DTO/Result to decoded JSON -
channel.createMessage channels.createMessage channel.id, content, nonce, tts, file, embed, payload_json channel_id, body content, nonce, tts to body; file to body.files[0]; embed to body.embeds[0]; payload_json removed/generated DTO/Result to decoded JSON -
channel.createReaction channels.addMyMessageReaction channel.id, message.id, emoji channel_id, message_id, emoji_name - DTO/Result to null -
channel.deleteOwnReaction channels.deleteMyMessageReaction channel.id, message.id, emoji channel_id, message_id, emoji_name - DTO/Result to null -
channel.deleteUserReaction channels.deleteUserMessageReaction channel.id, message.id, emoji, user.id channel_id, message_id, emoji_name, user_id - DTO/Result to null -
channel.getReactions channels.listMessageReactionsByEmoji channel.id, message.id, emoji, before, after, limit channel_id, message_id, emoji_name, after, limit, type - DTO/Result to decoded JSON -
channel.deleteAllReactions channels.deleteAllMessageReactions channel.id, message.id channel_id, message_id - DTO/Result to null -
channel.editMessage channels.updateMessage channel.id, message.id, content, embed channel_id, message_id, body content to body.content; embed to body.embeds[0] DTO/Result to decoded JSON -
channel.deleteMessage channels.deleteMessage channel.id, message.id channel_id, message_id, audit_log_reason - DTO/Result to null -
channel.bulkDeleteMessages channels.bulkDeleteMessages channel.id channel_id, audit_log_reason, body body added DTO/Result to null -
channel.editChannelPermissions channels.setChannelPermissionOverwrite channel.id, overwrite.id, allow, deny, type channel_id, overwrite_id, audit_log_reason, body allow, deny, type to body DTO/Result to null -
channel.getChannelInvites channels.listChannelInvites channel.id channel_id - DTO/Result to decoded JSON -
channel.createChannelInvite channels.createChannelInvite channel.id, max_age, max_uses, temporary, unique channel_id, audit_log_reason, body max_age, max_uses, temporary, unique to body DTO/Result to decoded JSON, null -
channel.deleteChannelPermission channels.deleteChannelPermissionOverwrite channel.id, overwrite.id channel_id, overwrite_id, audit_log_reason - DTO/Result to null -
channel.triggerTypingIndicator channels.triggerTypingIndicator channel.id channel_id - DTO/Result to decoded JSON, null -
channel.getPinnedMessages channels.deprecatedListPins channel.id channel_id - DTO/Result to decoded JSON -
channel.addPinnedChannelMessage channels.deprecatedCreatePin channel.id, message.id channel_id, message_id - DTO/Result to null -
channel.deletePinnedChannelMessage channels.deprecatedDeletePin channel.id, message.id channel_id, message_id - DTO/Result to null -
channel.groupDmAddRecipient channels.addGroupDmUser channel.id, user.id, access_token, nick channel_id, user_id, body access_token, nick to body DTO/Result to decoded JSON, null -
channel.groupDmRemoveRecipient channels.deleteGroupDmUser channel.id, user.id channel_id, user_id - DTO/Result to null -
emoji.listGuildEmojis guilds.listGuildEmojis guild.id guild_id - DTO/Result to decoded JSON -
emoji.getGuildEmoji guilds.getGuildEmoji guild.id, emoji.id guild_id, emoji_id - DTO/Result to decoded JSON -
emoji.createGuildEmoji guilds.createGuildEmoji guild.id, name, image, roles guild_id, audit_log_reason, body name, image, roles to body DTO/Result to decoded JSON -
emoji.modifyGuildEmoji guilds.updateGuildEmoji guild.id, emoji.id, name, roles guild_id, emoji_id, audit_log_reason, body name, roles to body DTO/Result to decoded JSON -
emoji.deleteGuildEmoji guilds.deleteGuildEmoji guild.id, emoji.id guild_id, emoji_id, audit_log_reason - DTO/Result to null -
invite.getInvite invites.inviteResolve invite.code code, with_counts, guild_scheduled_event_id, target_channel_id, target_message_id - DTO/Result to decoded JSON -
invite.deleteInvite invites.inviteRevoke invite.code code, audit_log_reason - DTO/Result to decoded JSON -
user.getCurrentUser users.getMyUser - - - DTO/Result to decoded JSON -
user.getUser users.getUser user.id user_id - DTO/Result to decoded JSON -
user.modifyCurrentUser users.updateMyUser username, avatar body username, avatar to body DTO/Result to decoded JSON -
user.getCurrentUserGuilds users.listMyGuilds before, after, limit before, after, limit, with_counts - DTO/Result to decoded JSON -
user.leaveGuild users.leaveGuild guild.id guild_id - DTO/Result to null -
user.getUserDms removed - - - DTO/Result to unavailable Discord source
user.createDm users.createDm recipient_id body recipient_id to body DTO/Result to decoded JSON -
user.createGroupDm users.createDm access_tokens, nicks body access_tokens, nicks to body DTO/Result to decoded JSON -
user.getUserConnections users.listMyConnections - - - DTO/Result to decoded JSON -
voice.listVoiceRegions voice.listVoiceRegions - - - DTO/Result to decoded JSON -
webhook.createWebhook channels.createWebhook channel.id, name, avatar channel_id, audit_log_reason, body name, avatar to body DTO/Result to decoded JSON -
webhook.getChannelWebhooks channels.listChannelWebhooks channel.id channel_id - DTO/Result to decoded JSON -
webhook.getGuildWebhooks guilds.getGuildWebhooks guild.id guild_id - DTO/Result to decoded JSON -
webhook.getWebhook webhooks.getWebhook webhook.id webhook_id - DTO/Result to decoded JSON -
webhook.getWebhookWithToken webhooks.getWebhookByToken webhook.id, webhook.token webhook_id, webhook_token - DTO/Result to decoded JSON -
webhook.modifyWebhook webhooks.updateWebhook webhook.id, name, avatar, channel_id webhook_id, audit_log_reason, body name, avatar, channel_id to body DTO/Result to decoded JSON -
webhook.modifyWebhookWithToken webhooks.updateWebhookByToken webhook.id, webhook.token webhook_id, webhook_token, body body added DTO/Result to decoded JSON -
webhook.deleteWebhook webhooks.deleteWebhook webhook.id webhook_id, audit_log_reason - DTO/Result to null -
webhook.deleteWebhookWithToken webhooks.deleteWebhookByToken webhook.id, webhook.token webhook_id, webhook_token - DTO/Result to null -
webhook.executeWebhook webhooks.executeWebhook webhook.id, webhook.token, wait, content, username, avatar_url, tts, file, embeds, payload_json webhook_id, webhook_token, wait, thread_id, with_components, body JSON fields to body; file to body.files[0]; payload_json removed/generated DTO/Result to decoded JSON, null -
webhook.executeSlackCompatibleWebhook webhooks.executeSlackCompatibleWebhook webhook.id, webhook.token, wait webhook_id, webhook_token, wait, thread_id, body body added DTO/Result to decoded JSON -
webhook.executeGithubCompatibleWebhook webhooks.executeGithubCompatibleWebhook webhook.id, webhook.token, wait webhook_id, webhook_token, wait, thread_id, body body added DTO/Result to null -
gateway.getGateway gateway.getGateway - - - DTO/Result to decoded JSON -
gateway.getGatewayBot gateway.getBotGateway total, remaining, reset_after - total, remaining, reset_after removed DTO/Result to decoded JSON -
oauth2.getCurrentApplicationInformation oauth2.getMyOauth2Application id, name, icon, description, rpc_origins?, bot_public, bot_require_code_grant, owner - id, name, icon, description, rpc_origins?, bot_public, bot_require_code_grant, owner removed DTO/Result to decoded JSON -

reviewed normalized mismatches

The normalized comparison treats each route placeholder as one position. These 11 legacy calls have no current method and route match.

guild.createGuild, guild.deleteGuild, guild.modifyCurrentUserNick, guild.createGuildIntegration, guild.modifyGuildIntegration, guild.syncGuildIntegration, guild.getGuildEmbed, guild.modifyGuildEmbed, guild.updateNick, channel.bulkDeleteMessages, user.getUserDms

The table records each reviewed destination or removal. guild.modifyCurrentUserNick and guild.updateNick are duplicate legacy nick calls.