Telegram Phone Number Checker
1.2.2Check if phone numbers are connected to Telegram accounts.
- Verified 24 Sept 2026
- pip 1.2.2
- MIT
- 1.8k stars
- Optional API keys
- Dual-use
- Interactive
- Needs setup
Install and run
otlite install telegram-phone-number-checkerInstalls
telegram-phone-number-checker==1.2.2into its own virtualenv. otlite lists what it will install and asks before it starts.otlite run telegram-phone-number-checker -- u:johndoeType your own value to rewrite the commands. It stays in this page: nothing is sent or saved.
telegram-phone-number-checkerreceivestelegram-phone-number-checker --usernames johndoeotlite run telegram-phone-number-checker -- p:+14155550100Type your own value to rewrite the commands. It stays in this page: nothing is sent or saved.
telegram-phone-number-checkerreceivestelegram-phone-number-checker --phone-numbers +14155550100
No otlite yet? Install it in one line
curl -fsSL https://get.otinstaller.com/otlite | shLinux and macOS, no Docker. It uses your Python and pipx when both are there, and otherwise brings its own Python. About otlite · otlite docs
Before you run it
- Dual-use. otlite prints this before installing it: You are solely responsible for how you use these tools and for complying with all applicable laws. Use them only on targets you are authorized to investigate.
- Asks questions while it runs. Run it on its own in a terminal;
otlite run --all,otlite autoand playbooks skip it. - Needs a login or API key. Set it up before the first lookup; batch runs skip it unless you pass
--include-credentialed.
Notes
- Reads API_ID, API_HASH and PHONE_NUMBER, set with
otlite keys set, and asks for them when they are not set.
What it takes
Typed inputs after -- become Telegram Phone Number Checker's own arguments. Anything else after -- passes through unchanged, so every option of the tool still works.
| Input | With otlite | telegram-phone-number-checker receives |
|---|---|---|
Usernameu: | otlite run telegram-phone-number-checker -- u:johndoe | telegram-phone-number-checker --usernames johndoe |
Phonep: | otlite run telegram-phone-number-checker -- p:+14155550100 | telegram-phone-number-checker --phone-numbers +14155550100 |
API keys
All optional: Telegram Phone Number Checker runs without them and uses each one you set. otlite keys set asks for the value without showing it and saves it in ~/.otlite/.env, readable only by you. Each tool receives only the keys it declares, and values never appear in logs or results.
| Key | Needed | Set it |
|---|---|---|
API_ID | Optional | otlite keys set API_ID |
API_HASH | Optional | otlite keys set API_HASH |
PHONE_NUMBER | Optional | otlite keys set PHONE_NUMBER |
What a run leaves
Every run is saved under results/ where you run otlite (or --output, or OTLITE_RESULTS_DIR): what the tool printed, a sidecar with how it ran, and an envelope.
results/telegram-phone-number-checker/johndoe/<time>_telegram-phone-number-checker_johndoe_<run id>.txtresults/telegram-phone-number-checker/johndoe/<time>_telegram-phone-number-checker_johndoe_<run id>.meta.jsonresults/telegram-phone-number-checker/johndoe/<time>_telegram-phone-number-checker_johndoe_<run id>.envelope.json
{
"envelope": 1,
"tool": "telegram-phone-number-checker@1.2.2",
"runtime": "otlite",
"input": { "target": "johndoe" },
"case": null,
"started_at": "…", "ended_at": "…", "duration_ms": …,
"exit_code": 0,
"status": "complete",
"entities": [{ "type": "url", "value": "…" }, …],
"warnings": [],
"output": { "path": "results/telegram-phone-number-checker/johndoe/<time>_telegram-phone-number-checker_johndoe_<run id>.txt", "sha256": "…", "bytes": … }
}otlite results --tool telegram-phone-number-checkerotlite extract telegram-phone-number-checkerotlite diff telegram-phone-number-checker johndoeList the saved runs, pull out every indicator, or compare the two latest runs against the same target.
With other tools
Batch runs skip it: asks questions while it runs; run it on its own.