Build guide

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:  @tunoticierotech

Mix 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.

ScriptCounts asFits in a standard post
Latin, Greek, Cyrillic, Arabic, Persian1 per character280 characters
Chinese, Japanese, Korean2 per characterAbout 140 characters
Emoji2 eachCounts against the same 280
Any link23, whatever its lengthCounts 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

SetupX accountsPlan
One language, one account1Pro, $19.99/mo, 20 posts a day
Two or three editionsUp to 3Advanced, $29/mo, 100 posts a day
A network of language or country accountsUp to 10Agency, $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.