Developers

User API

Look up a RAGE.WTF user by username, alias or ID and get their public details, perks and badges as JSON.

The User API returns public information about a RAGE.WTF account, like its username, avatar, perks and badges. You need an API key.

Request#

GET https://rage.wtf/api/public/user?name=someuser
x-api-key: rage-your-key
PartValue
MethodGET
URLhttps://rage.wtf/api/public/user
Headerx-api-key: rage-your-key (required)

Query parameters#

Send one of these:

ParameterTypeDescription
namestringA username or alias. Not case-sensitive. 1 to 32 characters, no spaces or slashes.
idnumberThe account’s numeric user ID (the User ID shown in Settings). 1 to 9 digits.

If you send both, name is used. The key is checked before the parameters, so a request without a valid key gets 401 even if the parameters are wrong.

Response#

A successful request returns status 200:

{
  "userId": 12345,
  "premium": true,
  "name": "someuser",
  "alias": "somealias",
  "image": "https://...",
  "verified": true,
  "beta": false,
  "rageMember": false,
  "donor": false,
  "baller": false,
  "financiallyIrresponsible": false,
  "banned": false,
  "badges": [
    { "name": "Verified", "visible": true },
    { "name": "Premium", "visible": false }
  ],
  "creationDate": "2024-03-12T09:21:11.000Z",
  "cachedAt": "2026-09-16T12:00:00.000Z"
}
FieldTypeMeaning
userIdnumberThe account’s numeric user ID.
premiumbooleanThe account has Premium.
namestringThe username.
aliasstring or nullThe account’s first alias, or null.
imagestring or nullAvatar image URL, or null.
verifiedbooleanThe account has Verified.
betabooleanThe account was a beta tester.
rageMemberbooleanThe account has the RAGE badge.
donorbooleanThe account has the Donor perk.
ballerbooleanThe account has the Baller perk.
financiallyIrresponsiblebooleanThe account has the Financially Irresponsible perk.
bannedbooleanThe account is currently suspended.
badgesarrayThe account’s badges in the order they show on the page. name is the badge name, visible is false if the owner hides it. Custom badges are not included.
creationDatestring or nullWhen the account was created (ISO 8601).
cachedAtstringWhen this response was made (ISO 8601).

Responses may be cached for up to 60 seconds.

Errors#

Errors return JSON with an error message:

{ "error": "User not found" }
StatuserrorWhy
400Provide either ?name= or ?id=.Neither parameter was sent.
400Invalid id. Expected a numeric userId.id isn’t a number of 1 to 9 digits.
401Missing x-api-key headerNo key was sent.
401Invalid API keyThe key is wrong, deleted, or used more than 1000 times in the last hour.
404User not foundNo account has that name or ID, or name is longer than 32 characters or has a space or slash.
429Rate limitedMore than 60 requests in a minute with this key. Wait the number of seconds in the retry-after header.
500Internal Server ErrorSomething went wrong on our side. Try again later.

Rate limits#

  • 60 requests per minute per key. Over that you get 429 with a retry-after header in seconds.
  • 1000 requests per hour per key, counted across all endpoints.

Cache results on your side when you can, for example for a minute.

Examples#

curl#

curl "https://rage.wtf/api/public/user?name=someuser" 
  -H "x-api-key: rage-your-key"
curl "https://rage.wtf/api/public/user?id=12345" 
  -H "x-api-key: rage-your-key"

JavaScript (Node.js)#

const response = await fetch('https://rage.wtf/api/public/user?name=someuser', {
  headers: { 'x-api-key': process.env.RAGE_API_KEY }
});

if (response.status === 429) {
  const wait = Number(response.headers.get('retry-after'));
  console.log(`Rate limited, try again in ${wait} seconds`);
} else {
  const data = await response.json();
  if (!response.ok) throw new Error(data.error);
  console.log(data.name, data.premium ? 'has Premium' : 'is on the free plan');
}