OSINT email & username lookup via REST API
The OSINT CheckBox API v2 provides programmatic access to all email and username OSINT modules. Integrate our lookups into your own tools, scripts, or Maltego workflows.
Base URL: https://osintcheckbox.com/api/v2/
All API requests require authentication. Two methods are supported:
Send your API token in the Authorization header or as a query parameter:
Authorization: Bearer ocb_xxxxxxxxxxxxxxxxxxxx GET /api/v2/?type=email&query=user@example.com&tool=all&api_key=ocb_xxx
For Maltego and quick access — use your email and password:
Authorization: Basic base64(email:password)
Get your token at /api_settings.php
| Method | URL | Description |
|---|---|---|
| GET | /api/v2/?type=email&query=...&tool=gravatar | Single email tool |
| GET | /api/v2/?type=email&query=...&tool=all | All email tools |
| GET | /api/v2/?type=username&query=...&tool=github | Single username tool |
| GET | /api/v2/?type=username&query=...&tool=all | All username tools |
| GET | /api/v2/?action=tools | List available tools |
| GET | /api/v2/?action=usage | Your usage statistics |
{
"success": true,
"query": "user@example.com",
"type": "email",
"results": {
"gravatar": {
"found": true,
"username": "johndoe",
"profile_url": "https://gravatar.com/johndoe",
"avatar": "https://gravatar.com/avatar/..."
}
}
}
{
"success": false,
"error": "Invalid or missing API key",
"code": 401
}
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 987 X-RateLimit-Reset: 1719878400
| Code | Description |
|---|---|
200 | Success |
400 | Missing or invalid parameter (type, query, tool) |
401 | Missing or invalid authentication |
403 | Account suspended or tool disabled |
429 | Rate limit exceeded |
500 | Internal server error |
curl -s "https://osintcheckbox.com/api/v2/?type=email&query=user@example.com&tool=all" \ -H "Authorization: Bearer ocb_xxxxxxxxxxxxxxxxxxxx" | jq .
curl -s -u "you@email.com:yourpassword" \ "https://osintcheckbox.com/api/v2/?type=email&query=user@example.com&tool=gravatar" | jq .
import requests resp = requests.get( "https://osintcheckbox.com/api/v2/", params={"type": "email", "query": "user@example.com", "tool": "all"}, headers={"Authorization": "Bearer ocb_xxxxxxxxxxxxxxxxxxxx"} ) data = resp.json() for tool, result in data["results"].items(): print(f"{tool}: {'found' if result.get('found') else 'not found'}")
const resp = await fetch( "https://osintcheckbox.com/api/v2/?type=email&query=user@example.com&tool=all", { headers: { "Authorization": "Bearer ocb_xxxxxxxxxxxxxxxxxxxx" } } ); const data = await resp.json(); Object.entries(data.results).forEach(([tool, r]) => console.log(`${tool}: ${r.found ? "found" : "not found"}`) );