Skip to main content

Official Python client for the OSINTverse SearchIn API (osintverse.com).

This is the official client for OSINTverse SearchIn: one REST API for LeakRadar, OSINT Industries, Facecheck.id, SecurityTrails, and every other SearchIn provider.

It talks to https://apiv1.osintverse.com. It is not affiliated with other products that reuse the OSINTverse name.

Install

pip install osintverse

Create an API key at Dashboard → API keys. Keys use the ov_ prefix and are shown only once.

Quick start

from osintverse import OSINTverse

client = OSINTverse()  # reads OSINTVERSE_API_KEY, or pass api_key="ov_…"

providers = client.providers.list()
search = client.search.create(
    provider="leakradar-lite",
    input_type="email",
    query="user@example.com",
    wait=True,  # poll GET /v1/search/{id} every ~2s when status is running
)
print(search.status, search.cost_usd, len(search.result.matches if search.result else []))

Async:

from osintverse import AsyncOSINTverse

async with AsyncOSINTverse() as client:
    search = await client.search.create(
        provider="leakradar-lite",
        input_type="email",
        query="user@example.com",
        wait=True,
    )

Auth

GET /health and GET /v1/providers do not require a key. Search routes do.

Methods

SDK HTTP
client.health() GET /health
client.providers.list() GET /v1/providers
client.search.create(...) POST /v1/search
client.search.bulk(...) POST /v1/search/bulk
client.search.retrieve(id) GET /v1/search/{id}
client.search.unlock(id) POST /v1/search/{id}/unlock
client.search.premium(id) POST /v1/search/{id}/premium
batch = client.search.bulk(
    input_type="email",
    queries=["alice@example.com", "bob@example.com"],
    providers=["leakradar-lite", "dehashed"],
    wait=True,
)

client.search.unlock(search.id)   # LeakRadar leftover credentials
client.search.premium(search.id)  # OSINT Industries premium modules

wait=True on create raises SearchFailedError / SearchRefundedError if the job ends in failed or refunded. Bulk wait polls running jobs and returns the batch — inspect summary for partial success.

Errors

HTTP { "detail": "…" } maps to AuthenticationError (401), PaymentRequiredError (402), ForbiddenError (403), NotFoundError (404), ValidationError (422), and APIError (5xx).

Development

pip install -e ".[dev]"
pytest
ruff check src tests

License

MIT

Publishing

CI runs lint and tests on every push. PyPI publishes from .github/workflows/publish.yml on v* tags using Trusted Publishing.

  1. On PyPI, add a pending trusted publisher for project osintverse: GitHub owner dheerajydv19, repo osintverse-pythonsdk, workflow publish.yml, environment blank.
  2. Tag a release: git tag v0.1.0 && git push origin v0.1.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

osintverse-0.1.0.tar.gz (33.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

osintverse-0.1.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file osintverse-0.1.0.tar.gz.

File metadata

  • Download URL: osintverse-0.1.0.tar.gz
  • Upload date:
  • Size: 33.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for osintverse-0.1.0.tar.gz
Algorithm Hash digest
SHA256 134c8155b773941ea561aca7eecb51b2059bfae519339700d862d601e9130dfe
MD5 cf424b0a81c97d750ed8fa8b67b67113
BLAKE2b-256 9deb990675eb30e734b7475ea4c5bb0d3e0551628bfbdace85780457af121ca9

See more details on using hashes here.

Provenance

The following attestation bundles were made for osintverse-0.1.0.tar.gz:

Publisher: publish.yml on dheerajydv19/osintverse-pythonsdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file osintverse-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: osintverse-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for osintverse-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9e18de8769629ccb3b069493e72d09622f4d1623ed0b1d4047c41f3da66ffad0
MD5 7e4399efd1d085b81b8f7774026f481d
BLAKE2b-256 45a14c9e25141d9f0777fba75581c130d36fd31a270a630aa03a774253b4e61b

See more details on using hashes here.

Provenance

The following attestation bundles were made for osintverse-0.1.0-py3-none-any.whl:

Publisher: publish.yml on dheerajydv19/osintverse-pythonsdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page