Important
Current API version is v9.
This guide is primarily for Discord ACCOUNT tokens, not BOT tokens.
If this helped you make sure to star ⭐
Did not find what you are looking for? Check this https://discord.com/developers/docs/reference
Note: Different browsers have different user agents. Using an outdated or unknown user agent may result in detection.
{
"User-Agent": ""
}
Note: Xsup can be decoded using base64. They should be updated after every Discord update.
{
"X-Super-Properties": ""
}
Note: These values are from the Discord app as of 30/07/2024.
{
"os": "Windows",
"browser": "Discord Client",
"release_channel": "stable",
"client_version": "1.0.9155",
"os_version": "10.0.22631",
"os_arch": "x64",
"app_arch": "x64",
"system_locale": "en-GB",
"browser_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) discord/1.0.9155 Chrome/124.0.6367.243 Electron/30.2.0 Safari/537.36",
"browser_version": "30.2.0",
"client_build_number": 313344,
"native_build_number": 49817,
"client_event_source": null
}
Note: A Discord ACCOUNT token should be inputted here.
{
"Authorization": ""
}
Note: The value needs to be correctly formatted. Static cookies will be detected over time.
{
"Cookie": ""
}
Note: Replace all placeholder values.
headers = {
'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'en-GB,pl;q=0.9',
'Authorization': '', # Replace with account token
'Cookie': '', # Replace with correctly formatted cookies
'Content-Type': 'application/json',
'Origin': 'https://discord.com',
'Priority': 'u=1, i',
'Sec-Ch-Ua': '"Not-A.Brand";v="99", "Chromium";v="124"',
'Sec-Ch-Ua-Mobile': '?0',
'Sec-Ch-Ua-Platform': '"Windows"',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': '', # Replace with user agent
'X-Debug-Options': 'bugReporterEnabled',
'X-Discord-Locale': 'en-US',
'X-Discord-Timezone': 'Europe/Berlin',
'X-Super-Properties': '' # Replace with xsup
}
Endpoint: https://discord.com/api/v9/invites/{regex}
Method: POST
Status Code: 200
Endpoint: https://discord.com/api/v9/users/@me/guilds/{serverid}
Method: DELETE
Status Code: 204
Payload:
{
'session_id': '' # Replace with the session id (fake with uuid.uuid4().hex)
}
Endpoint: https://discord.com/api/v9/guilds/{serverid}
Method: GET
Status Code: 200 (means that it is inside)
Payload:
{
'lurking': False
}
Endpoint: https://discord.com/api/v9/channels/{channelid}/messages
Method: POST
Status Code: 200
Payload:
{
'mobile_network_type': 'unknown',
'content': {message},
'nonce': {nonce},
'tts': False, # tts = text to speech
'flags': 0
}
Endpoint: https://discord.com/api/v9/channels/{channelid}/messages/{messageid}
Method: DELETE
Status Code: 204
Endpoint: https://discord.com/api/v9/channels/{channelid}/messages/{messageid}
Method: PATCH
Status Code: 200
Payload:
{
'content': {newmessage}
}
Endpoint: https://discord.com/api/v9/channels/{channelid}/messages?limit=50
Method: GET
Status Code: 200
Endpoint: https://discord.com/api/v9/channels/{channelid}/messages/{messageid}/reactions/{reaction}/%40me?location=Message&type=0
Method: PUT
Status Code: 204
Endpoint: https://discord.com/api/v9/channels/{channelid}/messages/{messageid}/reactions/{reaction}/0/%40me?location=Message&burst=false
Method: DELETE
Status Code: 204
Endpoint: https://discord.com/api/v9/interactions
Method: POST
Status Code: 204
Payload:
}
'application_id': authorid, # aka client id
'channel_id': channelid,
'data': {
'component_type': 2,
'custom_id': customid,
},
'guild_id': serverid,
'message_flags': 0,
'message_id': messageid,
'nonce': nonce,
'session_id': sessionid,
'type': 3,
}
Note: The payload is annoying so be sure to test (FOR THIS PAYLAOD USE MY GET RULES!!!)
Endpoint: https://discord.com/api/v9/guilds/{serverid}/requests/@me
Method: PUT
Status Code: 201
Payload:
}
'version': data['version'],
'form_fields': [
{
'field_type': field['field_type'],
'label': field['label'],
'description': field['description'],
'automations': field['automations'],
'required': field['required'],
'values': field['values'],
'response': True
} for field in data['form_fields']
]
}
Note: Make sure you are using the correct instance for the payload values!!!
Endpoint: https://discord.com/api/v9/guilds/{serverid}/onboarding-responses
Method: PUT
Status Code: 200
Payload:
{
'onboarding_responses': onboarding_responses, # LIST []
'onboarding_prompts_seen': onboarding_prompts_seen, # DICT {}
'onboarding_responses_seen': onboarding_responses_seen# DICT {}
}
Endpoint: https://discord.com/api/v9/users/@me/channels
Method: POST
Status Code: 200
Payload:
{
'recipients': [userid]
}