Woogle DOCS

API Documentation

Woogle provides a REST API for uncovering alternate Discord accounts, linked Roblox profiles, and network signals. Every response is JSON. Start by grabbing a free API key from the signup page.

Introduction

The Woogle API is organized around REST. All endpoints return JSON responses. Requests use standard HTTP verbs and status codes. The base URL is:

BASE URL
https://woogle.cc

Every API response includes a request_id field which you can reference for debugging or support requests.

Response headers: Every successful search returns X-RateLimit-Remaining, X-RateLimit-Reset, and X-Request-ID headers.

Authentication

Every endpoint (except /api/health and /api/docs) requires an API key. Include it in the X-API-Key HTTP header on every request. API keys follow this format:

KEY FORMAT
WOOGLE-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX

To get an API key, visit the signup page. New accounts receive 6 free credits (3 free searches) instantly.

Keep your API key secret. Never commit it to source control, embed it in client-side code, or share it publicly. Anyone with your key can spend your credits.

Quickstart

Make your first request in under a minute. The example below fetches account info for the current API key.

cURL

SHELL
# Get your account info
curl https://woogle.cc/api/me \
  -H "X-API-Key: WOOGLE-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX"

JavaScript

JAVASCRIPT
const res = await fetch('https://woogle.cc/api/search/123456789012345678', {
  headers: {
    'X-API-Key': 'WOOGLE-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX'
  }
});

const data = await res.json();
console.log(data);

Python

PYTHON
import requests

r = requests.get(
  'https://woogle.cc/api/search/123456789012345678',
  headers={'X-API-Key': 'WOOGLE-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX'}
)

print(r.json())

Rate limits

Every API key is limited to 10 requests per 2-minute window. When you hit the limit, you'll receive a 429 RATE_LIMIT_EXCEEDED response with a reset_in_seconds field indicating when you can try again.

Rate limit information is included in the response headers of every authenticated request:

Header Description
X-RateLimit-Limit Total requests allowed in the window (10)
X-RateLimit-Remaining Requests remaining in the current window
X-RateLimit-Reset Unix timestamp when the window resets
X-Request-ID Unique identifier for this request
Only paid search endpoints (/api/search/:id and /api/discord/:id) count against your rate limit. Free lookups like /api/d2r and /api/roblox-to-discord do not.

Credits & billing

Woogle uses a credit-based pricing model. Each paid search costs 2 credits. New accounts receive 6 free credits (3 free searches) on signup.

Some endpoints are free and do not consume credits — see the endpoint documentation for details.

Subscription plans

Discord Mod
$5/month
200 credits · ~100 searches
Discord E-Gangster
$10/month
700 credits · ~350 searches
Woogle Master
$20/month
1,700 credits · ~850 searches

Subscriptions renew monthly. Plan credits are added on renewal. To upgrade or subscribe, contact us on Telegram.

Credits do not expire. Any leftover balance carries over between billing cycles.

Errors

Woogle uses standard HTTP status codes to indicate the success or failure of a request. All error responses include a machine-readable error code and a human-readable message.

ERROR RESPONSE
{
  "success": false,
  "error": "INSUFFICIENT_CREDITS",
  "message": "Insufficient credits. Purchase more at t.me/wooglecc",
  "credits_needed": 2,
  "credits_available": 0,
  "request_id": "a1b2c3d4-lp8r2m"
}
200 OK Request succeeded
400 INVALID_ID / INVALID_PARAMETER The request was malformed
401 AUTHENTICATION_REQUIRED / INVALID_API_KEY Missing or invalid API key
402 INSUFFICIENT_CREDITS Not enough credits to complete request
404 NOT_FOUND Resource does not exist
429 RATE_LIMIT_EXCEEDED Too many requests. Wait and retry
500 INTERNAL_ERROR Something went wrong on our end
503 SERVICE_UNAVAILABLE Upstream service is temporarily down

Get account info

GET /api/me AUTH · FREE

Returns detailed information about the authenticated account: credit balance, subscription status, and total searches performed.

Example request
SHELL
curl https://woogle.cc/api/me \
  -H "X-API-Key: WOOGLE-..."
Example response
200 OK
{
  "success": true,
  "account": {
    "user_id": "my-app",
    "credits_remaining": 198,
    "total_searches": 47,
    "total_credits_used": 94,
    "scans_available": 99,
    "credits_per_search": 2,
    "free_credits": 6,
    "free_searches": 3,
    "created_at": "2026-01-14T09:22:11Z",
    "subscription": {
      "active": true,
      "plan": "10",
      "plan_name": "Discord E-Gangster",
      "expiry": "2026-02-14T09:22:11Z",
      "monthly_credits": 700
    }
  },
  "request_id": "a1b2c3d4-lp8r2m"
}

Rate limit status

GET /api/rate-limit AUTH · FREE

Returns current rate limit status for your API key without consuming any requests from the window.

Example response
200 OK
{
  "limit": 10,
  "remaining": 7,
  "window_seconds": 120,
  "requests": 3,
  "reset_in_seconds": 84,
  "reset_time": "2026-01-14T09:24:35Z",
  "request_id": "a1b2c3d4-lp8r2m"
}

List plans

GET /api/plans AUTH · FREE

Returns available subscription plans and pricing.

Example response
200 OK
{
  "success": true,
  "credits_per_search": 2,
  "free_credits": 6,
  "free_searches": 3,
  "subscription_plans": {
    "5": { "price": 5, "credits": 200, "name": "Discord Mod" },
    "10": { "price": 10, "credits": 700, "name": "Discord E-Gangster" },
    "20": { "price": 20, "credits": 1700, "name": "Woogle Master" }
  }
}

Discord alts only

GET /api/discord/{discordId}

Returns only alternate Discord accounts and VPN attempts for a Discord ID. Skips Roblox lookup for slightly faster responses.

Example request
SHELL
curl https://woogle.cc/api/discord/123456789012345678 \
  -H "X-API-Key: WOOGLE-..."
Example response
200 OK
{
  "success": true,
  "discord_id": "123456789012345678",
  "alts": ["987654321098765432"],
  "vpnAttempts": 3,
  "request_id": "a1b2c3d4-lp8r2m"
}

Discord → Roblox

GET /api/d2r/{discordId} AUTH · FREE

Looks up the Roblox account linked to a Discord ID. Requires authentication but does not consume any credits.

Example request
SHELL
curl https://woogle.cc/api/d2r/123456789012345678 \
  -H "X-API-Key: WOOGLE-..."
Example response
200 OK
{
  "success": true,
  "discord_id": "123456789012345678",
  "roblox": {
    "id": "1234567890",
    "username": "exampleUser",
    "displayName": "Example",
    "pastUsernames": ["oldName1"]
  },
  "request_id": "a1b2c3d4-lp8r2m"
}

Roblox → Discord

GET /api/roblox-to-discord?q={robloxId} AUTH · FREE

Looks up the Discord account linked to a Roblox user ID. Requires authentication but does not consume any credits.

Query parameters
Parameter Type Description
q REQUIRED string Roblox user ID (numeric)
Example request
SHELL
curl "https://woogle.cc/api/roblox-to-discord?q=1234567890" \
  -H "X-API-Key: WOOGLE-..."
Example response
200 OK
{
  "success": true,
  "roblox_id": "1234567890",
  "discord_id": "123456789012345678",
  "request_id": "a1b2c3d4-lp8r2m"
}

Health check

GET /api/health FREE · NO AUTH

Simple health check endpoint. Returns the current API status and version. No authentication required.

Example response
200 OK
{
  "status": "healthy",
  "timestamp": "2026-01-14T09:24:35.123Z",
  "version": "1.0.0"
}

Machine-readable docs

GET /api/docs FREE · NO AUTH

Returns a JSON manifest of all API endpoints, useful for auto-generating SDKs or client libraries.

Example request
SHELL
curl https://woogle.cc/api/docs

Need help?

If you have questions, need help integrating, or want to report a bug, reach out on Telegram (@wooglecc).

© 2026 Woogle.cc · API v1.0.0