Build guide

Build a crypto news bot for X
headlines, price moves, daily recaps

Point OpenTweet at CoinDesk, Decrypt or The Block and it writes each story as an original post in your voice. Add a small script for price moves and a daily recap thread. No X developer account, no per-post billing.

Card required, cancel any time.

The short answer

To auto-post crypto news to X: add crypto RSS feeds to the OpenTweet RSS connector with a prompt for your angle, and each new story becomes an original post. For prices, poll the CoinGecko API, and when a coin moves past your threshold send the sentence to POST https://opentweet.io/api/v1/posts with publish_now: true. Write your own sentence for every post: copied headlines and reply spam are what got crypto bots throttled on X in 2026.

Six post types for a crypto account

Thousands of bots post the same headline seconds apart. Accounts that grow add a take, a number, or a chart nobody else has.

Headline takes

Event-driven

Each new story from your feeds, rewritten as one original sentence plus why it matters. The RSS connector does this without code.

Price moves

Event-driven

A coin crosses a round number or moves 5% in an hour. Your script compares the new price with the last one it posted.

On-chain alerts

Event-driven

Large transfers, exchange inflows, contract upgrades, governance votes. Pulled from an explorer API or node webhooks.

Daily close recap

Scheduled

Prices, top movers and what to watch, as a short thread with a chart. The post followers come back for.

Weekly numbers

Scheduled

Weekly performance, funding rates, ETF flows, stablecoin supply. One chart, one line of context.

Explainers

Scheduled

What a new upgrade or token standard does, in a few tweets. Write them once, schedule them for quiet days.

Headlines without code: the RSS connector

CoinDesk, Decrypt, The Block and most project blogs publish RSS. Add each feed as a connector. OpenTweet reads new items, writes one original post per story with your prompt, and posts or queues it. Your prompt is the angle, so make it specific.

Connectors  ->  New connector  ->  RSS

  Feed URL:   https://www.coindesk.com/arc/outboundfeeds/rss/
  Prompt:     One sentence on what happened, one on why it
              matters for ETH holders. No hype words, no
              price predictions, no hashtags.
  Frequency:  Hourly
  X account:  @yourcryptodesk

Add Decrypt, The Block or a project blog as more connectors.

If the AI judges a story unsafe to post, it skips it instead of publishing a refusal. Check the feed first with the free RSS feed preview, and see the RSS to X guide for templates.

Price moves from your own script

Posting is one call. Which coins to watch and what counts as a move lives in your script.

The curl call

# BTC just moved 5% in an hour. Tweet it. (example payload)
curl -X POST https://opentweet.io/api/v1/posts \
  -H "Authorization: Bearer ot_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "BTC +5.2% in the last hour, now $71,480.\nLargest hourly move since Oct 9.",
    "publish_now": true
  }'

A price alert bot in Python

Run it every 5 to 15 minutes with cron. It stores the last price it tweeted per coin, so an alert only fires on a fresh 5% move.

import json, pathlib, requests

KEY = "ot_your_key"
COINS = {"bitcoin": "BTC", "ethereum": "ETH", "solana": "SOL"}
STATE = pathlib.Path("last.json")  # last price we tweeted per coin
last = json.loads(STATE.read_text()) if STATE.exists() else {}

prices = requests.get(
    "https://api.coingecko.com/api/v3/simple/price",
    params={"ids": ",".join(COINS), "vs_currencies": "usd"},
).json()

for coin, sym in COINS.items():
    now = prices[coin]["usd"]
    before = last.get(coin)
    if before and abs(now - before) / before >= 0.05:  # 5% move
        move = (now - before) / before * 100
        requests.post(
            "https://opentweet.io/api/v1/posts",
            headers={"Authorization": f"Bearer {KEY}"},
            json={"text": f"{sym} {move:+.1f}% since our last alert, now ${now:,.0f}.",
                  "publish_now": True},
        )
        last[coin] = now
    elif before is None:
        last[coin] = now

STATE.write_text(json.dumps(last))

The daily close as a thread

Set is_thread to true and put the follow-ups in thread_tweets. Attach the chart through media_urls.

{
  "text": "Crypto close, Oct 21 🧵",
  "is_thread": true,
  "thread_tweets": [
    "BTC $71,480 (+2.1%). ETH $2,610 (-0.4%). SOL $184 (+4.8%).",
    "Biggest mover in the top 50: SOL, on ETF flow headlines.",
    "What to watch tomorrow: CPI at 8:30 ET."
  ],
  "media_urls": ["https://your-cdn.example.com/charts/close-2026-10-21.png"],
  "publish_now": true
}

Let an AI agent write the analysis

Connect Claude, ChatGPT or Cursor to the OpenTweet MCP server, give it the day's prices and headlines, and let it draft the recap for you to approve. Every field is in the API reference.

Which plan fits your account

Flat monthly price. The deciding number is how many of your posts carry a link.

Account typeTypical volumePlan
Price alerts and a daily recap, no links3-15 posts a dayPro, $19.99/mo, 20 posts a day
News takes from feeds, source named, no link10-20 posts a dayPro, $19.99/mo
News with the article linkUp to 10 link posts a dayAdvanced, $29/mo, unlimited connectors
Several coins or languages, several accounts50+ posts a dayAgency, $49/mo, 300 posts a day

Link posts: Pro 1 a day, Advanced 10, Agency 20, plus link credits. Images are not links. See pricing.

Why crypto bots lost reach in 2026. In January, CryptoQuant counted 7.75 million crypto posts on X in one day, a 1,224% bot-driven spike. X blamed reply spam and banned apps that pay users to post. Accounts that post original content to their own timeline are not the target.

Keep the account safe. Turn on the "Automated" label. Write a sentence of your own for each story. No auto-replies under big accounts, no airdrop or giveaway bait, no mass mentions.

Disclose paid posts and do not give financial advice. If a project pays you, say so in the post. Report numbers, not predictions. More in X automation rules.

Frequently asked questions

How do I make a crypto news bot for X?

Two ways. Without code: add crypto news RSS feeds (CoinDesk, Decrypt, The Block, a project blog) to the OpenTweet RSS connector, give it a prompt for your angle, and it turns each new story into an original post. With code: read a price API such as CoinGecko on a schedule, and when a coin moves past your threshold, send the sentence to https://opentweet.io/api/v1/posts. Neither needs an X developer account.

Is X suppressing crypto accounts in 2026?

In January 2026 CryptoQuant's CEO reported 7.75 million crypto-related posts on X in a single day, a 1,224% jump driven by bots, and crypto accounts complained of lower reach. X's head of product put it down to reply spam rather than a crypto filter, and X then banned "infofi" apps that pay users to post. The practical lesson: accounts that post original, useful content to their own timeline are not the problem. Reply spam, shilling and copied headlines are.

Where do I get crypto prices for a bot?

CoinGecko's API is the common choice: the simple/price endpoint returns current prices and 24-hour change for many coins in one call, and a free demo key raises the rate limit. Exchange APIs (Binance, Coinbase, Kraken) give live prices for their own markets. For on-chain events, use a block explorer API or a node provider webhook.

How many posts a day can a crypto account make?

Pro ($19.99/month) publishes up to 20 posts a day, Advanced ($29) 100, and Agency ($49) 300. A daily recap plus a few price alerts fits Pro. A news account that posts every headline with its source link needs Advanced, because each link post counts toward the link allowance.

Should a crypto news bot include the article link?

It is a choice. A link credits the source and sends readers to the full story, but each link post on the X API costs $0.20 and counts toward your OpenTweet link allowance (1 a day on Pro, 10 on Advanced, 20 on Agency). Many accounts post the takeaway without a link and add the source name instead.

Can the bot post a token price chart?

Yes. Render the chart in your script (matplotlib or a charting service), host the PNG at a public URL, and pass it in media_urls. OpenTweet downloads it and attaches it to the post. Images are not link posts.

What gets an automated crypto account suspended?

Promoting tokens without saying you are paid, giveaway and airdrop bait, auto-replies under big accounts, mass mentions, and posting the same headline as hundreds of other bots. Turn on the "Automated" label in your X settings, write your own sentence for each story, and never post a token you were paid to promote without disclosing it.

Building a different kind of automated account? See the stock market bot, the news account in any language, or the affiliate deals bot. For crypto creators who write their own posts, see OpenTweet for crypto.

Everything you can build on X with OpenTweet

Post to X from your code, a watcher, or an AI agent. Start anywhere in the cluster.

OpenTweet vs the X API

Post, schedule, and automate X without a developer account or the $200/mo minimum.

X DM outreach, human-approved

Find and qualify leads, AI-draft DMs, approve each one, and drip-send from your own account via API or MCP.

Post to X without an API

The clean, account-safe way to post to X from your code or an AI agent.

Twitter MCP Server

Give Claude, Cursor, and OpenClaw the ability to post to X. 43 tools included.

Developer docs

Quickstart, API keys, MCP setup, and the REST reference for posting to X from code or an agent.

Cross-posting reference

One call posts to X, Bluesky and LinkedIn. The platforms field, per-network results, and why a network gets skipped.

Social media API for AI agents

Three ways an agent can post to X, Bluesky and LinkedIn, and the trade-offs of each.

LinkedIn MCP server

Post and schedule to a LinkedIn profile from Claude or Cursor through the official LinkedIn API.

XMCP vs OpenTweet

X's official MCP server bills per API call and cannot schedule. Compare it with the flat-fee hosted MCP.

MCP for AI agents

Connect your AI client to X in under two minutes, no X developer account.

Developer API and keys

REST endpoints, one bearer key, and usage tracking. Build on OpenTweet.

OpenTweet for AI agents

The posting layer for autonomous agents and automations that live on X.

Build an AI Twitter persona

Give your AI agent its own X account. Setup, cadence, and the rules that keep it safe.

Best MCP servers for social media

The 2026 ranked list. How the hosted OpenTweet MCP compares with the official X MCP and others.

Cheapest way to post to X via code

Flat fee vs pay-per-use. Why the $0.20 per-link fee flips the math past ~145 link posts a month.

X API pricing 2026

Every pay-per-use X API endpoint price from docs.x.com in one searchable table.

Bluesky posting API

Post and schedule to Bluesky with one REST call and OAuth, and cross-post to X and LinkedIn in the same request.

Automate LinkedIn posts

Post to LinkedIn from an AI agent, n8n or a script through the official Posts API, with one REST or MCP call.

Launch your crypto desk on X today

Connect X, add your first feed, and the next headline goes out as a post in your voice.