API & SDK

REST API, webhooks, and SDKs.

Typed SDKs in TypeScript, Python, and Go. HMAC-signed webhooks with 24-hour idempotency windows. Stream matches over server-sent events or WebSocket. Everything the dashboard does is available to your pipeline.

API access requires a Pro plan subscription. View pricing →
Theater

One call. Three transports. Zero stitching.

Your request on the left. The server response in the middle. The webhook you'll receive when the monitor fires on the right — all driven by a single language toggle.

POST /v1/monitors
Request
import { TeleRadar } from "@teleradar/sdk";

const tr = new TeleRadar({
  apiKey: process.env.TELERADAR_KEY
});

const monitor = await tr.monitors.create({
  target: "@crypto_signals",
  keywords: ["alert", "pump", "dump"],
  forwardTo: "https://your-webhook.com/tg",
  digest: "hourly",
}, {
  idempotencyKey: crypto.randomUUID(),
});
Response
HTTP/2 201 Created
content-type: application/json
x-request-id: req_7f2a
x-ratelimit-remaining: 487

{
  "id": "mon_4c8e_crypto",
  "target": "@crypto_signals",
  "keywords": ["alert", "pump", "dump"],
  "status": "active",
  "created_at": "2026-06-26T14:22:10Z"
}
Webhook · HMAC-signed
POST /tg HTTP/1.1
content-type: application/json
x-teleradar-event: message.matched
x-teleradar-signature: t=1719410530,v1=8a3e...d1b
x-teleradar-delivery: del_9b4f

{
  "monitor_id": "mon_4c8e_crypto",
  "channel": "@crypto_signals",
  "keyword": "alert",
  "message": {
    "text": "🚨 ALERT: BTC breakout...",
    "date": "2026-06-26T14:22:13Z"
  }
}
Idempotency

Replay without regret

Your automation retries. Your CLI runs twice. The wire dropped. TeleRadar deduplicates write calls on the same idempotency key — for 24 hours, to the second.

Idempotency · scrub the ledgerIdempotency-Key: a1b2c3d4-...
t=0
Retry 0 · first attempt· Monitor created · id=mon_4c8e
201 Created
t=1
Retry 1 · network blip· Same key → same monitor · no duplicate
201 Created
t=2
Retry 2 · timeout replay· Cached response returned · 8ms
201 Created
t=3
Retry 3 · last· Idempotent window still valid · 24h
201 Created

Your automation retries the same call four times. TeleRadar returns the same monitor four times — no duplicates, no race, no cleanup. The idempotency window holds for 24h.

Surface

The whole SDK, on one page

Every method available in the typed SDK — grouped by namespace, signed with its return type. The complete reference is under /docs.

tr.monitors5 methods
create(params, opts) → Monitor
list(query) → Cursor<Monitor>
update(id, params) → Monitor
pause(id) → Monitor
delete(id) → void
tr.channels4 methods
lookup(username) → Channel
messages(id, query) → Cursor<Message>
subscribe(id, opts) → Subscription
unsubscribe(id) → void
tr.search3 methods
channels(query) → Cursor<Channel>
messages(query) → Cursor<Message>
keywords(query) → Cursor<Match>
tr.webhooks3 methods
register(url, events) → Webhook
verify(req, secret) → boolean
replay(deliveryId) → void
tr.digests2 methods
create(params) → Digest
list(query) → Cursor<Digest>
Rate limits

Throughput you can plan around

Token-bucket with a generous burst and a sustained floor. 429 responses carry Retry-After. No surprise throttling, no opaque quotas.

Token bucket · last 24s
Burst
500 req/s
Sustained
50 req/s
429 retry-after
honored
Scale

Built to be a pipeline

500/s
Burst req/s per key
24h
Idempotency window
45ms
Median REST latency p50
99.98%
Delivery success · 30d

Wire TeleRadar into your stack in ten lines.

npm install @teleradar/sdk. Get an API key, make your first call, ship by lunch.