Securing connection

πŸ“˜ Developer Docs

TeleScan API

Check phone numbers against Telegram programmatically β€” drop it into your own website, panel, or automation in minutes.

πŸ’΅ $35/month flat
♾️ Unlimited usage
⚑ 60 req/min
🌍 Works from anywhere
Base URL https://api.gramlab.click

Quickstart

Every request needs your API key. Get one from the bot, then check your first batch of numbers:

bash
# Replace tsk_live_<your_key> with your real key
curl -X POST https://api.gramlab.click/v1/check \
  -H "Authorization: Bearer tsk_live_<your_key>" \
  -H "Content-Type: application/json" \
  -d '{ "numbers": ["+15551234567", "+447911123456"] }'
javascript
const res = await fetch('https://api.gramlab.click/v1/check', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer tsk_live_<your_key>',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ numbers: ['+15551234567', '+447911123456'] }),
});

const data = await res.json();
console.log(data.results);
python
import requests

resp = requests.post(
    "https://api.gramlab.click/v1/check",
    headers={"Authorization": "Bearer tsk_live_<your_key>"},
    json={"numbers": ["+15551234567", "+447911123456"]},
)

print(resp.json()["results"])

Authentication

Send your API key as a Bearer token on every request:

header
Authorization: Bearer tsk_live_<your_key>
πŸ”‘ Keys are shown once, when issued or regenerated via the bot (Get a Key). There's no way to retrieve a lost key β€” only regenerate it, which invalidates the old one.

Check numbers

POST /v1/check

Checks up to 100 phone numbers per request. Each number is checked live against Telegram.

Request

bash
curl -X POST https://api.gramlab.click/v1/check \
  -H "Authorization: Bearer tsk_live_<your_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "numbers": ["+15551234567", "+447911123456"]
  }'

Response

json
{
  "results": [
    { "number": "+15551234567", "status": "green" },
    { "number": "+447911123456", "status": "registered" }
  ]
}

Status values

StatusMeaning
greenFresh β€” no Telegram account on this number
bannedAccount exists but has been deleted/banned
lockedAccount exists but is spam/flood restricted
registeredActive, usable Telegram account exists on this number

Usage

GET /v1/usage

Returns your current key status.

Request

bash
curl https://api.gramlab.click/v1/usage \
  -H "Authorization: Bearer tsk_live_<your_key>"

Response

json
{
  "keyPrefix": "tsk_live_ab12cd34",
  "active": true,
  "expiresAt": "2026-09-05T18:55:26.161Z",
  "lastUsedAt": "2026-08-05T19:02:11.000Z"
}

Errors

Errors are always JSON: { "error": { "code", "message" } }

HTTPCodeMeaning
400INVALID_BODY / INVALID_NUMBERS / TOO_MANY_NUMBERSMalformed request
401MISSING_KEY / INVALID_KEYAuth header missing or key invalid
402ACCESS_EXPIREDAPI access subscription has expired
429RATE_LIMITEDMore than 60 requests/minute on this key
503RATE_LIMITED_UPSTREAM / SERVICE_UNAVAILABLEChecking temporarily unavailable β€” retry shortly

Rate limits

Up to 60 requests per minute per key. This protects shared checking capacity β€” it isn't a usage cap on your monthly plan, which is genuinely unlimited.