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:
https://woogle.cc
Every API response includes a request_id field which you can reference for debugging or support requests.
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:
WOOGLE-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX
To get an API key, visit the signup page. New accounts receive 6 free credits (3 free searches) instantly.
Quickstart
Make your first request in under a minute. The example below fetches account info for the current API key.
cURL
# Get your account info curl https://woogle.cc/api/me \ -H "X-API-Key: WOOGLE-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX"
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
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 |
/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
Subscriptions renew monthly. Plan credits are added on renewal. To upgrade or subscribe, contact us on Telegram.
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.
{
"success": false,
"error": "INSUFFICIENT_CREDITS",
"message": "Insufficient credits. Purchase more at t.me/wooglecc",
"credits_needed": 2,
"credits_available": 0,
"request_id": "a1b2c3d4-lp8r2m"
}
Get account info
Returns detailed information about the authenticated account: credit balance, subscription status, and total searches performed.
curl https://woogle.cc/api/me \
-H "X-API-Key: WOOGLE-..."
{
"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
Returns current rate limit status for your API key without consuming any requests from the window.
{
"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
Returns available subscription plans and pricing.
{
"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" }
}
}
Full search
Performs a complete scan of a Discord ID, returning alternate accounts, VPN attempts, and linked Roblox profile with username history in a single call.
| Parameter | Type | Description |
|---|---|---|
| discordId REQUIRED | string | Discord snowflake ID (17-20 digits). |
curl https://woogle.cc/api/search/123456789012345678 \
-H "X-API-Key: WOOGLE-..."
{
"success": true,
"query": "123456789012345678",
"total_found": 3,
"results": {
"123456789012345678": {
"alts": ["987654321098765432", "456789012345678901"],
"vpnAttempts": 3,
"roblox": {
"id": "1234567890",
"username": "exampleUser",
"displayName": "Example",
"pastUsernames": ["oldName1", "oldName2"]
}
}
},
"request_id": "a1b2c3d4-lp8r2m"
}
| Field | Type | Description |
|---|---|---|
| alts | string[] | List of alternate Discord IDs (max 50) |
| vpnAttempts | number | Number of VPN/proxy connection attempts |
| roblox | object | null | Linked Roblox profile (null if none) |
| roblox.id | string | Roblox user ID |
| roblox.username | string | Current Roblox username |
| roblox.pastUsernames | string[] | Up to 10 previous usernames |
Discord alts only
Returns only alternate Discord accounts and VPN attempts for a Discord ID. Skips Roblox lookup for slightly faster responses.
curl https://woogle.cc/api/discord/123456789012345678 \
-H "X-API-Key: WOOGLE-..."
{
"success": true,
"discord_id": "123456789012345678",
"alts": ["987654321098765432"],
"vpnAttempts": 3,
"request_id": "a1b2c3d4-lp8r2m"
}
Discord → Roblox
Looks up the Roblox account linked to a Discord ID. Requires authentication but does not consume any credits.
curl https://woogle.cc/api/d2r/123456789012345678 \
-H "X-API-Key: WOOGLE-..."
{
"success": true,
"discord_id": "123456789012345678",
"roblox": {
"id": "1234567890",
"username": "exampleUser",
"displayName": "Example",
"pastUsernames": ["oldName1"]
},
"request_id": "a1b2c3d4-lp8r2m"
}
Roblox → Discord
Looks up the Discord account linked to a Roblox user ID. Requires authentication but does not consume any credits.
| Parameter | Type | Description |
|---|---|---|
| q REQUIRED | string | Roblox user ID (numeric) |
curl "https://woogle.cc/api/roblox-to-discord?q=1234567890" \ -H "X-API-Key: WOOGLE-..."
{
"success": true,
"roblox_id": "1234567890",
"discord_id": "123456789012345678",
"request_id": "a1b2c3d4-lp8r2m"
}
Health check
Simple health check endpoint. Returns the current API status and version. No authentication required.
{
"status": "healthy",
"timestamp": "2026-01-14T09:24:35.123Z",
"version": "1.0.0"
}
Machine-readable docs
Returns a JSON manifest of all API endpoints, useful for auto-generating SDKs or client libraries.
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