Cheater API

Requesting data

We host a public API endpoint that can be used to retrieve bulk data on registered cheaters and cheat-related community bans from various major servers.

For each player in a lookup request, we will return data if they are registered in our cheater database. We will also return data on a player if they have one or more community bans from various major servers with a cheat-related note, even if that player is not a registered cheater in our database.

https://rentamedic.org/api/cheaters/lookup?steamids=76561199557603295,76561199065291928

For the steamids parameter, enter a comma-separated list of up to 100 player identifiers. We accept various Steam ID formats and accept mixed formats in the same request. The response will contain an array of objects with id properties matching the original input and sort order. Invalid identifiers will be ignored and excluded from the response.

Response format

Our cheater data is encoded and returned as a JSON object in the following format:

{
    "results": [
        {
            "id": "76561199557603295",
            "cheater": true,
            "cheaterType": "bot",
            "cheaterDate": "2023-10-29T05:27:45.569Z",
            "cheaterMeta": {
                "steamName": "HEXATRONIC",
                "steamAvatar": "https://avatars.steamstatic.com/7d66b851b030afa9e08e08244fa8fac934be30aa_medium.jpg",
                "seenFirstDate": "2023-10-29T05:27:28.520Z",
                "seenLastDate": "2023-10-29T05:27:28.520Z",
                "maps": [
                    "koth_lakeside_event"
                ]
            },
            "communityBans": [
                {
                    "source": "loos",
                    "username": "(12)HEXATRONIC",
                    "description": "[StAC] Banned for cheating",
                    "timestamp": "2023-10-31T14:48:25.000Z",
                    "active": true
                },
                {
                    "source": "phoenixgaming",
                    "username": "HEXATRONIC",
                    "description": "Aimbot",
                    "timestamp": "2023-11-11T18:48:40.000Z",
                    "active": true
                }
            ]
        }
    ]
}

The results property is an array of PlayerInformation objects whose interface is defined as follows:

{
    id: string;
    cheater: boolean;
    cheaterType?: 'human' | 'bot';
    cheaterDate?: string;
    cheaterMeta?: {
        steamName: string;
        steamAvatar: string;
        seenFirstDate?: string;
        seenLastDate?: string;
        maps: string[];
    };
    communityBans: PlayerCommunityBan[];
}

The cheaterType, cheaterDate, and cheaterMeta properties will only be provided when cheater is set to true. The PlayerCommunityBan interface is defined as follows:

{
    source: string;
    username: string;
    description: string;
    timestamp: string;
    active: boolean;
}

The active property is a boolean indicating whether or not the ban is still active. A value of false in this field indicates a successful appeal or reversal of the ban by the staff of the community server.

The source is one of the following strings. This list may grow or shrink in the future.

  • skial
  • blackwonder
  • ugc
  • phoenixgaming
  • discff
  • panda
  • jumpacademy
  • thg
  • loos
  • gfl

Please note that community bans are not inherently trustworthy and even the presence of several cheat-related bans are not conclusive evidence of a cheater. Here at Rent-a-Medic®, what we're primarily interested in from this data is automatic bans from anti-cheat plugins, and their respective detection codes.

We apply post-processing to ban descriptions in some cases, and filter out certain types of descriptions or anti-cheat codes that we deem unreliable. See the "community bans" section further down for more information.

Authentication & rate limits

You don't need to sign up or authenticate when using our API. It is free and public.

We currently impose a simple rate limit of 40 requests per 10 seconds. As long as you remain within this limit, you can send as many requests and retrieve as many rows as you wish, with up to 100 identifiers per request.

However, we suggest that users remain comfortably below this limit and to use the API respectfully. In cases where our API is being attacked, we may temporarily restrict high-frequency users as a precautionary measure.

Please handle 429 status codes and defer further requests for at least 30 seconds.

Community bans

Rent-a-Medic® maintains a complete database of community bans from various major servers, and our API provides cached access to a subset of this data that we have deemed to be cheat-related.

We primarily choose servers that have trustworthy anti-cheat plugins. However, these plugins can experience bugs and are also configurable by server administrators, therefore their bans are not always accurate or trustworthy and should never be taken as conclusive evidence.

Here is a list of communities that we are currently integrated with:

  • Skial
  • Blackwonder
  • UGC
  • Phoenix Gaming
  • Disc-FF
  • Panda Community
  • Jump Academy
  • THG
  • LOOS
  • GFL

We reserve the right to add additional communities, and to remove communities from this list if we determine that they are no longer trustworthy. As part of this determination, we periodically audit each of our integrated communities for cheat-related ban accuracy, and will immediately suspend them from our results if they fail.

Here are the results of our most recent audits:

  • Skial – Passed
  • Blackwonder – Passed
  • UGC – Passed
  • Disc-FF – Passed
  • Panda Community – Passed
  • Jump Academy – Passed
  • THG – Passed
  • LOOS – Passed
  • GFL – Passed
  • Phoenix Gaming – Auditor banned. Appealed successfully without POV.
  • LBG – Auditor banned. Appealed successfully with POV. Removed from results.
  • Uncletopia – Auditor banned. Appeal denied. Removed from results.
  • Otaku Gaming – Auditor banned. Appeal denied. Removed from results.

Our audit process generally consists of sending some of Team Fortress 2's most skilled snipers into servers, planting hackusations, and seeing how staff handle the situation.

If our auditor is banned, they will initiate the appeals process, at first without submitting their POV as evidence. We will only re-enlist a server if they accept the appeal and reverse the incorrect ban without being forced to provide that evidence.