Set up the Discord side
Where tickets are cut, who is pinged, where conversations are mirrored, and the two switches. Names in, resolved against the live server. staffRole is the one field where null is an answer: send null to stop pinging anybody, and leave it out to keep whoever is pinged now.
PATCH
/integrations/discordAuthorization
AuthorizationBearer token · headerrequired`MEDIAN_KEY` from Settings under API, or an MCP OAuth access token. A key acts as the organization; a token acts as the person who approved it.
Request body
application/jsonticketChannelstringstaffRolestring | nullA role name, or null to stop pinging anybody.
mirrorChannelstringmirrorEnabledbooleanenabledbooleanResponses
200Whatever was named, as it resolved.
ticketChannelstring | nullstaffRolestring | nullmirrorChannelstring | null400The request is malformed, and the message names the field.
errorobjectShow propertiesHide properties
codestringmessagestring401The bearer token is missing, revoked, or expired.
errorobjectShow propertiesHide properties
codestringmessagestring404Not one of yours, or not there at all.
errorobjectShow propertiesHide properties
codestringmessagestring429Too many requests. Wait the seconds in `Retry-After`. Limits depend on the plan. See [rate limits](/api/errors-and-limits#rate-limits).
errorobjectShow propertiesHide properties
codestringmessagestringRequest
curl -X PATCH "https://api.median.sh/v1/integrations/discord" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"ticketChannel": "string",
"staffRole": "string",
"mirrorChannel": "string",
"mirrorEnabled": true,
"enabled": true
}'const response = await fetch("https://api.median.sh/v1/integrations/discord", {
method: "PATCH",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"ticketChannel": "string",
"staffRole": "string",
"mirrorChannel": "string",
"mirrorEnabled": true,
"enabled": true
})
});Response
{
"ticketChannel": "string",
"staffRole": "string",
"mirrorChannel": "string"
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}