GET /v1/osint/sources gives the catalogue of the four OSINT modules: every source a Username search, an Email search, a Domain search or an IP search asks, which of them are extended sources (Username and Email only), and what a search costs. It is built from the sources the API runs right now, so it changes as sources are added or retired. It needs no key and costs nothing. Use it to show what a search covers, or to put a site name on a result.

When to use it

  • You show your users which platforms a search checks.
  • You turn the source of a search result into a label and a site.
  • You decide whether the extended sources of a username or email search are worth 3 more credits.
  • You read the cost of a search from the API rather than hard-coding it.

Request

GET /v1/osint/sources. No parameters, no body, no key.

What you get back

One entry per module, username, email, domain and ip. The example is trimmed: the real lists hold count sources each.

Standard and extended sources

A username or email search asks the standard sources (extended: false) for 1 credit. With "extended": true it also asks the extended sources, for 4 credits in all. The extended sources hold the deepest data: developer identities, crypto wallets, account-recovery details, public keys. Today they are about a dozen in each of the Username and Email modules. GitHub, npm, PyPI, Keybase and ENS are among those of the Username module. Google, Microsoft, the PGP key servers and ORCID are among those of the Email module. Both API plans, Professional and Enterprise, include them. The Domain and IP modules have no extended sources: a search asks every source, for 1 credit. Their entries have only cost.standard, and their sources no extended field. A standard username search asks a little over 300 sources, an email search about 40, a domain search 11 and an IP search 6 (each a full report). Those numbers move with the catalogue: count the sources with extended: false (Username, Email) or all of them (Domain, IP) for the current figure.

Cost and limits

  • Free: no key, no credits, nothing taken from your daily quota.
  • Per address: it counts in the 120 calls a minute allowed from one address. Over that, 429 ip_rate_limited: wait Retry-After seconds.
  • Browsers: call it from your server or a script. Web pages on other sites cannot call the API directly.

Errors

Errors use the usual envelope: { "error": { "code": "…", "message": "…" } }.

Tips

  • Cache it. It changes only when sources are added or retired. Fetch it once a day rather than before every search.
  • Ids belong to a module. github is in the Username and Email modules, whois and dns in the Domain and IP modules, each time with different data: look a result’s source up in the module of its search.
  • Listed does not mean up. The catalogue lists every source the API runs. A source that is down for a while stays listed, and shows in a search’s sources.failed.
  • Read the cost from here. cost.standard and, for Username and Email, cost.extended are the prices a search charges, the same as cost in a search answer.
  • Only sources the API asks are listed. The API has no Telegram lookup, and the catalogue has no Telegram source.

Reference

List OSINT sources

The response schema, and a playground to try it.