X API filtered stream costs under pay-per-use

Filtered Stream delivers posts in real time as they match rule sets. X bills every delivered post at the standard $0.005 read rate, counts each post against the 2 million monthly cap, and limits pay-per-use accounts to 1,000 rules and one connection. This page models stream spend before opening a connection.

Filtered Stream is the real-time path on the X API v2 stack. Posts arrive over a persistent connection as they match active rules. Billing still runs per post delivered, not per connection hour. A monitoring team that treats streaming as unlimited throughput often discovers the 2,000,000 monthly post-read cap before the credit balance runs out.

For per-endpoint rate cards, see X API pay-per-use endpoint costs. For rolling windows and the monthly cap mechanics, see X API rate limits under pay-per-use.

How filtered stream billing works

X charges filtered stream deliveries at the same post-read rate as search results and timeline fetches. Opening the connection is free. Each post object pushed through the stream deducts one post read at $0.005.

Billing eventUnit costCounts toward monthly cap
Post delivered on stream$0.005 per postYes
Rule add or deleteNo chargeNo
Connection open (idle)No chargeNo
Reconnect after disconnectNo charge for reconnectPosts after reconnect bill normally

The stream does not batch posts into a single read. A burst of 500 matching posts in five minutes bills 500 reads ($2.50) regardless of whether they arrived in one TCP session or fifty.

Pay-per-use limits on rules and connections

Official X documentation lists separate capability tiers for Filtered Stream on pay-per-use versus Enterprise.

FeaturePay-per-useEnterprise
Active rules per project1,00025,000+
Max rule length1,024 characters2,048 characters
Concurrent connections1Multiple
Core keyword operatorsYesYes
Semantic embedding: operatorNoYes (Embedding tier)

Pay-per-use teams get filtered stream access, but the 1,000-rule ceiling and single-connection limit push high-cardinality monitors toward Enterprise negotiations. Legacy Pro subscribers who enrolled before the February 2026 switch retained filtered stream on their $5,000/month plan with a separate 2,000,000 read allowance. New developers cannot subscribe to Pro.

Modeling monthly spend from match volume

Stream cost is a function of how many posts match the rule set, not how often the client polls.

Example A: Brand mention monitor

A rule tracks a consumer brand name with moderate volume. The stream delivers 2,000 posts per day.

Example B: Broad keyword on a trending event

A rule matches a viral hashtag during a product launch. Volume spikes to 80,000 posts per day for three days, then settles to 5,000 per day.

Example C: Multi-keyword OR rule near the cap

A single 900-character rule combines 40 OR-clauses for competitor handles. Average match rate hits 120,000 posts per day.

Example C is where Enterprise sales conversations start, either because the cap blocks further reads or because credit spend exceeds negotiated Enterprise bundles.

Stream cost versus polling search

Teams sometimes compare Filtered Stream against GET /2/tweets/search/recent on a timer. Both bill per post returned. The difference is latency and match completeness, not unit price.

ApproachLatencyBilling triggerBest for
Filtered streamSecondsEach delivered postReal-time alerts on new matches
Recent search poll (every 1 min)Up to 60 secondsEach post in each response pageLower infrastructure complexity
Trends endpoint pollMinutes$0.010 per trends resourceRanked topic names by location

A search poll every 60 seconds with max_results=100 returns up to 100 posts per call. At 24 hours of uptime, that is 144,000 post reads maximum ($720/day) if every page fills. A filtered stream with the same match rate bills the same per-post rate but avoids pagination gaps between polls.

For workloads that only need whether a topic appears on the trending list, neither stream nor search is the cheapest path. See monitoring X trending topics on a schedule for polling patterns that skip per-post metering.

When Enterprise filtered stream wins on unit economics

Enterprise contracts start around $42,000 per month in publicly cited procurement ranges. That floor looks expensive against Example A ($300/month stream cost), but the math shifts when pay-per-use hits the cap or when semantic matching reduces false-positive volume.

Enterprise adds:

A compliance product ingesting deletions and suspensions in real time, or a trading desk matching conceptual themes across 10,000 rules, typically cannot operate inside pay-per-use ceilings. A marketing team checking whether a brand name trends on X twice per hour can.

A cheaper path when only topic names matter

Three product shapes do not require filtered stream or search pagination:

  1. Ranked trending list. Poll topic names, diff against a stored set, alert on new entries.
  2. Hourly cadence. Volume stays low enough that either stack works, but a feed API avoids rule maintenance.
  3. Cross-platform validation. Pair X topic spikes with Google Search growth or Reddit signals to test whether a spike is platform-local.

Trends MCP exposes live X trending topics via get_top_trends with type X (Twitter). One POST returns ranked [rank, topic] pairs as JSON. The free tier includes 100 requests per month with no X developer account. Filtered stream remains the right tool when the product needs post text, engagement metrics, author metadata, or sub-second match delivery. When the product only needs topic names on a schedule, per-post stream billing is the wrong cost model.

Common questions

X bills each post delivered through Filtered Stream at the standard post-read rate of $0.005 per resource. A rule that matches 10,000 posts in a day generates $50 in read charges for that day alone. Streamed posts count toward the same 2,000,000 monthly post-read cap as search and timeline endpoints. There is no flat monthly stream subscription on pay-per-use.
Pay-per-use projects can maintain up to 1,000 active rules per project, with each rule capped at 1,024 characters. Only one concurrent stream connection is allowed per project on pay-per-use. Enterprise contracts raise rule counts above 25,000, extend rule length to 2,048 characters, and allow multiple simultaneous connections plus semantic embedding operators.
No on pay-per-use. Streamed posts and polled posts share one monthly post-read counter. A high-velocity stream that delivers 100,000 posts per day reaches the 2,000,000 cap in about 20 days. Further reads require Enterprise provisioning with custom volume terms. Teams should model expected match volume before enabling broad keyword rules.
For ranked trending topic names only, no. Polling the official trends endpoint costs $0.010 per location fetch and returns a topic list without individual post bodies. A filtered stream on a broad keyword like a brand name can deliver thousands of posts per hour at $0.005 each. Trends MCP returns live X trending topics via get_top_trends at one request per poll with no X developer account.