API Documentation

Last Updated: March 21, 2026

Integrate Roblox Watcher's global banlist protection directly into your own applications, bots, or server tools using our high-performance REST API.

🔓
Access Tiers:
  • Shared Key: Use ROBLOXWATCHERFREEKEY for a shared global limit (150 requests/day).
  • Personal Key: Register an account to get your own private API key with 60,000 requests/day for free.

Authentication

The API requires an API key for all requests. To use the API, append your key as a query parameter in your request.

Check User Status

Determines if a Discord User ID exists in our curated ban databases (Roblox Watcher or Exploit Watcher).

GET https://robloxwatcher.info/checker/api/check.php

Parameters

Parameter Type Status Description
id String Required The Discord User ID to verify.
key String Required Your API key.

Mass Scan (Bulk Check)

Check up to 10,000 members in a single request. Perfect for scanning entire Discord servers. Each ID checked counts as 1 usage toward your daily limit.

POST https://robloxwatcher.info/checker/api/check.php

Body (JSON)

{
  "key": "YOUR_API_KEY",
  "ids": ["123456789", "987654321", "..."]
}

Limits

Response Format (JSON)

{
  "banned": true,
  "roblox_servers": ["Example Roblox Server", "Suspect Group A"],
  "exploit_servers": []
}

HTTP Status Codes

Code Meaning Description
200 OK Request successful. User status returned successfully.
400 Bad Request Missing id, or the id format was invalid (non-numeric).
401 Unauthorized Missing API key, or the provided key is invalid/revoked.
429 Too Many Requests Daily rate limit reached (Public: 150, Key: varies). Retry after midnight UTC.
500 Internal Error A critical database or server failure occurred. Please report this in our Discord.
503 Server Busy The server is handling high volume. Please retry your request in 1-2 seconds.

Error Response Format

When an error occurs, the API returns the appropriate HTTP status code paired with a JSON error object.

{
  "error": "Specific error message here"
}

Implementation Examples

Use the standard fetch API. For POST requests (Mass Scan), ensure you stringify your body and set the Content-Type header.

// 1. Single ID Check (GET)
const checkUser = async (userId, apiKey = 'ROBLOXWATCHERFREEKEY') => {
  try {
    const url = `https://robloxwatcher.info/checker/api/check.php?id=${userId}&key=${apiKey}`;
    const response = await fetch(url, {
      headers: { 'User-Agent': 'MyApplication/1.0' }
    });
    const data = await response.json();
    if (data.banned) console.log("User is flagged!");
  } catch (e) { console.error(e); }
};

// 2. Mass Scan (POST)
const massScan = async (ids, apiKey) => {
  const response = await fetch('https://robloxwatcher.info/checker/api/check.php', {
    method: 'POST',
    headers: { 
      'Content-Type': 'application/json',
      'User-Agent': 'MyApplication/1.0' 
    },
    body: JSON.stringify({ key: apiKey, ids: ids })
  });
  return await response.json();
};

API Playground

Try out the API live without writing any code. Enter a User ID and your API Key to see the raw JSON response.