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
sourceof 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: waitRetry-Afterseconds. - 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.
githubis in the Username and Email modules,whoisanddnsin the Domain and IP modules, each time with different data: look a result’ssourceup 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.standardand, for Username and Email,cost.extendedare the prices a search charges, the same ascostin 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.

