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.
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 event | Unit cost | Counts toward monthly cap |
|---|---|---|
| Post delivered on stream | $0.005 per post | Yes |
| Rule add or delete | No charge | No |
| Connection open (idle) | No charge | No |
| Reconnect after disconnect | No charge for reconnect | Posts 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.
Official X documentation lists separate capability tiers for Filtered Stream on pay-per-use versus Enterprise.
| Feature | Pay-per-use | Enterprise |
|---|---|---|
| Active rules per project | 1,000 | 25,000+ |
| Max rule length | 1,024 characters | 2,048 characters |
| Concurrent connections | 1 | Multiple |
| Core keyword operators | Yes | Yes |
Semantic embedding: operator | No | Yes (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.
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.
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.
| Approach | Latency | Billing trigger | Best for |
|---|---|---|---|
| Filtered stream | Seconds | Each delivered post | Real-time alerts on new matches |
| Recent search poll (every 1 min) | Up to 60 seconds | Each post in each response page | Lower infrastructure complexity |
| Trends endpoint poll | Minutes | $0.010 per trends resource | Ranked 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.
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:
embedding: operators that match by meaning, not exact keywordsA 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.
Three product shapes do not require filtered stream or search pagination:
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.
FAQ