Run a news account on X in any language
or several, from one key
OpenTweet customers post news in Spanish, Turkish, Greek, Dutch, Japanese, Chinese, Persian and more. Feed in English or local sources, and each story goes out as an original post in your readers' language, on one account or one per language. No X developer account.
Card required, cancel any time.
The short answer
To run an X news account in another language: add your news feeds to the OpenTweet RSS connector and write the prompt in the target language, so each new story becomes an original post in that language. For several languages, connect one X account per language and send each version to POST https://opentweet.io/api/v1/posts with that account's x_account_id. Since April 2026 X auto-translates posts with Grok, so one well-written account per market is often enough.
What X's auto-translation changes
Since April 2026, X translates posts with Grok automatically, based on each reader's language settings, and translated posts can appear in For You. Before that, readers had to tap to translate. That changes the math for multilingual accounts:
- You no longer need a copy of every post in every language just to be readable. A Turkish post can reach an English reader.
- Your core readers still want your words. They follow, search and quote in their own language, and a machine translation loses tone, names and jokes.
- Markets still want different stories. A Mexican reader and a Spanish reader share a language and not a news agenda. That is the real reason to run separate accounts.
One account, your audience's language
The simplest setup and the right one for most. Post natively for one market. Grok auto-translation carries the best posts to readers in other languages.
Pro, $19.99/mo
One account per language
Separate editions when the markets want different stories: local news, local leagues, local prices. Each account has its own feeds and voice.
Advanced (3 accounts) or Agency (10)
One story, every edition
Your script writes the big stories for each edition, with a local angle, and posts them with x_account_id. Best for breaking news that matters in every market.
Advanced or Agency
Any feed, any language, no code
The RSS connector reads a feed in one language and writes in another. Write the prompt in the target language: the model then writes like a native news desk instead of like a translation.
Connectors -> New connector -> RSS
Feed URL: https://feeds.bbci.co.uk/news/technology/rss.xml
Prompt: Escribe en español para lectores de México.
Una frase sobre qué pasó y una sobre por qué
importa aquí. Sin hashtags. Cita la fuente.
Frequency: Hourly
X account: @tunoticierotechMix sources: international feeds for the big stories, local outlets for what only your market cares about. Each feed is its own connector, and each connector can post to a different X account. Advanced includes unlimited connectors.
One story, every edition, from your script
For breaking news across editions, write each version in your script and post it to each account. Use any LLM for write(), or call the OpenTweet MCP server from an agent that already writes your posts.
import requests
KEY = "ot_your_key"
H = {"Authorization": f"Bearer {KEY}"}
# One X account per edition. Get the ids from GET /api/v1/accounts.
EDITIONS = {
"es": {"account": "acct_es", "reader": "readers in Mexico"},
"tr": {"account": "acct_tr", "reader": "readers in Turkey"},
"ja": {"account": "acct_ja", "reader": "readers in Japan"},
}
def post_story(story):
for lang, ed in EDITIONS.items():
# write() is your LLM call: summarize the story in 'lang'
# for ed["reader"], with a local angle, source named.
# Return None when the story does not matter there.
text = write(story, lang=lang, reader=ed["reader"])
if not text:
continue
requests.post(
"https://opentweet.io/api/v1/posts",
headers=H,
json={"text": text, "x_account_id": ed["account"],
"publish_now": True},
)Need to post a week ahead? Send up to 50 posts per request with scheduled_date, and time each edition to its own morning. Every field is in the API reference.
Limits that differ by language
The X character count is not the same for every script.
| Script | Counts as | Fits in a standard post |
|---|---|---|
| Latin, Greek, Cyrillic, Arabic, Persian | 1 per character | 280 characters |
| Chinese, Japanese, Korean | 2 per character | About 140 characters |
| Emoji | 2 each | Counts against the same 280 |
| Any link | 23, whatever its length | Counts against the same 280 |
Premium accounts get long posts, and OpenTweet writes to your account's real limit. Check a draft with the X character counter. Posting in Japanese? Read the Japanese guide to X auto-posting.
Which plan fits
| Setup | X accounts | Plan |
|---|---|---|
| One language, one account | 1 | Pro, $19.99/mo, 20 posts a day |
| Two or three editions | Up to 3 | Advanced, $29/mo, 100 posts a day |
| A network of language or country accounts | Up to 10 | Agency, $49/mo, 300 posts a day |
Posts with the article link count as link posts. See pricing for the daily allowance on each plan.
Summarize, credit, do not copy. A one or two sentence summary with the outlet named is fair news practice. A full translation of the article is still copying it.
Do not mirror every post across accounts. X's rules forbid posting duplicate or near-duplicate content across accounts you control, and a word-for-word translation can look like that. Write each edition with its own local angle, and skip stories that do not matter to that market.
Label the bot. Turn on the "Automated" label on each account. More in X automation rules.
Frequently asked questions
Does X translate posts automatically now?
Yes. Since April 2026 X uses Grok to translate posts in other languages automatically, based on each reader's settings, and translated posts can show up in the For You feed. Readers can turn it off per language and tap "Show original". So a post in Spanish can reach English readers, but the reader sees a machine translation, not your wording.
If X auto-translates, do I still need one account per language?
Not always. Write in the language of your core audience: they follow, search and share in that language, and they read your exact words. Add separate accounts when the audiences need different stories, not just different words, for example local politics, a local league, or prices in local currency. Each account then posts what matters to its market.
How do I auto-post an English RSS feed to X in another language?
Add the feed to the OpenTweet RSS connector and write the prompt in the target language, or say it outright: "Write in Spanish for readers in Mexico. One sentence on what happened, one on why it matters here." The connector reads each new item and writes the post in that language. No code, no X developer account.
Can one API key post to several X accounts, one per language?
Yes. Connect each account to OpenTweet, list them with GET /api/v1/accounts, and pass x_account_id on each post. Pro covers 1 X account, Advanced 3, and Agency 10, so three to ten language editions can run from one script.
Do Japanese, Chinese or Korean posts have a shorter limit on X?
Yes. X counts each Chinese, Japanese or Korean character as two, so a standard account fits about 140 of them in a post, against 280 Latin characters. Premium accounts get the long-post limit, and OpenTweet's AI writes to your account's real limit.
Which languages can the AI write in?
The writing models OpenTweet uses handle the major languages well, including Spanish, Portuguese, French, German, Dutch, Turkish, Greek, Arabic, Persian, Japanese, Chinese and Korean. Customers already publish in all of these. For smaller languages, read a week of posts before you leave the account running on its own.
Is translating someone else's article allowed?
Write a short summary in your own words and credit the source, rather than posting a full translation of the article. Translating a whole article is still copying it. A one or two sentence summary with the outlet named is what news accounts normally do.
More automated account guides: the AI news account, the crypto news bot, and the affiliate deals bot.
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.
Open your news desk in a new language
Connect X, add a feed, write the prompt in your readers' language. The next story goes out as theirs.