Check whether a Telegram channel, group, bot or user is banned, restricted or shadowbanned — with a single HTTP call. No SDK, no key for the free tier. Built for Function Calling / tool use in LangChain, n8n, Custom GPTs, MCP clients and plain bots.
- Website: https://isbanned.app
- OpenAPI: https://isbanned.app/openapi.json
- llms.txt: https://isbanned.app/llms.txt
- MCP server:
isbanned-mcp(Claude Desktop / Cursor / Cline)
curl "https://isbanned.app/check?url=https://t.me/durov"
# or by username:
curl "https://isbanned.app/check?channel=durov"{
"link": "https://t.me/durov",
"status_id": 0,
"status_key": "active",
"status_label": "Active",
"title": "Pavel Durov",
"banned": false,
"ok": true
}banned is the quick yes/no. The free public endpoint is rate-limited to ~5 requests/day per IP. For higher limits, batch (up to 20 links) and deep checks (subscribers, datacenter, age, shadowban), get a personal key from @IsBannedBot (/api) and use https://isbanned.app/<key>-<slug>.
| id | meaning |
|---|---|
| 0 | active — no restriction |
| 1 | porn-ban — real Telegram restriction for 18+/porn content (hidden in official iOS/Android apps & some countries, opens on web/desktop) |
| 2 | invalid link |
| 3 | Sensitive (18+) — soft interface age-gate, not a ban |
| 4 / 5 | blocked on iOS only / Android only |
| 6 | SCAM / FAKE label |
| 7 | removed (Terms of Service) |
| 8 | copyright / DMCA |
| 9 | restricted |
| 10 | invite link requiring a join request |
examples/check.py— Python (requests)examples/langchain_tool.py— LangChain tool for Function Callingexamples/node.mjs— Node.js (fetch)examples/n8n.md— n8n HTTP Request nodemcp/— Model Context Protocol server
Build a "Telegram Ban Checker" GPT in 2 minutes: import the action from https://isbanned.app/openapi-gpt.json (auth: none). See CUSTOM_GPT.md.
MIT