REST API to check whether a Telegram channel, group, bot or user is banned, restricted, shadowbanned or pessimized in Telegram search. JSON in, JSON out. Use the public endpoint with no key for quick checks, or a personal key for batch and deep checks.
Free, no registration, no auth. Fast check of one link, ~5 requests per day per IP. This is the endpoint for AI agents and quick lookups.
curl "https://isbanned.app/check?url=https://t.me/durov"
Also accepts ?channel=durov, or a JSON body via POST {"url":"..."}. Returns:
{"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; status_id/status_label give the exact reason.
Need more than the free tier? Open @IsBannedBot, send /api, and you get a personal endpoint https://isbanned.app/<key>-<slug> to use from your own integration.
Fast — synchronous, batch up to 20 links:
curl -X POST "https://isbanned.app/<key>-<slug>" \
-H "Content-Type: application/json" \
-d '{"url":["https://t.me/durov","https://t.me/telegram"]}'
Deep — asynchronous, 1 link; full result (subscribers, datacenter, age, shadowban) POSTed to your webhook:
curl -X POST "https://isbanned.app/<key>-<slug>" \
-H "Content-Type: application/json" \
-d '{"url":"https://t.me/durov","check_type":"deep","webhook":"https://your.app/cb"}'
| 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 (tap + confirm age to reveal) |
| 4 | iOS-only block |
| 5 | Android-only block |
| 6 | SCAM / FAKE label |
| 7 | Terms-of-Service ban (removed) |
| 8 | Copyright / DMCA |
| 9 | Restricted |
| 10 | Join-request required (invite link) |
Machine-readable spec: /openapi.json · Contact: @IsBannedBot · info@isbanned.app