List Telegram channels programmatically — one call, one or many channels. Built for automations and AI agents.
Automating your workflow? You can list channels without the web form. Every submission is reviewed (an AI pre-screen plus human review) before it goes live — so the API is safe to open, and nothing is published automatically.
Send one handle or many. Handles can be @name, a t.me/name link, or a bare name. Both fields are accepted: channels (an array) or channel (a single string).
curl -X POST https://telegramchannels.io/api/channels/submit \
-H "Content-Type: application/json" \
-d '{"channels": ["@crypto_daily", "https://t.me/ai_tools"]}'Or from JavaScript:
await fetch("https://telegramchannels.io/api/channels/submit", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ channel: "@my_channel" }),
});The response reports what happened to each handle:
{
"ok": true,
"submitted": 1,
"duplicates": 1,
"invalid": 0,
"results": [
{ "input": "@crypto_daily", "handle": "crypto_daily", "status": "submitted", "channelId": "..." },
{ "input": "https://t.me/ai_tools", "handle": "ai_tools", "status": "duplicate", "channelId": "..." }
],
"note": "Submitted channels are PENDING and go live after the AI pre-screen + review."
}Up to 500 handles per call. Larger lists: split across calls. Rate limit is 500 calls/hour (per account or IP). A GET on the same URL returns the usage as JSON.
We run a Model Context Protocol server, so an AI assistant can list a channel as a native tool call. Point your MCP client at:
https://telegramchannels.io/api/mcpExample client config (Streamable HTTP):
{
"mcpServers": {
"tgdirectory": { "url": "https://telegramchannels.io/api/mcp" }
}
}For a client that only speaks stdio, bridge it with npx mcp-remote https://telegramchannels.io/api/mcp. The tool is submit_channel({ channels: [...] }).
Each submitted handle becomes a pending channel. The AI pre-screen blocks adult, gambling and illegal content; the rest is reviewed by a person before it appears in the directory. Metadata (title, members, photo) is fetched from Telegram automatically — you only send the handle.