Build guide

Build a stock market bot for X
market close, earnings, cashtag alerts

The FinTwit accounts people follow post the close, the earnings print and the filing before anyone else. Your script already has the numbers. One POST to OpenTweet turns them into a tweet with a chart. No X developer account, flat fee.

7-day trial. Card required, cancel any time.

The short answer

To auto-post stock data to X: pull prices or earnings from a market data API, format a sentence with cashtags, render a chart if you want one, and send it to POST https://opentweet.io/api/v1/posts with publish_now: true and the image in media_urls. For SEC filings and press releases, an OpenTweet RSS connector does it without code.

What a market bot posts

Two kinds of posts: scheduled ones tied to the market clock, and event posts that fire when the data changes.

Market-close recap

Index moves, breadth, and the biggest movers, with a heat map image. Posted every trading day at the close.

Earnings alerts

EPS and revenue against estimates the moment the numbers land, with the cashtag so it shows up in $TICKER searches.

Price and level alerts

A ticker or coin crosses a level, gaps up, or hits a 52-week high. Your script holds the last state and fires once.

Filings and insider trades

8-Ks, 10-Qs and Form 4s from SEC EDGAR, summarized in one line. No code with an RSS connector.

Economic calendar

CPI, jobs report, rate decisions. Schedule the preview the night before and post the print when it lands.

Weekly earnings preview

A Sunday post of the week's big reports. Questions like "which one moves most" pull replies.

The market-close recap, with a chart

Run this from cron at 4:05 pm ET on trading days. Compute the numbers from your data provider, render the heat map, and post both in one call.

import requests  # example: market-close recap with a chart

KEY = "ot_your_key"

def post_close(spx_pct, ndx_pct, leaders, chart_url):
    text = (
        f"Market close: S&P 500 {spx_pct:+.2f}%, Nasdaq {ndx_pct:+.2f}%\n"
        f"Leaders: {' '.join('$' + t for t in leaders)}"
    )
    requests.post(
        "https://opentweet.io/api/v1/posts",
        headers={"Authorization": f"Bearer {KEY}"},
        json={"text": text, "media_urls": [chart_url], "publish_now": True},
    )

post_close(0.49, 0.71, ["NVDA", "LLY", "JPM"], "https://cdn.example.com/heatmap.png")

Earnings alert in one curl call

# Earnings just hit. Tweet the numbers. (example payload)
curl -X POST https://opentweet.io/api/v1/posts \
  -H "Authorization: Bearer ot_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "$ACME Q3 earnings\nEPS $1.42 vs $1.31 est.\nRevenue $8.9B vs $8.7B est.\nGuidance raised.",
    "publish_now": true
  }'

Schedule the week's previews

Up to 50 scheduled posts per request. Times are UTC.

{
  "posts": [
    { "text": "Earnings this week: $AAA Mon, $BBB Tue, $CCC Wed. Which one moves most?", "scheduled_date": "2026-10-26T12:00:00Z" },
    { "text": "Pre-market movers coming at 9:00 ET.", "scheduled_date": "2026-10-27T12:45:00Z" }
  ]
}

Filings and press releases, no code

SEC EDGAR has an RSS feed for every company and form type, and most investor relations sites publish press releases as RSS. Add the feed to an RSS connector, pick a template like {title} or let the AI write a one-line summary, and each new filing posts on its own.

Or let an agent write the commentary

Connect Claude, ChatGPT or Cursor to the OpenTweet MCP server, give it the day's data, and ask for a recap in your voice. It can draft, schedule and publish as tool calls. Every field is in the API reference.

What it costs to run

One flat price. Market bots post mostly text and charts, so the link cap rarely matters.

PlanPricePosts a dayLink posts a dayFits
Pro$19.99/mo201Daily close plus a few alerts
Advanced$29/mo10010Earnings season, a watchlist of alerts
Agency$49/mo30020Several accounts (stocks, crypto, macro)

Compare with the per-post billing of the official API on the X API pricing page.

Stay on the right side of X. Label the account as automated in X settings, post to your own timeline, and do not auto-reply under other posts with tickers or links.

Stay on the right side of your audience. Say "not financial advice" in your bio, report numbers rather than predictions, and never promise returns or promote paid signals you cannot back up.

Check the data license. Free tiers of market data APIs often forbid redistribution. Read the terms before you post their numbers on a public account.

Frequently asked questions

How do I make a stock market bot for Twitter?

Pick a market data API (Finnhub, Alpha Vantage, your broker's API, or an exchange API for crypto), write a script that turns the numbers into a sentence and optionally a chart image, and send it to https://opentweet.io/api/v1/posts with publish_now set to true. Run it on a schedule, for example at the 4:00 pm ET close, or when a price crosses a level you track.

Do I need the X API to post stock alerts?

No. You connect your X account to OpenTweet once with a normal login and post through one bearer key. There is no X developer account, no OAuth app, and no per-post bill. On the official X API every post is billed, and a post with a link costs about 13 times a plain one.

Can the bot post charts?

Yes. Render the chart in your script (matplotlib, Plotly, or a heat map library), upload it anywhere public, and pass the URL in media_urls. OpenTweet downloads the image and attaches it. An image is not a link, so it does not use your link-post allowance.

Can I auto-post SEC filings or earnings press releases?

Yes, without writing code. SEC EDGAR publishes RSS feeds per company and per form type. Add the feed to an OpenTweet RSS connector, choose a template or let the AI summarize each filing, and new filings post on their own. Most investor relations pages also offer an RSS feed for press releases.

How many posts can a market bot make per day?

Pro ($19.99/month) publishes up to 20 posts a day, Advanced ($29) 100, and Agency ($49) 300. Posts with a link are capped separately: 1 a day on Pro, 10 on Advanced, 20 on Agency, plus link credits if you need more.

Is it allowed to run an automated finance account on X?

Yes, if it posts original content to its own timeline. Turn on the "Automated" label in your X settings, add a "not financial advice" line to your bio, never promise returns, and do not auto-reply under other people's posts with tickers or links. Spam and pump patterns are what get finance bots suspended.

Building a different kind of automated account? See the alert bot, the sports stats bot, or the automated news account.

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.

Post tomorrow's close automatically

Connect X, create a key, and point your script at it. The first recap can go out at the next close.