OSINTverse

Examples

cURL, Python, and JavaScript examples for SearchIn search and poll.

Replace ov_your_api_key with a secret from Dashboard → API keys.

curl -X POST "https://apiv1.osintverse.com/v1/search" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ov_your_api_key" \
  -d '{"provider":"leakradar-lite","input_type":"email","query":"[email protected]"}'

Request body

{
  "provider": "leakradar-lite",
  "input_type": "email",
  "query": "[email protected]"
}

Completed response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "provider": "leakradar-lite",
  "input_type": "email",
  "query": "[email protected]",
  "cost_usd": "1.00",
  "balance_after": "9.00",
  "result": {
    "sources": [
      {
        "name": "leakradar",
        "type": "email",
        "total": 3,
        "total_unlocked": 2,
        "page": 1,
        "page_size": 100,
        "items_returned": 3,
        "auto_unlock_points_consumed": 1
      }
    ],
    "matches": [
      {
        "type": "leak",
        "id": "3f1a9c2b7e",
        "url": "https://example.com/login",
        "username": "[email protected]",
        "username_masked": "u***@example.com",
        "password": "P@ssw0rd123",
        "password_strength": 6,
        "unlocked": true,
        "is_email": true,
        "added_at": "2025-01-15T10:30:00Z",
        "status": "new"
      }
    ]
  },
  "error": null,
  "poll_url": null
}
curl "https://apiv1.osintverse.com/v1/search/550e8400-e29b-41d4-a716-446655440000" \
  -H "x-api-key: ov_your_api_key"

FaceCheck completed matches look like:

{
  "score": 97,
  "url": "https://sports.yahoo.com/article/example",
  "thumbnail": "data:image/webp;base64,..."
}

See the search workflow for status handling.

curl -X POST "https://apiv1.osintverse.com/v1/search/bulk" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ov_your_api_key" \
  -d '{"input_type":"email","queries":["[email protected]","[email protected]"],"providers":["leakradar-lite","dehashed"]}'
import httpx

response = httpx.post(
    "https://apiv1.osintverse.com/v1/search/bulk",
    headers={"x-api-key": "ov_your_api_key"},
    json={
        "input_type": "email",
        "queries": ["[email protected]", "[email protected]"],
        "providers": ["leakradar-lite", "dehashed"],
    },
)
response.raise_for_status()
batch = response.json()
print(batch["summary"], len(batch["searches"]))

Limits: 50 queries, 100 jobs (queries × providers). Poll any running job with GET /v1/search/:id.

On this page