phone-lookup
The phone-lookup tool gathers phone-number intelligence from a list of numbers. It resolves metadata (carrier, line type, region), runs open-source reputation and spam checks, generates search dorks, and attempts a best-effort reverse lookup. Coverage prioritises Spain, LATAM, and Europe, making it a strong reconnaissance node for phone-centric investigations.
Ideal Use Cases & Fit
This tool excels in scenarios such as:
- Enriching a batch of phone numbers during reconnaissance, adding carrier, line-type, and region context before deeper investigation.
- Screening numbers against open-source blocklists and community reporting sites to flag likely spam or fraud callers.
- Building an intelligence picture around a target where the phone number is the pivot, including best-effort attribution.
It performs best when supplied with numbers in E.164 format and focused on Spain/LATAM/Europe, where provider coverage is strongest. It is less suited to high-volume validation of very large lists at speed, since several providers make live network calls and are subject to per-provider timeouts.
Value in Workflows
Integrating phone-lookup into security and OSINT workflows strengthens the early enrichment phase, converting a raw list of numbers into structured, provenance-tagged intelligence. Its graph-fragment output slots naturally into downstream correlation and reporting steps, letting teams link numbers to carriers, regions, and reputation signals. The per-provider design also lets builders trade breadth for speed by selecting only the providers relevant to a given case.
Input Data
The tool expects a file of newline-separated phone numbers, supplied via the -i flag.
- Format: Newline-separated phone numbers in E.164 (
+<country><number>); lines starting with#are ignored. - Function: Target
- Required: Yes
Example:
+34687910523
+34931225081
Output Data
The tool writes a file in JSON Lines format via the -o flag — one osintgraph fragment per input number.
- Format: JSONL (flag
-o)
Each line contains:
- entities: the phone-number entity, with provider findings attached as namespaced attributes (e.g.
localmeta.carrier,localmeta.line_type). - edges: relationships between entities.
- source / version: provenance of the producing tool.
- number: the input number the line corresponds to.
Example:
{"entities":[{"id":"phone:+34687910523","type":"phone","value":"+34687910523","attrs":{"localmeta.carrier":"Vodafone","localmeta.country":"Spain","localmeta.line_type":"mobile","localmeta.region":"ES"}}],"edges":[],"source":"phone-lookup","version":"phone-lookup/0.1.0","number":"+34687910523"}
Configuration
- only: Comma-separated provider names to run (intersect). Providers:
localmeta,dorks,es-blocklist,tc-spamlist,listaspam,spamcalls,numverify,twilio-lookup,vonage-insight,truecallerbot. Optional. - exclude: Comma-separated provider names to skip. Optional.
- region: Default region (ISO alpha-2, e.g.
ES) used when an input number is in national rather than E.164 format. Optional. - timeout: Per-provider timeout as a Go duration (e.g.
15s). Optional; defaults to15s. - proxy: HTTP/HTTPS proxy URL applied to all network providers (e.g.
http(s)://host:port), set with the-pflag. Offline providers (localmeta,dorks,es-blocklist) do not need it. Optional; defaults to PROXY_FULL. Updated: 2026-07-29