Resolved Markets logoResolved Markets logo
Abstract blue gradient background with a soft light streakAbstract blue gradient background with a soft light streak
Tutorial

A Telegram bot for market updates

Send prediction-market price and spread updates straight to Telegram, on a schedule or on demand, using read-only order-book data and a few simple rules.

7 min read · Updated Jun 22, 2026

  • Push updatesBot type
  • Schedule or ruleTriggers
  • Live + historyData
  • None (read-only)Execution

Telegram is the simplest place to get a market in your pocket. This bot pushes price and spread updates to a chat, either on a schedule, like a morning summary, or when a rule trips, like a spread blow-out, all from read-only order-book data.

Telegram bots are appealing because the surface is tiny: a chat, some commands, and messages. Point that at clean market data and you have a useful tool in an afternoon. As with any bot here, it reports, it does not trade.

Two modes that cover most needs

Scheduled summaries

A recurring digest, current odds, spread, and how they have moved, for the markets you track. Great as a daily open.

  • Cron-style timing
  • Per-market or watchlist
  • Concise message format

On-demand commands

Reply to a slash command with a live snapshot of any market, resolved from a friendly slug like btc-updown-1h.

  • Slug lookup
  • Live orderbook reply
  • Anyone in the chat can ask

What goes in a message

  • Implied odds for UP and DOWN, straight from the live order book.
  • Current spread, and whether it has widened or tightened versus the recent window.
  • A short trend read from the last several snapshots, rising, falling, or flat.
  • For crypto markets, the spot reference price stamped on the snapshot, for context.
Read-only by design

Updates in, no orders out

The bot fetches and formats data, that is the whole job. It cannot place a Polymarket order, because the platform does not expose one. That makes it safe to drop into a group chat without worrying it will do anything beyond talk.

Wiring a slash command

The on-demand path is the most-used feature in practice, and it is a short chain. A user types a command with a market slug; the bot resolves the slug to its conditionId, fetches the current book, formats the odds and spread, and replies. Because slugs are human-friendly, btc-updown-1h, eth-updown-5m, chat members can ask for a market without knowing any ids.

  1. 1Parse the command and the market slug from the message.
  2. 2Resolve the slug to a conditionId, the same lookup the dashboard uses.
  3. 3Fetch the live orderbook for that market, both UP and DOWN sides.
  4. 4Pull a short snapshot window if you want a trend read from the last several snapshots.
  5. 5Format a compact reply, odds, spread, trend, spot reference, and send it back to the chat.

Where the data comes from

Live orderbook

The current book for active markets, best bid/ask, mid, spread, and depth, fetched on demand for each reply.

  • Active markets
  • UP and DOWN sides
  • Fresh on every call

Snapshot history

The deeper dataset, Resolved Markets is, at its core, a historical order-book archive, so a window of recent snapshots gives the trend read behind a one-line summary, and closed markets stay queryable too.

  • Recent window
  • Trend direction
  • Closed markets too

Spot reference

Crypto snapshots carry a spot price, so a BTC market reply can show the odds next to where BTC actually is.

  • crypto_price field
  • Context for odds
  • No extra source needed
Scheduling cleanly

A digest people actually read

For scheduled summaries, keep the message tight: a handful of watchlist markets, current odds, the spread, and how each moved overnight. Run it on a timer, send once, and let the on-demand command cover everything else. A short, predictable digest beats a wall of numbers.

The whole appeal of a Telegram bot is restraint, a market in your pocket, summarised, with nothing it can do but tell you what it sees.

Wire up the feed

The docs cover the live orderbook and slug-lookup endpoints the bot calls for each message.

Frequently asked questions