← isBanned

isBanned API

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.

1. Public check — no key required

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.

2. Personal key — batch & deep checks

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"}'

Status codes

0Active — no restriction
1Porn-ban — real Telegram restriction for 18+/porn content; hidden in official iOS/Android apps & some countries, opens on web/desktop
2Invalid link
3Sensitive (18+) — soft interface age-gate, not a ban (tap + confirm age to reveal)
4iOS-only block
5Android-only block
6SCAM / FAKE label
7Terms-of-Service ban (removed)
8Copyright / DMCA
9Restricted
10Join-request required (invite link)

Machine-readable spec: /openapi.json · Contact: @IsBannedBot · info@isbanned.app