X Pay-Per-Use Sources

Summary

X is now viable as an AgentInbox host without committing to the old subscription-package model.

The official docs now describe the X API as pay-per-usage with upfront credits, per-endpoint pricing, 24-hour deduplication, and a monthly cap on pay-per-use Post reads. That is enough to support a first x host in AgentInbox, but we should be selective about which stream kinds we expose first.

Tracking issue:

The strongest first source is still a shared public stream:

The most credible follow-up pull sources are:

User-bound or webhook-heavy sources are possible, but should come later:

We should not model raw webhooks as a source kind. In the X docs, webhooks are delivery infrastructure used by specific products such as Account Activity, X Activity, and Filtered Stream webhook delivery.

What The Official Docs Confirm

As of 2026-04-19, the official docs state:

This matters for AgentInbox because it means an X host can be designed around:

Important Product Implications

1. X Fits The Host + Stream Model Well

The current repository direction is already moving toward:

X is a strong fit for this structure because one developer app can back many different feed shapes with different polling or streaming semantics.

Recommended host kind:

Recommended high-level auth variants under the host:

2. Cost Is Part Of Source Design

For X, source selection is not just a transport question. It is also a cost question.

The same user need can often be implemented in multiple ways:

Those options have different:

So the source catalog should expose deliberate stream kinds instead of a generic x_query abstraction.

Candidate Stream Kinds

P0: public shared streams

filtered_stream

Why it should be first:

Operational shape:

Expected stream config:

Recommended normalized metadata:

Design note:

Because pay-per-use filtered stream allows one connection and up to 1,000 rules in the public docs, this is best treated as a shared host-managed stream rather than a per-agent connector.

recent_search

Why it belongs in the catalog:

Operational shape:

Best use cases:

full_archive_search

Why it should exist but not be first:

Recommended role:

P1: public user-oriented pull streams

user_posts

Why it is useful:

Good first-party use cases:

user_mentions

Why it is useful:

Important limit:

list_posts

Possible but lower priority:

I would keep this out of the first implementation unless a concrete product need appears.

P2: user-context personalized streams

home_timeline

This is a real candidate source, but not an early one.

Reasons to defer:

This should only be added when we explicitly want personal-assistant style inboxing of a user's own X feed.

liked_posts

Possible as a user-bound pull source:

This should not be in the first rollout.

bookmarks

Possible but should be treated as private, user-scoped data:

This is a valid later source, especially for "saved for later" assistant workflows.

P3: push products with webhook complexity

account_activity

Why it is attractive:

Why it should not be first:

Product fit:

activity

Why it is interesting:

Why it is risky:

This should stay behind filtered_stream and account_activity.

What We Should Not Model As Sources

These do not look like primary AgentInbox source kinds:

Reason:

Recommended Stream Catalog

Recommended x host stream kinds:

PriorityStream kindAccess styleAuth shapeWhy
P0filtered_streampush or long-lived streamapp authbest real-time shared public source
P0recent_searchpollingapp authsimplest low-risk source
P1full_archive_searchpolling/backfillapp authhistorical bootstrap and research
P1user_postspollingapp authfollow a specific account
P1user_mentionspollingapp auth or user authmention-centric monitoring
P2home_timelinepollinguser authpersonalized private feed
P2liked_postspollinguser authniche user-bound signal
P2bookmarkspollinguser authprivate saved-items workflow
P3account_activitywebhook pushapp auth + webhookowned-account automation
P3activitystream or webhookapp auth + filtersspecialized event products

Recommended Delivery And Normalization Strategy

For the first x host, we should keep the normalization boundary narrow.

Shared envelope fields should include:

Source-specific payloads should remain source-specific.

Examples:

This keeps AgentInbox on its boundary:

Not:

Recommended Rollout

Phase 1

Implement:

Why:

Phase 2

Add:

Why:

Phase 3

Evaluate:

Why:

Risks And Open Questions

1. Public Pricing Is Incomplete

Official docs confirm pay-per-use exists, but they do not publish a stable public per-endpoint rate card. Current rates live in the Developer Console.

Implication:

2. There Is Documentation Ambiguity Around Webhook Availability

The generic Webhooks API docs present webhook infrastructure as a shared layer, while product pages vary in how they describe pay-per-use versus enterprise availability.

Implication:

3. The Reported 2026-04-20 Price Drop Was Not Independently Verified Here

During this research pass, I confirmed the current official pay-per-use model, but I did not find a public official doc page that explicitly states a 2026-04-20 price reduction date.

Implication:

Recommendation

Create an x host, but keep the first implementation narrow:

This aligns with the repository boundary:

Official References