A Meltwater Alternative for Teams That Mainly Need X (Twitter) Mentions

Most pages that rank for "Meltwater alternative" are lists of other suites. This one is narrower, and it is also different from our Brandwatch alternative page, which measured what a plain brand keyword returns on X, and from our build-vs-buy guide to X social listening APIs, which compares listening vendors in general. Here the subject is Meltwater specifically (what it does and does not publish about price and X coverage), and the data is different: we counted the real @-mentions 12 public brands received on X over one full 24-hour window, then priced a pipeline that captures every one of them for a month.
Meltwater is a media intelligence company. Its pricing page groups the product into Media Intelligence, Social Listening, AI Visibility Tracking and Media Relations, with Influencer Marketing on the larger plans. That breadth is the point of buying it: news, broadcast and social in one licensed workspace. It is also why teams whose real question is "what are people saying to and about us on X today" can end up paying for a portfolio when they use one channel of it.
This page is for that reader: a brand, PR, community or product team that mainly needs X mentions, and has (or can borrow) someone who can run a short Python script. We cover what Meltwater publishes, the comparison that matters for X-only work, our measured mention volumes, the monthly cost of a complete pipeline, the code, and an honest list of what a suite still does that a pipeline does not.
What Meltwater publishes about pricing (and what it does not)
We read Meltwater's pricing page (meltwater.com/en/pricing) while writing this page. It does not show a single price. Every plan card ends in a sales contact, and the page states that "Meltwater uses tailored pricing rather than a one-size-fits-all list." Its own FAQ answers "How much does Meltwater cost?" with: "Your quote is customized to your goals, the modules you choose, and the scale of your program."
Plans. Four named plans: Starter, Pro, Enterprise and Agency. Starter and Pro cover Media Intelligence, Social Listening, AI Visibility Tracking and Media Relations; Enterprise and Agency add Influencer Marketing. "API & MCP Integrations" appear as a key feature on the Enterprise and Agency plans only.
Contract. The FAQ says "most partnerships are structured on annual agreements, with a minimum contract length of 12 months", and plan changes "are handled on a case-by-case basis."
Trial and setup. "Meltwater does not offer a self-serve free trial"; you can book a guided demo. Larger setups may carry "a one-time implementation or onboarding charge, which will be clearly outlined in your proposal."
What that means for a budget. You cannot price Meltwater from the outside, so any number you have seen on a third-party list is someone else's quote, not a list price. We do not repeat those figures here. What we can say with certainty is the shape: an annual commitment, a sales cycle before you see data, and API access tied to the upper plans.
Does Meltwater still include X data? Yes, according to Meltwater. The FAQ on its social-listening page (meltwater.com/en/suite/social-listening-analytics) says "Coverage can include sources like X (Twitter), TikTok brand mentions, Reddit, online news, and more", and that coverage varies by package and region. The same page claims "millions of sources worldwide" but gives no X post count and does not describe a full X firehose. So X is in the product, as one source among many, on terms set by your package.
Who actually needs a Meltwater alternative
The people searching "Meltwater alternative" and "Meltwater pricing" are usually in one of three situations. Only the first two are about X, and those are the ones this page is built for.
The X-first brand or community team. Most of the conversation you act on happens on X: customers tagging your handle, creators reviewing your product, a support complaint that might go viral. You need every mention, fast, with the author's follower count so you can triage. Print and broadcast coverage is a nice-to-have, not the job.
The renewal-shocked team. You bought a suite for a launch or a crisis, the annual renewal arrived, and the dashboard you actually open every morning is the X stream. Moving that one workflow to something you own lets you renegotiate the rest, or drop it.
The broad media program. You report share of voice across news, broadcast, podcasts and many networks to a communications leadership team, with licensed article content and analyst services. That is what Meltwater is built for; if that is you, Meltwater remains a fit, and this page is mostly useful as a way to add a cheaper raw X feed alongside it.
The test is simple: list the decisions you made from your listening tool last quarter and mark which ones came from X. If it is most of them, read on.
Meltwater vs. an X-mention pipeline vs. the official X API
For an X-only job, the comparison that matters is not feature count. It is how you pay, how fast you can start, and whether you own the data. The Meltwater column comes from its own pricing and social-listening pages; the X API column from docs.x.com/x-api/getting-started/pricing; the TwitterAPI.io column from our pricing page and API docs.
Reading the table. For an X-only job the pipeline wins on the three things a buyer can check before signing anything: a published price, no term, and same-day access. Against the official X API it is the same data job at a lower rate: $0.005 per post read on X's pay-per-usage card versus $0.15 per 1,000 posts returned on TwitterAPI.io, about 33x per 1,000 posts. The suite's advantage is breadth, which is the subject of a later section.
Getting started. New accounts that pass the automatic bot check get up to $1 of free credits (at most 100,000 credits, no card, one per person or network, expiring after 31 days). That is enough to run the collector below for a few days on a small brand before you decide anything.
How many X mentions does a brand actually get? 12 brands measured
Before pricing anything, we measured the volume. We picked 12 public brands that a listening team might plausibly track (consumer apps, SaaS, travel and outdoor brands) and searched X for posts mentioning each official handle, excluding the brand's own posts, over the same fixed 24-hour window. That is 1,157 posts from 68 search requests.
For 6 of the 12 brands, the whole day fitted inside the 8 pages we allowed per brand, so the count is exact. For the six busiest, 8 pages covered only the newest part of the day, so the daily figure is extrapolated from the hours those posts span. The chart marks which is which.
The median brand got 123 mentions a day. The spread is wide: from 2 a day for the quietest handle to 662 for @Airbnb. Even the busiest brand in the set costs under $3 a month to capture in full on TwitterAPI.io.
Mentions are mostly replies. 72.6% of all collected mentions were replies, against 44.4% for @Delta, where more people mention the airline in fresh posts. Replies are where support issues and complaints sit, so a listening feed that drops replies misses most of the conversation.
A short list of loud voices. 9.5% of all mentions came from accounts with 10,000+ followers, but it varies: 24.4% for @Shopify and 26.2% for @SlackHQ, against 1.2% for @duolingo. That follower field (author.followers) is the simplest triage rule there is: alert a human only above a threshold.
Language. 85.8% of the mentions were in English, but not evenly: @duolingo was 69.4% English, and the handle we queried for Patagonia was mostly Dutch-language posts that day, a reminder to read a sample before trusting any brand query.
What a plain handle search did not return. Plain reposts did not appear in these queryType=Latest @-mention results; quotes did (13.1% of @Airbnb's mentions, 13.1% of @Delta's).

What a complete X-mention pipeline costs for these 12 brands
Multiply the measured day by 30 and the 12 brands produce 84,000 mentions a month. Collecting every one of them on TwitterAPI.io costs $12.60 at 15 credits per post returned. The only other cost is checking: every search request is billed at least 15 credits, so a check that finds nothing costs the $0.00015 minimum.
One query, not twelve. Polling each brand separately every 60 seconds means 12 x 43,200 checks a month, and the polling floor (up to $77.76) dwarfs the data. Combining the handles into one OR query keeps a single floor of $6.48, and the total is up to $19.08 a month. We list it as an upper bound because checks that return posts are already counted in the per-post cost.
The official API comparison. The same 84,000 posts at X's pay-per-usage rate of $0.005 per post read are $420.00 a month before any polling overhead, about 33x the TwitterAPI.io rate of $0.15 per 1,000 posts.
Scaling. Costs grow with the posts you collect, not with seats, brands or keywords. Ten times the volume of these 12 brands is still about $126 a month in post costs, and a viral day costs what it returns. Higher request rates come with plans: 0.2 requests per second before the first payment, 20 once paid, 50 on Scale and 500 on Business; see the pricing page for the Starter to Business subscriptions.

Build it: an X-mention collector in about 70 lines of Python
The collector below is the whole replacement for the X part of a listening suite. It runs one combined search for your handles every minute, follows next_cursor while has_next_page is true, assigns each post to a brand from entities.user_mentions, and stores it in SQLite with the fields a triage rule needs: author.followers, isReply, likeCount, lang and createdAt.
Why since_time plus a small overlap. Each run asks only for posts newer than the previous run minus two minutes. The overlap covers posts that are indexed a little late, and the primary key on the tweet id silently drops duplicates, so you never pay twice in your database for the same mention, only for the overlap returned by the API.
Why exclude the brands' own posts. -from:brand keeps your own replies out of the count. Without it, an active support account can double its apparent mention volume with its own answers.
Push instead of poll. If you prefer not to run a loop, put the same query in a filter rule with /oapi/tweet_filter/add_rule (tag and value up to 255 characters each, interval_seconds from 0.05 to 86400, default 60) and activate it with /oapi/tweet_filter/update_rule; new rules are inactive until you do. Matches are then delivered to a webhook you host. The value limit means a portfolio of many long handles may need two rules.
Where the rows go next. A daily share-of-voice chart is a GROUP BY brand, date(created_at). A loud-voice alert is followers >= 10000 posted to Slack. Sentiment is a classifier over the text column. Each is a small, testable script you own, rather than a dashboard setting you rent.
import os
import sqlite3
import time
import requests
API_KEY = os.environ["TWITTERAPI_IO_KEY"]
BASE = "https://api.twitterapi.io"
BRANDS = ["NotionHQ", "figma", "canva", "SlackHQ", "Zendesk", "HubSpot"]
# One query for every brand: posts that mention any handle, minus the brands' own posts.
QUERY = "(" + " OR ".join(f"@{b}" for b in BRANDS) + ") " + " ".join(f"-from:{b}" for b in BRANDS)
db = sqlite3.connect("mentions.db")
db.execute(
"CREATE TABLE IF NOT EXISTS mention (id TEXT PRIMARY KEY, brand TEXT, created_at TEXT, "
"author TEXT, followers INTEGER, is_reply INTEGER, likes INTEGER, lang TEXT, text TEXT)"
)
def brands_in(tweet):
names = {m.get("screen_name", "").lower() for m in (tweet.get("entities") or {}).get("user_mentions") or []}
return [b for b in BRANDS if b.lower() in names] or ["unmatched"]
def fetch_since(since_unix, max_pages=10):
"""Return every mention posted after since_unix, newest first, following next_cursor."""
out, cursor = [], ""
for _ in range(max_pages):
r = requests.get(
f"{BASE}/twitter/tweet/advanced_search",
headers={"X-API-Key": API_KEY},
params={"query": f"{QUERY} since_time:{since_unix}", "queryType": "Latest", "cursor": cursor},
timeout=30,
)
r.raise_for_status()
body = r.json()
out.extend(body.get("tweets") or [])
if not body.get("has_next_page"):
break
cursor = body.get("next_cursor") or ""
return out
def store(tweets):
new = 0
for t in tweets:
a = t.get("author") or {}
for brand in brands_in(t):
cur = db.execute(
"INSERT OR IGNORE INTO mention VALUES (?,?,?,?,?,?,?,?,?)",
(t["id"], brand, t["createdAt"], a.get("userName"), a.get("followers") or 0,
int(bool(t.get("isReply"))), t.get("likeCount") or 0, t.get("lang"), t.get("text")),
)
new += cur.rowcount
db.commit()
return new
if __name__ == "__main__":
since = int(time.time()) - 3600 # first run: backfill the last hour
while True:
started = int(time.time())
tweets = fetch_since(since)
added = store(tweets)
loud = [t for t in tweets if (t.get("author") or {}).get("followers", 0) >= 10000]
print(f"{len(tweets)} returned, {added} new rows, {len(loud)} from accounts with 10k+ followers")
since = started - 120 # small overlap; the primary key drops duplicates
time.sleep(60)
What Meltwater does that this pipeline does not
An honest alternative page has to say what you give up. These are the gaps, and how a team that mainly needs X closes the ones it cares about.
News, broadcast and other networks. Meltwater's core is media intelligence across many source types; its social-listening page names X, TikTok brand mentions, Reddit and online news. An X pipeline is X only. If your reporting needs press clippings next to tweets, keep a media source for that part.
Dashboards and reports out of the box. The suite gives you pre-built dashboards and reporting on day one. With a pipeline, you point a BI tool (or a spreadsheet) at your table. The SQL is short, but someone has to write it.
Sentiment, topics and AI summaries. Meltwater markets its Mira AI assistant on every plan. In a pipeline you choose the model and see exactly what it scored, which also means you are responsible for checking its accuracy on your brand's language.
Media relations and influencer workflows. Journalist databases, outreach and influencer marketing are separate Meltwater capabilities with no equivalent in a data API.
Historical benchmarks. A suite usually comes with history from day one. A pipeline starts collecting the day you switch it on, although an advanced_search query with since_time and until_time can backfill a window when you need it, billed like any other posts returned.
If most of these matter to you, Meltwater remains a fit for the full program, and the pipeline above is still a low-cost way to get raw X mentions into your own warehouse alongside it.
Decision: when to keep the suite, when to own the X feed
Own the X feed if most of the decisions you make from listening come from X, you want every mention (replies included) rather than a sample, you want to start today without a sales call, and you would rather pay for posts returned than for a 12-month term. For a portfolio like our 12 brands, that is up to $19.08 a month at 60-second checks.
Keep a suite if you report across news, broadcast, podcasts and many networks, rely on licensed media content and analyst support, or need journalist and influencer workflows. That is Meltwater's home ground.
Run both if you are mid-contract: put the X collector next to the suite for a month, compare the mention counts and the alerts, and walk into the renewal conversation with your own numbers.
If you are choosing between suites, our Brandwatch alternative page measures what a keyword search returns on X, and the X social-listening build-vs-buy guide compares API options; both are linked below.
How we collected this
Question. How many X posts mention a public brand's handle in a day, and what does a pipeline that captures every one of them cost per month?
Accounts and query. 12 organization handles: @NotionHQ, @figma, @canva, @duolingo, @Patagonia, @onepeloton, @SlackHQ, @Shopify, @Airbnb, @Delta, @Zendesk and @HubSpot. For each one, /twitter/tweet/advanced_search with queryType=Latest and the query @handle -from:handle since_time:S until_time:E, the same fixed 24-hour window for every brand.
Sample and window. Up to 8 pages (about 160 posts) per brand, 1,157 posts in total from 68 requests (including one connectivity test), at a data cost of about $0.20 or less. Collected in 2026. Six brands were fully paged inside the window (exact counts); for the other six the daily rate is extrapolated from the hours the newest 160 posts covered (5.8 to 23.7 hours).
What the sample cannot show. One day is one day: launches, outages and news spikes move these numbers by multiples. The extrapolated brands were measured over the most recent hours of the window, which may be busier or quieter than the daily average. A handle query misses posts that name the brand without tagging it; a keyword query (as on our Brandwatch alternative page) catches those but also catches noise. Plain reposts were not returned by these searches.
Privacy. Aggregates only. Brands are organization accounts and are named; nothing is said about any individual who mentioned them. Raw search pages were kept in temporary storage and deleted after analysis; the published sample carries no tweet IDs, URLs, text, author IDs or handles. Study files: data/studies/meltwater-alternative/ (protocol, analysis script, results, de-identified sample, chart script).
import os
import sqlite3
import time
import requests
API_KEY = os.environ["TWITTERAPI_IO_KEY"]
BASE = "https://api.twitterapi.io"
BRANDS = ["NotionHQ", "figma", "canva", "SlackHQ", "Zendesk", "HubSpot"]
# One query for every brand: posts that mention any handle, minus the brands' own posts.
QUERY = "(" + " OR ".join(f"@{b}" for b in BRANDS) + ") " + " ".join(f"-from:{b}" for b in BRANDS)
db = sqlite3.connect("mentions.db")
db.execute(
"CREATE TABLE IF NOT EXISTS mention (id TEXT PRIMARY KEY, brand TEXT, created_at TEXT, "
"author TEXT, followers INTEGER, is_reply INTEGER, likes INTEGER, lang TEXT, text TEXT)"
)
def brands_in(tweet):
names = {m.get("screen_name", "").lower() for m in (tweet.get("entities") or {}).get("user_mentions") or []}
return [b for b in BRANDS if b.lower() in names] or ["unmatched"]
def fetch_since(since_unix, max_pages=10):
"""Return every mention posted after since_unix, newest first, following next_cursor."""
out, cursor = [], ""
for _ in range(max_pages):
r = requests.get(
f"{BASE}/twitter/tweet/advanced_search",
headers={"X-API-Key": API_KEY},
params={"query": f"{QUERY} since_time:{since_unix}", "queryType": "Latest", "cursor": cursor},
timeout=30,
)
r.raise_for_status()
body = r.json()
out.extend(body.get("tweets") or [])
if not body.get("has_next_page"):
break
cursor = body.get("next_cursor") or ""
return out
def store(tweets):
new = 0
for t in tweets:
a = t.get("author") or {}
for brand in brands_in(t):
cur = db.execute(
"INSERT OR IGNORE INTO mention VALUES (?,?,?,?,?,?,?,?,?)",
(t["id"], brand, t["createdAt"], a.get("userName"), a.get("followers") or 0,
int(bool(t.get("isReply"))), t.get("likeCount") or 0, t.get("lang"), t.get("text")),
)
new += cur.rowcount
db.commit()
return new
if __name__ == "__main__":
since = int(time.time()) - 3600 # first run: backfill the last hour
while True:
started = int(time.time())
tweets = fetch_since(since)
added = store(tweets)
loud = [t for t in tweets if (t.get("author") or {}).get("followers", 0) >= 10000]
print(f"{len(tweets)} returned, {added} new rows, {len(loud)} from accounts with 10k+ followers")
since = started - 120 # small overlap; the primary key drops duplicates
time.sleep(60)
Questions readers ask
How much does Meltwater cost?
Meltwater does not publish a price. Its pricing page says it "uses tailored pricing rather than a one-size-fits-all list" and that each quote depends on your goals, the modules you choose and the scale of your program. Most agreements are annual with a 12-month minimum, and there may be a one-time onboarding charge. Figures on third-party lists are other buyers' quotes, not list prices.
Does Meltwater still include X (Twitter) data?
Meltwater says it does: the FAQ on its social-listening page says coverage "can include sources like X (Twitter), TikTok brand mentions, Reddit, online news, and more", varying by package and region. It does not publish an X post count or describe full X coverage, so ask what your package includes before relying on it for X.
What is the best Meltwater alternative for X (Twitter) monitoring?
If your listening is mostly X, a pipeline on an X data API is the closest fit: one search for your handles, stored in your own database. In our study, 12 public brands produced 84,000 X mentions a month, which costs $12.60 to collect on TwitterAPI.io (up to $19.08 with checks every 60 seconds). If you need news, broadcast and many networks in one licensed tool, a suite such as Meltwater remains a fit.
Does Meltwater have a free trial?
No self-serve trial, according to its pricing FAQ: "Meltwater does not offer a self-serve free trial". You can request a guided demo. On TwitterAPI.io, new accounts that pass the automatic bot check get up to $1 of free credits (at most 100,000 credits, no card, one per person or network, expiring after 31 days).
How many X mentions does a typical brand get per day?
Fewer than most teams assume. Across 12 public brands in one 24-hour window, the median was 123 @-mentions a day, with a range from 2 to 662 (@Airbnb). 72.6% were replies. Volumes jump on launch and outage days, so measure your own handle for a week before sizing a budget.
Can I get Meltwater-style alerts from an X API?
Yes, for X. Run one combined search such as (@brandA OR @brandB) -from:brandA -from:brandB on /twitter/tweet/advanced_search every minute, or put the same query in a filter rule (/oapi/tweet_filter/add_rule) to have matches pushed to your webhook. Alert a human when author.followers passes a threshold; in our sample, 9.5% of mentions came from accounts with 10,000+ followers.
Is the official X API a cheaper way to replace Meltwater for X?
The official X API publishes a pay-per-usage price of $0.005 per post read (capped at 3 million post reads a month, Enterprise above). For the 84,000 monthly mentions of our 12 brands that is $420.00 a month, versus $12.60 at TwitterAPI.io's $0.15 per 1,000 posts, about 33x less per 1,000 posts.
Who are Meltwater's main competitors?
Other media and social listening suites, such as Brandwatch, Cision and Sprinklr, compete with Meltwater on breadth. For teams whose work is mainly X, the realistic alternative is a different shape of product: a pay-per-data X API plus your own storage, which our Brandwatch alternative and X social-listening build-vs-buy pages also cover.
Continue
- X API pricing: pay-per-usage $0.005 per post read, $0.010 per user read, 3M post reads a month cap
- TwitterAPI.io API reference: advanced search (query operators, since_time/until_time, queryType, cursor, up to 20 per page)
- TwitterAPI.io API reference: add a tweet filter rule (tag, value up to 255 chars, interval_seconds 0.05 to 86400; new rules inactive)
- TwitterAPI.io API reference: update a tweet filter rule (activate with is_effect)
- TwitterAPI.io documentation: authentication with the X-API-Key header and response fields
- Python documentation: sqlite3 (INSERT OR IGNORE storage used by the collector)
- Twitter (X) API overview: endpoints, pricing and rate limits
- Brandwatch alternative: 1,500 brand-keyword posts measured on X
- Social listening via the X API: build vs buy
- How to search mentions on Twitter (X)
- Brand24 vs Mention: the X data cost behind each
- Twitter (X) sentiment analysis on collected mentions
- Twitter (X) webhooks: filter rules and the push payload
- TwitterAPI.io pricing: pay per post returned
- 01TweetGrok Twitter (X) Viewer: What It Is, Whether It Works, and Safer Options
- 02Is X.com (Twitter) Down Right Now, or Is It Just You?
- 03Brandwatch API Explained: Consumer Research vs Engage, Access, and What You Get for Twitter (X)
- 04Sprout Social API in 2026: What It Returns, What It Costs, and Where Twitter (X) Data Runs Out
- 05Upload-Post Alternative for Twitter (X): Post, Read and Search From One API
- 06Zernio Alternative for Twitter (X) Data: Pricing, API Scope and Real Workload Costs
- 07Syften Alternative for Twitter (X) Keyword Alerts: The $40 Add-On vs Pay-Per-Tweet
- 08Topsy Twitter Analytics Alternative — What Replaced It in 2026?
Stop reading. Start building.
Starter credits cover real testing on real data. Google sign-in, no card, no application queue.
Get an API key