Telegram Channel Scraper API: A Daily Price Digest in Claude
Many Russian-speaking phone wholesalers and freight forwarders do not run a website or a marketplace store. They post new stock and daily quotes in public Telegram channels. We extracted the prices from these posts and c
Many Russian-speaking phone wholesalers and freight forwarders do not run a website or a marketplace store. They post new stock and daily quotes in public Telegram channels. We extracted the prices from these posts and compared them by model. Three findings stand out.
First, in one wholesale channel, the single-unit retail price of the Hong Kong iPhone 18 Pro 256 GB in black fell 7.2% in 47 days. Second, if you compare it with the cheaper eSIM-only unit from the same post, you get 15.7%. That is more than twice the real drop. Third, a second wholesaler quotes in "у.е.", a conventional unit. Its own ruble prices imply a rate 3.9% above the Bank of Russia USD rate of the day.
So the value of a daily digest is not in collecting the posts. The value is in comparing the same model, the same spec and the same unit.
Our sample is four public channels. Between 00:14 and 00:39 Singapore time on November 10, 2026, we made 24 live calls with telegram/channel_posts, telegram/search and other EveryInfra capabilities. Seventeen calls were billed, for a total of $0.010285. This guide covers route choice, configuration, a real round trip, pagination, extraction, cost and scheduling.
Key points
telegram/channel_postsreturns up to 200 posts per call. It has no page token and no date filter. A limit=200 call returned 200 posts back to 2026-02-22 for $0.000556, or $0.00278 per 1,000 posts.- Ten channels pulled once a day, plus one keyword search a day, cost about $0.18 a month. Failed calls, empty results and bad parameters were not billed.
- The Telegram Bot API only receives posts from channels where the bot is a member. A self-written MTProto parser needs a phone login and must handle FLOOD_WAIT. For other people's public channels without an account, a pay-per-call API is the simplest route.
- Always align model, storage, variant (SIM or eSIM) and unit before you compare prices. A mixed comparison turns a 7.2% drop into 15.7%.
- Claude Code cloud scheduled tasks need a connector. Servers added with
claude mcp addstay on your local machine. Connector traffic goes through Anthropic servers, so you do not add the API host to a network allowlist.
The job: what Russian sellers and forwarders post on Telegram every day
Cross-border buyers, price analysts and freight teams often watch a list of Russian-language public channels. Phone and electronics wholesalers post long lists of models and prices every day. Freight forwarders post rail and sea-rail rates and transit times a few times a week. Some industry accounts publish a container rate index on a regular schedule.
These channels post at very different rates. The post formats vary a lot. Some put prices in the text, and others post the whole price sheet as an image. Reading them by hand every day takes time. The most important information is the change: which model got cheaper, which route got more expensive, and who now quotes in another unit.
We picked four public channels as a sample. All four are public business accounts. We do not show any personal contacts or manager usernames from the posts.
boxb2b is a phone wholesaler and retailer. Its title is "BOX - Телефоны опт и розница" (phones, wholesale and retail). The telegram/profile call showed 70,200 subscribers. linktek calls itself an Apple wholesale platform in Dubai, China and Moscow, with 11,700 subscribers.
logistved is a freight channel about China–Russia logistics. Its title is "ЛОГИСТ" (logistician). teustat is the channel of a container rate platform. None of the four accounts is verified. The is_verified field was false for both profiles that we read.
The profile call also returns media totals for the whole channel history. boxb2b has posted 370 photos and 218 videos. linktek has posted 18,100 photos, 4,190 videos and 15,000 links. This difference in volume decides how far back one pull of 200 posts can go, as the pagination section shows.
| Channel | Type | Posts returned and date span | Posts per day | Media mix | Where the prices are |
|---|---|---|---|---|---|
| boxb2b | Phone wholesale and retail | 200 posts, 2026-02-22 to 2026-11-09 | 0.77 | 89 video, 82 photo, 29 text | One model and ruble price per line, 129 posts with prices |
| linktek | Apple wholesale platform | 50 posts, 2026-11-04 to 2026-11-09 | 9.49 | 32 photo, 10 text, 8 video | Each line has a у.е. price and a ruble price, 40 posts with prices |
| logistved | Freight news | 50 posts, 2026-10-20 to 2026-11-09 | 2.48 | 44 text | Rate ranges and transit days in the text |
| teustat | Container rate platform | 50 posts, 2026-09-11 to 2026-11-09 | 0.85 | 44 photo | Mostly inside images, with a short caption |
This table comes from four telegram/channel_posts calls between 00:17 and 00:18 Singapore time. You can recompute every number from the saved raw responses.
Look at the last column first. All four are "price channels", but they are not the same. The linktek and boxb2b prices are in the text, so a regular expression can get them.
In teustat, 44 of 50 posts are photos with one or two lines of caption. To get those rates, you must read the image. A digest pipeline must classify channels first. One rule set does not fit all.
The posting rate tells you how many posts to pull each day. linktek posts almost 10 times a day, so a limit of 20 covers about two days. boxb2b posts less than once a day, so a limit of 20 goes back more than a month. For these four channels, one pull a day with a limit of 20 is enough. Remove the duplicates by post ID. You do not need 200 posts every day.
Three routes: Bot API, a self-written MTProto telegram api parser, or a pay-per-call telegram channel scraper api
There are three common ways to read public Telegram channels. The first is the Telegram Bot API. You create a bot with BotFather and receive messages over HTTP.
The second is your own MTProto parser, often called a "парсер" in Russian forums. It usually runs on the Python library Telethon and reads channel history as a real user account. The third is the method in this guide. You call a pay-per-call data API with a channel name and get back a structured list of posts.
The entry cost of each route. A bot must join the channel first. A user account must log in and handle rate limits. A pay-per-call API needs only the channel name.
The Bot API limit is in the Telegram bot FAQ. The section "What messages will my bot get?" ends with one more case: all messages from channels where the bot is a member (Bots FAQ). So a bot can only read channels that it has joined. A widely cited Stack Overflow answer is more direct. Without admin rights, you cannot receive channel messages (Stack Overflow 45002999). A python-telegram-bot discussion reaches the same result: a bot can join a channel only as an admin (python-telegram-bot discussion 3047).
You cannot become an admin of a wholesaler's channel. So for watching other people's public channels, the Bot API route mostly does not work. It fits your own channels. It also fits a partner who agrees to add your bot as an admin.
A bot receives posts only from channels where it is a member. This one line is why the Bot API cannot read other people's channels. Telegram Bots FAQ, screenshot taken 2026-11-10
The MTProto route can read the history of any public channel. The cost is the account. The Telegram page "Obtaining api_id" says that you first sign up with an official Telegram app. Then you create an app in the developer tools at my.telegram.org to get an api_id and an api_hash. Each phone number can have only one api_id.
The page also warns that accounts on unofficial clients are put under observation. Accounts that flood or fake views get a permanent ban (Obtaining api_id).
The first step in the Telethon sign-in guide is to log in with the phone number of the developer account. Then you put the api_id and api_hash into TelegramClient (Telethon sign-in guide). Channel history comes from the messages.getHistory method. You page back with offset_id and add_offset (messages.getHistory). If you page too fast, the server returns 420 FLOOD_WAIT_X, where X is the number of seconds to wait (Telegram error handling).
On Stack Overflow, one user asked how to avoid the Telethon FloodWaitError. The top answer says that the only way is to send fewer requests, and that the limit differs per account (Stack Overflow 76198570). The Telethon FAQ also has a section about banned accounts (Telethon FAQ).
One more point is easy to miss. Global post search in MTProto is a paid feature. The Telegram search page says that global post searches are paid. Premium users get a free amount of searches. After that, each search costs a number of Stars (Telegram search docs). So if your own parser must find new channels by keyword, that part is not free.
Global post search in MTProto costs Stars, so channel discovery has a cost in a self-written parser too. Telegram API docs, Search, screenshot taken 2026-11-10
| Item | Telegram Bot API | Self-written MTProto parser (for example Telethon) | Pay-per-call data API (this guide) |
|---|---|---|---|
| Which channels it can read | Only channels the bot has joined (Bots FAQ) | Public channels the account can see, plus private channels it has joined | Public channels. A private invite link returned an empty result, not billed (our test) |
| Identity and login | A BotFather token, no phone number | A real phone number, an api_id from my.telegram.org, one api_id per number | One API key |
| History | Only new posts after the bot joins. getUpdates keeps updates for 24 hours at most |
messages.getHistory pages back by offset |
Up to 200 recent posts per call, no page parameter |
| Rate limits | Per bot | 420 FLOOD_WAIT, different per account | Per key, a fixed number of calls a minute. A 429 includes a wait time |
| Find channels by keyword | No | Global post search costs Stars |
telegram/search, $0.000556 per call |
| Cost | Free | Free software. You pay for the account and the server | $0.000556 per call (post_detail is $0.000806) |
| Use in Claude | Write your own MCP server | Write your own MCP server and manage a session file | A ready remote MCP address for a connector |
The "24 hours" in the Bot API row comes from the getUpdates notes. Updates that you do not fetch are not kept longer than 24 hours (Bot API docs). If your bot is in the channel, the correct design is a webhook or a long-running process that receives channel_post updates live. The python-telegram-bot Update object has the fields channel_post and edited_channel_post (python-telegram-bot Update docs). Teams that move large files can run their own Bot API server. In local mode, the open-source telegram-bot-api server downloads files with no size limit and uploads up to 2000 MB (tdlib/telegram-bot-api).
So which route fits whom? There are four clear cases.
First, use the Bot API if the channel is yours, or if a partner adds your bot as an admin. It is free, it is live, and Telegram supports it directly. You do not need a third party.
Second, if you must read a private group or private channel that you have joined, only a self-written MTProto parser works. A pay-per-call API cannot read private invite links.
Third, you may need alerts within seconds, for example to grab an order or a rail slot. Then a long-running MTProto client or bot is a better fit than a daily pull.
Fourth, your team may know Telethon and accept the work of an account, session files and rate limits. If it also watches thousands of channels, a self-written parser has a lower marginal cost.
The pay-per-call API fits the rest. You read other people's public channels, from a few to a few hundred. You check changes once or twice a day. You do not want to register a phone number or keep a login alive for this.
Telethon itself is very active. It has more than 12,000 stars on GitHub (LonamiWebs/Telethon). The latest PyPI release, 1.45.0, came out on September 10, 2026 (Telethon on PyPI). Pyrogram, another MTProto library that was popular, was archived on December 23, 2024. Its repository page says that the project is no longer maintained (pyrogram/pyrogram).
Connect it in Claude: custom connector and Claude Code configuration examples
In this section and in the schedule section, every Claude feature fact comes from Anthropic documentation. Steps that we did not run on our machine are labeled "configuration example".
Claude does not read Telegram by itself. To let it call a data API, you give it a remote MCP server. In Claude on the web and on desktop, this is a "custom connector". The Anthropic Help Center article was updated on October 30, 2026. Its steps are: open Customize, open Connectors, click "+ Add", select "Add custom connector", and enter a name and the server URL (custom connectors guide).
The same article says two more things. The connection starts from Anthropic's cloud, so the server must be reachable from the public internet. Authentication can use an API key or a fixed credential. Anthropic publishes the IP ranges for these outbound requests, which helps if you use an allowlist (Anthropic IP addresses).
For plans, see the "Use connectors" article, updated on November 6, 2026. It says that custom connectors work on Free, Pro, Max, Ultra, Team and Enterprise. When you have many connectors, the "Tool access" setting can be Auto or On demand. The article suggests On demand at 10 or more connectors (use connectors guide).
In each chat, you can turn a connector on or off from the "+" menu in the input box. For a server that runs only on your own computer, desktop extensions are another option, with their own guide (local MCP guide). This guide needs scheduled runs in the cloud, so we use a remote connector.
In Claude Code, the command claude mcp add --transport http adds a remote MCP server. It can also pass a header (Claude Code MCP docs). Here is a configuration example. The key stays in an environment variable and never goes into a file.
# Configuration example: add the EveryInfra remote MCP server to local Claude Code
claude mcp add --transport http everyinfra https://api.everyinfra.com/mcp \
--header "Authorization: Bearer $EVERYINFRA_API_KEY"
# Call channel_posts once with curl, outside Claude, to check the key and the parameters
curl -s https://api.everyinfra.com/api/v1/social \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform":"telegram","action":"channel_posts","params":{"username":"boxb2b","limit":20}}'
You must know one limit before you start. The Claude Code docs for cloud scheduled tasks say that MCP servers added with claude mcp add exist only on your local machine. A cloud scheduled task cannot use them.
A scheduled task can use the server in two other ways (Claude Code cloud scheduled tasks). You add it as a claude.ai connector, or you put it in the repository's .mcp.json file. The repository file looks like this. This is also a configuration example, and the key comes from an environment variable.
{
"mcpServers": {
"everyinfra": {
"type": "http",
"url": "https://api.everyinfra.com/mcp",
"headers": { "Authorization": "Bearer ${EVERYINFRA_API_KEY}" }
}
}
}
We recommend the connector. The cloud environments page has a note about it. MCP connectors that you enable on a session or scheduled task work without adding their hosts to "Allowed domains". The reason is that connector traffic goes through Anthropic's servers, not through the session's network (cloud environments docs).
The opposite case needs more work. Suppose the scheduled Claude calls the API directly with curl. The default "Trusted" network level allows only package registries and allowlisted domains. You must switch the environment to Custom, add the API host, and store the key as a network secret. The connector removes both of these steps.
Of the six steps in this chart, steps two, three and four can run without a model. The model only handles the lines that the regular expression cannot parse well, and it writes the final digest.
A real round trip: what Claude sends and what the API returns
We ran the MCP handshake directly with the same key. This copies what a connector does inside Claude. At 00:26:27 Singapore time we sent initialize. The server replied in 0.135 seconds with protocol version 2025-06-18. This is the MCP specification version that defines the Streamable HTTP transport (MCP transports spec).
Next, tools/list returned 12 tools in 0.094 seconds. The list itself was 16,250 bytes (MCP tools spec). Three tools matter here. everyinfra_list_capabilities lists capabilities and parameters. everyinfra_call_api calls one capability. everyinfra_get_job reads the result of an async job.
At 00:26:28 Singapore time we sent tools/call to read the latest 5 posts of boxb2b. This is the request shape that Claude sends when it decides to call a tool in a chat.
{"jsonrpc":"2.0","id":3,"method":"tools/call",
"params":{"name":"everyinfra_call_api",
"arguments":{"platform":"telegram","action":"channel_posts",
"params":{"username":"boxb2b","limit":5}}}}
| MCP step | Time (SGT) | Seconds | Size and result |
|---|---|---|---|
| initialize | 00:26:27 | 0.135 | Protocol 2025-06-18 |
| tools/list | 00:26:28 | 0.094 | 16,250 bytes, 12 tools |
| tools/call, channel_posts with limit 5 | 00:26:28 | 8.313 | 9,698 bytes, 5 posts, $0.000556 |
The first result was the daily price list from November 9. Here is an excerpt. We cut the text and kept the structure.
{"id":"req_8529285a194244d8","platform":"telegram","action":"channel_posts",
"results":[{"id":2655,"url":"https://t.me/boxb2b/2655",
"channel_username":"boxb2b","channel_title":"BOX - Телефоны опт и розница",
"text":"Ежедневное обновление: 09.11 ... 18 Pro 256 Black (eSim) - 112.000₽ ... 18 Pro 256 Black (sim) - 123.300₽ ...",
"view_count":2510,"posted_at":"2026-11-09T07:22:04+00:00","media_type":"text",
"reactions":[{"count":7,"is_paid":false},{"count":1,"is_paid":false}]}, …],
"count":5,"billing":{"charged":true,"charged_usd":0.000556}}
Raw response for one wholesale post. Each line has two units, which lets us compute the seller's exchange rate later. EveryInfra API response, 2026-11-10 00:18 Singapore time
The catalog lists 16 response fields for telegram/channel_posts (data capability catalog). Whether a field has a value depends on the channel. We counted every field across the 350 unique posts from the four channels.
| Field | Meaning | Share with a value | Use in the digest |
|---|---|---|---|
id, url
|
Post ID and link | 350 of 350 | The key for duplicate removal. Each price in the digest links back to its post |
channel_username, channel_title
|
Channel name and title | 350 of 350 | Grouping |
posted_at |
Post time in UTC | 350 of 350 | Find today's posts. Add 3 hours for Moscow time |
text |
Post text | 324 of 350 | The input for price extraction. 26 posts are photo or video only |
view_count |
Views | 349 of 350 | Shows which quotes people read most |
media_type, media_url
|
Media type and link | 347 of 350, 259 of 350 | The teustat rate sheets are images, so you need this link to read them |
reactions |
Emoji reactions | 299 of 350 | Optional |
reply_to_url, link_preview_url
|
Replied post and link preview | 17 of 350, 44 of 350 | Track follow-up posts |
author, is_forwarded, forwarded_from
|
Sender and forward source | 0 of 350 | Channels post as the channel, and these four had no forwards |
The catalog field note has one more line. When the other sources are not available, results come from a last-resort source that does not return media_url or reactions. In our test, only 1 of 50 linktek posts had reactions, which probably shows this case. So your digest code must not expect these two fields every time.
All posted_at values are in UTC. For example, linktek post 37606 shows 08:50:51 UTC, which is 11:50 in Moscow. A digest that splits "today" by Moscow time matches the working hours of these sellers better.
For speed, the 17 billed calls took between 5.264 and 17.613 seconds. The median was 10.44 seconds. That meets the target we set before writing: a median of 20 seconds or less. Searches were usually slower than channel reads, at 11 to 18 seconds for the six searches.
The two empty results were the slowest. A private invite link with a valid format took 29.4 seconds. A channel name that does not exist took 87.3 seconds. Neither call was billed. So a timeout of 2 minutes per channel is reasonable in a scheduled task. One failed channel must not stop the others.
Pagination and limits: channel_posts has no page parameter
Many people who search for "telegram api parser" want the full history of a channel. Here is the answer. telegram/channel_posts has two parameters, username and limit. The limit defaults to 20 and goes up to 200. There is no page_token and no date filter.
We sent a since parameter on purpose to test this. At 00:22 Singapore time the API returned 422. The error said that since is not a parameter of telegram/channel_posts, that username is required and that limit is optional. It also gave a working example request. This call was not billed. Date filters exist only on telegram/search, which accepts keyword, since and until and returns up to 100 results per call.
How many posts does limit=200 really return? At 00:17 Singapore time we called boxb2b with limit=200. We got exactly 200 posts. The oldest was from February 22, 2026 and the newest from November 9. That is a span of 260 days, and the raw JSON was 217,994 characters.
The call took 14.0 seconds. Right after it, pulls of 50 posts from the other three channels took 6.6 to 10.4 seconds. Four times the posts added only about 4 to 7 seconds, so limit=200 is a fine choice for the first baseline.
For a channel that posts slowly, one call gives you most of a year. This is very useful when you build the first price baseline.
For a channel like linktek, with almost 10 posts a day, 200 posts cover only about three weeks. This capability cannot return older history. If you need deep history, you must page back with offset_id in your own MTProto parser.
Each call costs the same, whatever the limit. So the cost per post falls as the limit goes up. At limit 20 it is $0.0278 per 1,000 posts. At 50 it is $0.01112. At 100 it is $0.00556, and at 200 it is $0.00278.
Our target before writing was $0.005 or less per 1,000 posts. Only limit 200 meets it. But in a daily digest, the real unit is not "per 1,000 posts". It is "one call per channel per day". You pay $0.000556 whether the channel posted once or ten times today.
Claude also sets a limit. The Claude Code MCP docs say that tool output above 10,000 tokens shows a warning. The default maximum is 25,000 tokens, and you can raise it with MAX_MCP_OUTPUT_TOKENS. Results above 50,000 characters go to a file instead of the context (Claude Code MCP docs).
We measured the characters per post in each response. With that figure, 50,000 characters hold 33 logistved posts, 36 linktek posts, 45 boxb2b posts or 50 teustat posts. So when the model calls the tool directly in Claude, a limit of 20 to 30 is the safest. For a baseline of 200 posts, call the API from a script and save the result to a file. Then let Claude read the file.
You must remove duplicates. At 00:30 Singapore time we called linktek again with limit=20. All 20 posts were ones we had received 12 minutes earlier, so there were 0 new posts. At 00:39 we pulled 20 posts each from boxb2b and logistved, and again found 0 new posts. Keep a set of seen post IDs (the id is unique within a channel). Each day, pass only the new IDs to the next steps. Then the model does not read or write the same price list twice.
These three repeat pulls returned 60 posts and cost $0.001668, but they gave 0 new posts. That is the cost of a per-call price. Set the pull interval by the posting rate of each channel. For a channel like boxb2b, which posts less than once a day, one pull a day is enough.
Extract the prices: run a regex first, give Claude only the hard part
Wholesale posts are quite regular. The boxb2b daily list has one model per line, such as "18 Pro 256 Black (sim) - 123.300₽", with ▫️ or 🔥 between lines. linktek writes "model (stock) — 1 371 у.е. / 117 849 ₽" on each line.
We first wrote an extractor that uses only regular expressions and no model. From 200 boxb2b posts and 50 linktek posts, it extracted 1,411 price rows. Of these, 1,048 came from 129 boxb2b posts and 363 came from 40 linktek posts. 319 rows had a у.е. price. Here is the core logic.
import re
SEP = re.compile(r"▫️|▪️|•|🔥|✅|📱|💻|🔻|\n|(?<=₽)(?=\S)")
PRICE = re.compile(
r"(?P<item>[A-Za-zА-Яа-я0-9][^₽]{2,90}?)\s*(?:[-—–:]|\s)\s*"
r"(?:(?P<ue>\d[\d\s]*)\s*у\.е\.\s*/\s*)?"
r"(?P<rub>\d{1,3}(?:[.\s ]\d{3})+|\d{4,7})\s*₽")
def extract(post, seen_ids):
if post["id"] in seen_ids: # skip posts we already processed
return []
rows = []
for chunk in SEP.split(post.get("text") or ""):
for m in PRICE.finditer(chunk):
rub = int(re.sub(r"\D", "", m.group("rub")))
if rub < 1000: # "from 5 pcs" and similar are not prices
continue
rows.append({"post_id": post["id"], "date": post["posted_at"][:10],
"item": m.group("item").strip(), "rub": rub,
"ue": int(re.sub(r"\D", "", m.group("ue"))) if m.group("ue") else None})
return rows
Before writing, we set this test: take a random sample, check each row by hand, and require 90% accuracy or more. We drew 25 random rows and compared each one with its post. The price number was correct in all 25 rows. But only 20 rows were usable as they were. Five rows had problems.
Three rows were lot totals, marked "Итого" (total), which the regex read as unit prices. Two rows had only a color. The model name was in a small heading above them, so the regex got "Silver" and lost the model. Counted as "usable as is", the result is 80%. That misses our 90% target, and we report it as a miss.
| Audit check | Rows |
|---|---|
| Random rows checked by hand | 25 |
| Price number correct | 25 |
| Usable as is | 20 |
| Lot total read as a unit price | 3 |
| Color line without the model name | 2 |
Two more rows had a split у.е. value. For example, "3 720 у.е." broke into two parts, which gave a rate of 444. We removed these with a 50 to 150 range filter in the exchange-rate step.
All of these problems come from context. A person sees the lines above and below and knows what a total line or a color line means. A regex does not. This step is a good fit for Claude.
Claude's structured outputs feature returns JSON that follows a schema you give. The docs say that it uses constrained decoding to make sure the JSON matches the schema. The request uses output_config.format with type json_schema (structured outputs docs).
Run the regex first. Then send only two kinds of post to the model. The first kind has a price but no model name. The second kind contains words such as Итого, всего or партия (total, in all, lot). In the schema, ask for model, storage, variant (SIM or eSIM), color, price_rub, price_ue and is_lot_total on each row.
We did not run this step on our machine, so it is a configuration example. The Anthropic pricing page describes Claude Haiku 5.5 as the model for high-volume tasks such as classification and extraction. Its input price is $0.10 per million tokens for prompts up to 100,000 tokens (Anthropic pricing). We used the measured posting rate and characters per post for the four sample channels. Their new posts add up to about 18,000 characters a day. Only a small part of that goes to the model.
Test 1: how much did one iPhone 18 Pro drop in 47 days?
The price series is the most valuable output of this test. We took all quotes for one model from the 200 boxb2b posts: the Hong Kong iPhone 18 Pro 256 GB in black. The posts mark it "sim", which means physical SIM plus eSIM. Then we compared it with the linktek wholesale prices.
| Date | Channel and post | Spec and terms | Price (RUB) |
|---|---|---|---|
| 2026-09-17 | boxb2b 2612 | Hong Kong, black, preorder, 5 units minimum | 141,000 |
| 2026-09-21 | boxb2b 2621 | Hong Kong, black, 3 units minimum | 130,900 |
| 2026-09-23 | boxb2b 2624 | Hong Kong, black, retail, single unit | 132,900 |
| 2026-11-04 | linktek 37584 | US eSIM only, black, wholesale | 102,426 (1,191 у.е.) |
| 2026-11-05 | linktek 37608 | US eSIM only, black, wholesale | 101,821 (1,184 у.е.) |
| 2026-11-05 | linktek 37606 | Hong Kong, black, wholesale, delivery included | 117,849 (1,371 у.е.) |
| 2026-11-09 | boxb2b 2655 | Hong Kong, black, retail, single unit | 123,300 |
| 2026-11-09 | boxb2b 2655 | eSIM only, black, retail, single unit | 112,000 |
Compare the same spec under the same terms (Hong Kong, single unit, retail). In the 47 days from September 23 to November 9, black fell from 132,900 to 123,300 RUB, which is 7.2%. In the same posts, Glacier fell from 131,900 to 122,300 RUB (7.3%). Burgundy fell from 135,900 to 123,500 RUB (9.1%).
From the September 17 preorder price (5 units minimum) to the November 9 retail price, the drop is 12.6%. But the terms differ, so that is not a real drop. The most common mistake is to use the wrong variant. The November 9 post also has an eSIM-only price of 112,000 RUB. Some people compare it with the September Hong Kong price. That gives a 15.7% drop, more than twice the real one.
Here are the same prices in dollars. We use the Bank of Russia rate of 82.7536 RUB per USD for November 10, 2026. At that rate, 123,300 RUB is about $1,490. The eSIM-only retail price of 112,000 RUB is about $1,353. The linktek US eSIM wholesale price of 101,821 RUB is about $1,230.
You can also compute the gap between retail and wholesale. On November 9, the boxb2b eSIM-only retail price was 112,000 RUB. That was 10.0% above the linktek US eSIM wholesale price of 101,821 RUB from November 5. The Hong Kong retail price of 123,300 RUB was 4.6% above the Hong Kong wholesale price of 117,849 RUB. The linktek US eSIM price itself fell 0.6% from November 4 to November 5.
These numbers matter to buyers. In the same week, the gap between channels and between versions is often larger than the drop of one model over a month. So every "price change" line in the digest must show the spec and the terms. It must compare only with yesterday's line for the same spec and terms.
Test 2: how many rubles is one у.е.?
Each linktek line shows both a у.е. price and a ruble price. у.е. stands for "условная единица", a conventional unit. Russian wholesalers often use it to quote a price that follows a foreign currency. The seller decides how many rubles one unit is worth.
Because both prices are on the same line, we can compute the seller's rate.
We took the 319 linktek rows with у.е. from November 4 to November 9, 2026. We removed the 2 rows with split numbers, which left 317 rows. The median rate was 85.99 RUB per unit. The lowest was 85.8 and the highest was 87.0, so the values are very close together.
Then we compared it with the daily rates from the Bank of Russia, using its raw XML feed (Bank of Russia daily rates). The table shows the four dates with a new rate in that week.
| Bank of Russia rate date | USD rate (RUB) | Seller rate (RUB per у.е.) | Gap |
|---|---|---|---|
| 2026-11-04 | 81.6699 | 85.99 | +5.3% |
| 2026-11-06 | 81.7947 | 85.99 | +5.1% |
| 2026-11-07 | 82.1386 | 85.99 | +4.7% |
| 2026-11-10 | 82.7536 | 85.99 | +3.9% |
We can only say that one у.е. is about 4% to 5% above the central bank USD rate of the day. The channel does not say what the gap includes, such as currency cost, logistics or margin, and we do not guess.
One more condition is visible only in the post text. linktek post 37606 says that payment by company bank transfer (without VAT) adds 12%. It also says that the price includes delivery and that logistics takes about 7 days.
If a digest extracts only the prices, the real landed price of the same phone can be off by more than ten percent. This is why we suggest giving these condition lines to Claude. A regex is good at numbers. It does not understand which price a "+12%" applies to.
Test 3: do freight channel rates match public indexes?
Freight numbers are harder to check. Routes, container types and terms are written in many ways. We took four recent posts from logistved and teustat and compared them with the public World Container Index page from Drewry in the UK.
| Source and date | Route | Number in the post | What we found |
|---|---|---|---|
| logistved 5117, 2026-11-09 | China to Russia, direct rail, 40-foot high cube | $9,500 to $10,000 on average, transit times in the next table | 5.0% to 10.5% above the teustat October average of $9,049 for Shanghai to Moscow by direct rail. The start points and methods differ, so use it only for direction |
| logistved 5115, 2026-11-06 | Far East ports to Moscow by rail, 40-foot | 400,000 RUB on average in November, because Russian Railways raised its tariffs | The post gives no source, so we could not check it |
| logistved 5100, 2026-11-02 | World Container Index | Down 3% in a week, to $4,429 | The Drewry page shows $4,389 for November 5, down 1%. $4,389 is about 1% below $4,429, so the channel quoted the previous issue and the numbers agree |
| teustat 4402, 2026-11-02 | Shanghai to Moscow, 40-foot COC, October average | Direct rail $9,049. Via the Far East $9,376. Via St Petersburg $9,832. Via Novorossiysk no data | The platform's own index, with the numbers in the text |
The same logistved post 5117 lists transit times on regular routes, station to station, with no extra delays. It also says that trains leaving in the first half of November are almost full.
| Route | Transit days | Rate in the post |
|---|---|---|
| Via Zabaykalsk | 28 to 30 | $9,500 to $10,000 |
| Via Kazakhstan | 22 to 24 | $9,500 to $10,000 |
| Via Khorgos | 18 to 22 | $9,500 to $10,000 |
| Via Erlian | 25 to 28 | $9,500 to $10,000 |
| Express, Pinghunan via Zabaykalsk to Moscow | 14 to 16 | $10,700 |
| Express, Xi'an via Khorgos to Moscow (announced) | 10 to 12 | $10,500 |
The Drewry issue of November 5, 2026 also shows two other routes (Drewry WCI). Shanghai to Rotterdam was $3,615, and Shanghai to New York was $9,303. This check shows two things.
First, a channel that repeats a public index is usually one issue behind. If your digest quotes an index, get the latest issue from the source page. Use the channel post only as a sign that a new number is out.
Second, the forwarder's own route quote ($9,500 to $10,000 for a 40-foot high cube) and the index channel's monthly average ($9,049) point the same way. But they are not the same thing. One is a November quote range. The other is an October average. A digest must keep the two kinds of number apart and must not compute a change between them.
Another teustat post, number 4406 from November 6, has the title "minimum rates this week". The text has two short lines, and the table is in the image. We did not read images in this test. So the digest can only say "new rate table, see the post". To automate this, you can pass the media_url from the response to a model that reads images. We did not test that step.
Cross-check with Yandex Market: channel prices against marketplace listings
Are the channel prices low? You can check them against a large Russian marketplace. At 00:38 Singapore time we called yandex/market once with the keyword "iPhone 18 Pro 256 ГБ". It returned 50 products and cost $0.001389.
We kept the titles that contain "18 Pro" and "256" but not "Pro Max", "ProMax" or "512". That left 33 listings. Their median price was 209,990 RUB. The interquartile range was 165,353 to 255,441 RUB, the lowest was 115,800 and the highest was 645,990. Nine listings were marked eSIM only, with a median of 186,534 RUB.
Against the channels, the Yandex Market median was 70.3% above the boxb2b Hong Kong retail price of 123,300 RUB from November 9. It was 106.2% above the linktek US eSIM wholesale price of 101,821 RUB. At the November 10 rate, the median listing is about $2,538.
The gap is very large, so we must state its limits. Marketplace prices are listing prices. They include many third-party sellers and different warranty and invoice terms. The top listing at 645,990 RUB is clearly not a normal price. Channel prices are wholesale quotes, which often require a bank transfer, a pickup or the seller's own logistics.
We do not call this gap a "profit margin". We only say one thing. For this kind of product, marketplace listings and channel quotes are on different levels. You cannot use the marketplace median as the market price. We go deeper into this method in our post on 1688 sourcing and Yandex Market margins. The Yandex data API and the yandex/market capability page list the fields.
Cost: what 1,000 posts cost, and what a month costs
All EveryInfra costs come from the price_usd field in the catalog. We read it at 00:13 Singapore time on November 10, 2026. telegram/channel_posts, telegram/profile, telegram/search, telegram/group and telegram/members each cost $0.000556 per call. telegram/post_detail costs $0.000806 per call. Failed calls, empty results and parameter errors are not billed. In our 24 calls, 7 were not billed, and we list all of them in the limits section.
| Case | Math | USD |
|---|---|---|
| One call with limit=200 | 0.000556 / 200 x 1,000 | $0.00278 per 1,000 posts |
| One call with limit=20 | 0.000556 / 20 x 1,000 | $0.0278 per 1,000 posts |
All 7 channel_posts calls in this test |
0.003892 / 350 unique posts x 1,000 | $0.0111 per 1,000 posts |
| 6 keyword searches, 58 results in total | 0.003336 / 58 x 1,000 | $0.0575 per 1,000 results |
| 10 channels once a day, plus 1 search | 11 x 0.000556 x 30 | $0.18 a month |
| 50 channels once a day, plus 1 search | 51 x 0.000556 x 30 | $0.85 a month |
| 100 channels twice a day, plus 2 searches a day | 202 x 0.000556 x 30 | $3.35 a month |
| All live calls in this guide | 17 billed calls | $0.010285 |
Search costs much more per result than a channel read, because searches return few results. Of our six searches, the smallest returned 1 result and the largest returned 26. The average was fewer than 10 per call. With a per-call price, fewer results mean a higher cost per result. So use search to find new channels, not to collect prices every day.
Here is the full bill for this test, by capability.
| Capability | Calls | Billed | USD |
|---|---|---|---|
telegram/channel_posts (7 direct, 1 through MCP, 3 not billed) |
11 | 8 | 0.004448 |
telegram/search |
6 | 6 | 0.003336 |
telegram/profile |
2 | 2 | 0.001112 |
telegram/post_detail |
4 | 0 | 0 |
yandex/market |
1 | 1 | 0.001389 |
| Total | 24 | 17 | 0.010285 |
Next to the Claude plan price, the API cost is almost nothing. Ten channels cost $0.18 a month, which is less than 1% of the Pro price. The schedule table in the next section shows each plan price. The real cost to control is how much text the model reads. That is why we remove duplicates first, send only new posts to the model, and run the regex before the model.
Where the schedule lives: Cowork scheduled tasks, Claude Code cloud scheduled tasks, or /loop
Many people think that they can ask Claude in a chat to run a job every day. A chat does not create a scheduled task. You create the schedule in a separate feature. Anthropic now has three features related to schedules, and each one fits different users.
The plan prices in the table come from the claude.com pricing page (Claude pricing). Pro is $20 a month billed monthly, or $17 a month billed yearly. Max starts at $100 a month, and Ultra is $200 a month.
| Feature | Where you create it | Plans and lowest monthly price | Runs when your computer is off | Uses connectors | Notes |
|---|---|---|---|---|---|
| Cowork scheduled tasks | Cowork in Claude Desktop, "Scheduled" in the sidebar | All paid plans, from $20 (Pro) | Yes, runs remotely | Yes | Help article updated 2026-11-05 |
| Claude Code cloud scheduled tasks (formerly routines) | claude.ai/code/routines, the Code tab in Desktop, or /schedule in the CLI |
Pro, Max, Ultra, Team, Enterprise, from $20 (Pro) | Yes, on Anthropic cloud | Yes, all connectors by default | Research preview. At most once an hour. Cron uses UTC by default |
/loop in a session |
Inside a running Claude Code session | Follows the session, no extra price | No, it stops with the session | Uses the session's tools | Expires after 7 days |
Cowork scheduled tasks fit people who do not write code. The Help Center article updated on November 5, 2026 says the following. Scheduled tasks are available on all paid plans. They run remotely, even when your computer is asleep. They can use the connectors you have added. You manage them under "Scheduled" in the sidebar (Cowork scheduled tasks guide).
Cowork is available on Pro, Max, Ultra, Team and Enterprise. The desktop app runs on macOS, Windows and Linux (beta) (Cowork getting started). Another article, updated on October 30, 2026, says that Cowork and chat are now one Claude (Cowork and chat are one Claude). So a connector you add in chat also works in Cowork.
To set it up, create a scheduled task in Cowork and turn on the EveryInfra connector. Write the prompt clearly. For example: "Every day at 10:00 Moscow time, call channel_posts with limit 20 for each channel in my list. Read only today's new posts. Extract model, spec, price and terms. Compare with yesterday and write a one-page digest."
Claude Code cloud scheduled tasks fit people who keep scripts or write results to a repository. The docs say this feature is a research preview. It is available on Pro, Max, Ultra, Team and Enterprise. You create a task on the web, in the Code tab of the desktop app, or with /schedule in the CLI.
The shortest interval is one hour. Cron expressions use UTC unless you set CRON_TZ. Tasks set on the hour can start late. So the docs suggest a minute off the hour, such as 9:07 instead of 9:00 (Claude Code cloud scheduled tasks).
The usage section of the same page sets limits. Each account can have at most 100 scheduled runs an hour. Each task can have at most 30 "Run now" or API-triggered runs an hour. Three things decide what a task can reach: the repositories you select, the network settings and variables of the environment, and the connectors you include. A new task includes all your connectors by default, and the docs suggest keeping only the ones the task needs. For the plans that include cloud sessions, see the cloud sessions docs.
Avoid one known issue. In GitHub issue 96832 in the anthropics/claude-code repository, a scheduled task failed with "This tool is unavailable in unattended sessions". The discussion found that the connector must stay enabled by default for an unattended task to call it (GitHub issue 96832). So after you create the task, start it once with "Run now" and check that the tool call works.
/loop is a loop inside a session. It fits a case like "my terminal is open for two hours and I want a check every 30 minutes". The Claude Code docs say these session tasks work only while the session runs, and they expire after 7 days (Claude Code session scheduling). Do not use it for a daily digest.
We wrote about real problems with both schedule features in two other posts. One collects Reddit complaints about Claude Code scheduled tasks. The other uses Cowork scheduled tasks to track competitor prices and reviews. Maybe you want an alert for each new post instead of a daily summary. For that case, see Claude Code channels for competitor post alerts.
Limits and things to watch
First, telegram/post_detail did not work in this test. We called it five times for three post links between 00:20 and 01:20 Singapore time. Each call returned 503 and none was billed. The digest does not need this capability, because channel_posts already returns the main fields of a single post. Before you use it, check the telegram/post_detail capability page and the current state in the availability endpoint.
The other three calls that were not billed are in this table.
| Time (SGT) | Call | Result | Seconds | Billed |
|---|---|---|---|---|
| 00:20:17 | channel_posts, private invite link | empty | 29.4 | $0 |
| 00:21:03 | channel_posts, unknown channel | empty | 87.3 | $0 |
| 00:22:37 | channel_posts with since | 422 | 0.5 | $0 |
Second, private channels are out of reach. We tried a private invite link with a valid format. It returned an empty result after 29.4 seconds and was not billed. The catalog note for username also says that private invite links are not supported. For private channels, use a self-written MTProto parser with an account that has joined.
Third, keyword search is noisy. Six Russian keyword searches returned 58 results in total. The "карго" search after October 27, 2026 returned mostly channels outside our topic. The container rate search returned mostly job channels.
| Keyword (meaning) | Date filter | Results | Seconds |
|---|---|---|---|
| карго из Китая цена за кг (cargo from China, price per kg) | none | 4 | 13.0 |
| оптом прайс поставщик (wholesale price list supplier) | none | 1 | 17.6 |
| карго (cargo) | from 2026-10-27 | 12 | 11.1 |
| ставка контейнер (container rate) | from 2026-10-27 | 14 | 14.1 |
| доставка из Китая (delivery from China) | from 2026-10-27 | 26 | 16.5 |
| 18 Pro 256 опт (wholesale) | from 2026-10-20 | 1 | 14.5 |
The useful search was the sixth. "18 Pro 256 опт" (wholesale) after October 20 returned 1 result, which was the boxb2b daily price list. That is how we found the channel. The digest itself must use a channel list that a person maintains. Telegram's channels.getChannelRecommendations method returns public channels with similar topics (getChannelRecommendations). If you use MTProto, it can help you grow the list.
Fourth, Telegram's terms have a specific limit on AI use. The Telegram API terms point to the Content Licensing terms. Those terms prohibit scraping, indexing, harvesting, aggregation or use of Telegram data to train, fine-tune, validate, benchmark or deploy artificial intelligence. Exceptions need explicit consent for each context (Telegram API terms, Telegram Content Licensing terms).
We do not give legal advice about your use case. In this guide, we read prices that sellers publish in public channels and make a digest for our own reading. We do not train models with it.
Does your use involve model training or a public data product? Then read the terms yourself and ask a lawyer if needed.
Fifth, personal data. The telegram/members response has a phone field, and this guide does not use it at all. Wholesale posts often show a manager's personal username and phone number. Remove them from the digest and keep only the channel name and the post link.
Sixth, do not get around limits. Our key has a per-minute call limit. On a 429, wait for the number of seconds in the response. This guide does not cover any way to get around Telegram FLOOD_WAIT limits or channel access settings, and we do not suggest one.
Recent changes in Telegram and Claude
On the Telegram side, Bot API 10.4 came out on November 9, 2026. It adds HTML widgets, including a new sendWidget method (Bot API recent changes). Telegram Serverless lets developers run backend code for bots and Mini Apps on Telegram's own infrastructure. Its changelog added Mini App hosting on October 6, 2026 (Telegram Serverless docs). Neither change affects the basic rule that a bot reads only channels where it is a member. For MTProto, Telethon 1.45.0 came out on September 10 and is still the most active Python library.
On the Claude side, three Help Center articles changed between October 30 and November 6, 2026. They cover custom connectors, connector use and Cowork scheduled tasks. Routines also got a new name, cloud scheduled tasks. This guide cites the updated versions.
FAQ
Is the Telegram API free?
Telegram does not charge for the Bot API or the MTProto API, but each has conditions. The Bot API reads only channels where the bot is a member. MTProto needs an account with a phone number and an api_id from my.telegram.org. Global post search costs Stars after the free Premium amount.
A pay-per-call data API costs money: telegram/channel_posts is $0.000556 per call. (Question source: autocomplete "is telegram api free" and "telegram api pricing". Basis: Bots FAQ, Obtaining api_id, Telegram search docs.)
Is there a free Telegram channel parser?
Yes. Telethon is open source under the MIT license. A few dozen lines of Python can read the history of a public channel. The cost is the account, not the software. You need a phone number, a session file to protect, and FLOOD_WAIT handling. Telegram watches accounts on unofficial clients more closely.
For a few channels and light use, your own parser is the cheapest. For many channels without an account to maintain, a pay-per-call API is easier. (Question source: Russian autocomplete "парсер телеграм каналов бесплатно", which means "free Telegram channel parser". Basis: LonamiWebs/Telethon, Obtaining api_id.)
Where do I start with a Telegram channel parser in Python?
Start with the Telethon sign-in guide. Create an app at my.telegram.org to get an api_id and api_hash. Log in with TelegramClient. Read the channel with iter_messages. The Telethon client docs say that the wait_time parameter of iter_messages sets the seconds between history requests to avoid FloodWaitError. By default, it waits 1 second only when the limit is above 3000. If you do not want to log in, you can POST to our API from Python. The request body is the one-line JSON in the code above. (Question source: Russian autocomplete "парсер телеграм каналов python". Basis: Telethon sign-in guide, Telethon client reference.)
Can I add a bot to someone else's public channel if I am not an admin?
No. A bot can join a channel only as an admin, and it receives posts only from channels where it is a member. To read other people's public channels, use a user account with MTProto or a pay-per-call API. The "Three routes" section compares them. (Question source: Stack Overflow 45002999.)
What do I do about Telethon FloodWaitError?
Wait for the number of seconds in the error, then send fewer requests. Each account has a different limit, with no fixed public number. The "Three routes" section gives the error code and its sources, and this guide does not give any way around it. (Question source: Stack Overflow 76198570.)
Can AI summarize a news channel every day without adding a bot?
Yes. In r/n8n on Reddit, a user asked how to read a channel daily and have AI write a summary. A commenter asked if it works without adding a bot.
With a pay-per-call API, you do not need a bot. Call telegram/channel_posts once a day and remove duplicates by ID. Give the new posts to Claude for the summary. Schedule the job in Cowork or in Claude Code cloud scheduled tasks. (Question source: r/n8n thread. Basis: our test and the Cowork scheduled tasks guide.)
How do I find similar channels?
With MTProto, call channels.getChannelRecommendations, which returns public channels with similar topics. Without MTProto, search by industry keywords with telegram/search. The third item in "Limits and things to watch" shows our six searches and how noisy they were. (Question source: Russian autocomplete "парсер похожих каналов телеграм", which means "parser for similar Telegram channels". Basis: getChannelRecommendations.)
Get started: one channel, once a day
Step 1: get a key and check the price. Follow the quickstart to create a key in the console and put it in an environment variable. You can see the prices on the pricing page and in the catalog. A new account can start with a very small amount. The Telegram data API page lists all 6 capabilities. The common ones are telegram/channel_posts, telegram/search and telegram/profile.
Step 2: use the curl command above to call one channel with limit=200. Save the result as your baseline. Run the regex on it and see how many prices your channel format gives.
Step 3: add the connector in Claude. Go to Customize, then Connectors, then "+ Add", then "Add custom connector". Enter https://api.everyinfra.com/mcp as the URL. The MCP server page shows the address and the tool list. The remote MCP setup guide has screenshots. In one chat, ask Claude to read the latest 20 posts of your channel and check that the call works.
Step 4: create the schedule. If you do not write code, use "Scheduled" in Cowork. If you write to a repository, use Claude Code cloud scheduled tasks. Pick a minute off the hour and remember that cron uses UTC. Keep the connector enabled, keep only this connector in the task, and start the task once by hand.
Step 5: run it for a week, then grow the list. Check which channels had no new posts in a week and which prices were hard to extract. Then decide whether to add channels and whether to send the hard posts to Claude structured outputs. The same process works on other platforms, such as the VK data API and the YouTube data API. To see ready-made tools from other builders, visit the infrastructure market.
References
- Bots FAQ: What messages will my bot get?, Telegram, read 2026-11-10, https://core.telegram.org/bots/faq
- Obtaining api_id, Telegram, read 2026-11-10, https://core.telegram.org/api/obtaining_api_id
- Telegram API Terms of Service, Telegram, read 2026-11-10, https://core.telegram.org/api/terms
- Content Licensing Terms, Telegram, read 2026-11-10, https://telegram.org/tos/content-licensing
- Error handling (420 FLOOD_WAIT), Telegram, read 2026-11-10, https://core.telegram.org/api/errors
- Telegram Bot API (getUpdates and recent changes, Bot API 10.4 on 2026-11-09), Telegram, read 2026-11-10, https://core.telegram.org/bots/api
- messages.getHistory, Telegram, read 2026-11-10, https://core.telegram.org/method/messages.getHistory
- Search (global post searches are paid), Telegram, read 2026-11-10, https://core.telegram.org/api/search
- channels.getChannelRecommendations, Telegram, read 2026-11-10, https://core.telegram.org/method/channels.getChannelRecommendations
- Telegram Serverless (recent changes, 2026-10-06), Telegram, read 2026-11-10, https://core.telegram.org/bots/serverless
- tdlib/telegram-bot-api README, GitHub, read 2026-11-10, https://github.com/tdlib/telegram-bot-api
- Telethon repository, LonamiWebs, GitHub, read 2026-11-10, https://github.com/LonamiWebs/Telethon
- Telethon 1.45.0, PyPI, released 2026-09-10, read 2026-11-10, https://pypi.org/project/Telethon/
- Telethon: Signing In, Telethon docs, read 2026-11-10, https://docs.telethon.dev/en/stable/basic/signing-in.html
- Telethon: Client reference (iter_messages, wait_time), Telethon docs, read 2026-11-10, https://docs.telethon.dev/en/stable/modules/client.html
- Telethon FAQ, Telethon docs, read 2026-11-10, https://docs.telethon.dev/en/stable/quick-references/faq.html
- pyrogram/pyrogram (archived 2024-12-23), GitHub, read 2026-11-10, https://github.com/pyrogram/pyrogram
- telegram.Update (channel_post), python-telegram-bot docs, read 2026-11-10, https://docs.python-telegram-bot.org/en/stable/telegram.update.html
- Discussion 3047: bots in channels, python-telegram-bot, GitHub, read 2026-11-10, https://github.com/python-telegram-bot/python-telegram-bot/discussions/3047
- Get started with custom connectors using remote MCP, Anthropic Help Center, updated 2026-10-30, read 2026-11-10, https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp
- Use connectors to extend Claude's capabilities, Anthropic Help Center, updated 2026-11-06, read 2026-11-10, https://support.claude.com/en/articles/11176164-use-connectors-to-extend-claude-s-capabilities
- Schedule recurring tasks in Claude Cowork, Anthropic Help Center, updated 2026-11-05, read 2026-11-10, https://support.claude.com/en/articles/13854387-schedule-recurring-tasks-in-claude-cowork
- Claude Cowork and chat are one Claude, Anthropic Help Center, updated 2026-10-30, read 2026-11-10, https://support.claude.com/en/articles/16761823-claude-cowork-and-chat-are-one-claude
- Get started with Claude Cowork, Anthropic Help Center, read 2026-11-10, https://support.claude.com/en/articles/13345190-get-started-with-claude-cowork
- Getting Started with Local MCP Servers on Claude Desktop, Anthropic Help Center, read 2026-11-10, https://support.claude.com/en/articles/10949351-getting-started-with-local-mcp-servers-on-claude-desktop
- Cloud scheduled tasks (formerly routines), Claude Code docs, read 2026-11-10, https://code.claude.com/docs/en/routines
- Connect Claude Code to tools via MCP, Claude Code docs, read 2026-11-10, https://code.claude.com/docs/en/mcp
- Scheduled tasks (/loop), Claude Code docs, read 2026-11-10, https://code.claude.com/docs/en/scheduled-tasks
- Configure cloud environments, Claude Code docs, read 2026-11-10, https://code.claude.com/docs/en/cloud-environments
- Use Claude Code in the cloud, Claude Code docs, read 2026-11-10, https://code.claude.com/docs/en/claude-code-on-the-web
- Issue 96832: tool unavailable in unattended sessions, anthropics/claude-code, GitHub, read 2026-11-10, https://github.com/anthropics/claude-code/issues/96832
- IP addresses, Claude Platform docs, read 2026-11-10, https://platform.claude.com/docs/en/api/ip-addresses
- Structured outputs, Claude Platform docs, read 2026-11-10, https://platform.claude.com/docs/en/build-with-claude/structured-outputs
- Pricing (Claude Haiku 5.5), Claude Platform docs, read 2026-11-10, https://platform.claude.com/docs/en/about-claude/pricing
- Plans and pricing, Anthropic, read 2026-11-10, https://claude.com/pricing
- MCP specification 2025-06-18: Transports, Model Context Protocol, read 2026-11-10, https://modelcontextprotocol.io/specification/2025-06-18/basic/transports
- MCP specification 2025-06-18: Tools, Model Context Protocol, read 2026-11-10, https://modelcontextprotocol.io/specification/2025-06-18/server/tools
- Data capability catalog (price_usd, response_fields), EveryInfra, read 2026-11-10 00:13 SGT, https://api.everyinfra.com/api/v1/social/catalog
- Telegram capability availability, EveryInfra, read 2026-11-10, https://api.everyinfra.com/api/v1/social/availability?platform=telegram
- Daily exchange rates XML (2026-11-04 to 2026-11-10), Bank of Russia, read 2026-11-10, https://www.cbr.ru/scripts/XML_daily.asp
- World Container Index (issue of 2026-11-05), Drewry, read 2026-11-10, https://www.drewry.co.uk/supply-chain-advisors/supply-chain-expertise/world-container-index-assessed-by-drewry
- How to add telegram bot to public channel I'm not admin of, Stack Overflow, read 2026-11-10, https://stackoverflow.com/questions/45002999/how-to-add-telegram-bot-to-public-channel-im-not-admin-of
- Python Telethon: how can you prevent the FloodWaitError, Stack Overflow, read 2026-11-10, https://stackoverflow.com/questions/76198570/python-telethon-how-can-you-prevent-the-floodwaiterror-error-or-reduce-its-tim
- Can I read Telegram texts from a certain channel, r/n8n, Reddit, read 2026-11-10, https://www.reddit.com/r/n8n/comments/1jwpuu5/can_i_read_telegram_texts_from_a_certain_channel/
Originally published on the EveryInfra blog: Telegram Channel Scraper API: A Daily Price Digest in Claude. This article was written with AI assistance; the numbers come from the API calls and sources linked above, and were checked before publishing.
EveryInfra is a pay-per-call data API for AI agents and developers: everyinfra.com.
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.



