Community bots
Slack and Discord bots that bring Drazill odds into the channels where communities already talk — built on nothing but this public API.
/drazill will-the-boc-cut-in-september in a channel, and the current odds come back as a
card. Watch a market, and the channel hears about the resolution without anyone refreshing
a page.
One process serves both platforms. It is an ordinary consumer of the API documented on this site — the same endpoints, the same keys, the same rate limits you get.
What it does
Changing what a channel watches is a channel-management action, so it is permission-checked per platform: Manage Channels or Administrator on Discord, workspace admin or owner on Slack.
What it will not do
- It never places an order and never moves money. Its API key carries read and
websocketscopes only. There is no code path in it that could trade. - It never states more than the payload did. A field the API did not send is left off
the card rather than inferred. Probabilities in the tails render as
<1%/>99%instead of rounding to a certainty nobody claimed. - It never fills silence with stale odds. If the API is unavailable, the bot says the API is unavailable.
How it is built — the short version
It is the reference answer to “is the public API enough to build something real on?”
- Market lookup is
GET /api/v1/searchandGET /api/v1/markets/slug/{slug}, through the published Python SDK with its ownX-API-Key. - Alerts ride the public WebSocket:
market:{market_id}for resolutions andprices:{outcome_id}for moves. Both are public channels — see Realtime overview. - It implements the sequencing and replay contract literally:
it tracks each channel’s
sequence, and on a gap it holds the frame, sends aresync, drains the paginated replay, and only then applies what it held. - It honours the published rate limits — it reads
X-RateLimit-Remainingto stay inside the window, and backs off with jitter onRetry-After. - Subscriptions live in the bot’s own local store. It holds no Drazill database credential and imports nothing from the Drazill backend, and a test in its CI lane fails the build if that ever stops being true.
If you are building your own integration, that list is the whole recipe — every piece of it is documented on this site.
Availability
The bot is not yet installable from the Slack or Discord app directories. Publishing a Slack or Discord application is a public submission, and that step has not been taken. There is no waitlist and no signup form here; when the applications are published, this page will carry the install links.
What exists today is the source, in
integrations/bots/
— runnable now if you want to host it yourself for your own workspace, with a Dockerfile,
a compose service, and a runbook covering the environment matrix and key provisioning.
You will need to create your own Slack app or Discord application for your own workspace,
which is the same path any self-hoster takes.
Whether you run this bot or write your own, mint a dedicated key for it with read and
websocket scopes only — never a write scope, and never a drzl_live_ key in a place
other people can reach. See Get an API key.

