Welcome

Every Stream product runs on the same platform: one app, one set of users and auth tokens, one webhook system, one permission model. This section documents those shared mechanics once, so they work the same way whether you're building with Chat, Video, Feeds, or Moderation.

Start here

Whatever you're building, your server ends up doing the same three things:

1

Construct a client

One object, seven languages, every product.

2

Create users

A user is created once and exists in chat, video, feeds and moderation, with a role that determines what they're allowed to do.

3

Sign tokens

Their devices connect with a JWT that only your server can sign.

Identity and access

One app serving many customers? Multi-tenancy and teams keeps them isolated. GDPR and privacy covers export and deletion requests.

Events and notifications

Push has a page for each step: configuring providers, registering devices, per-user preferences and testing and troubleshooting.

Using the API

Reference pages for the request mechanics every product shares:

  • Rate limits: how limits work, reading limit headers and handling 429 responses.
  • Query syntax operators: the filter operators shared by every query endpoint.
  • Async operations: waiting on the long-running tasks that return a task ID.
  • Error handling: the typed exception hierarchy the backend SDKs raise.
  • Logging: structured SDK log events with identical fields in every language.
  • Connection pooling: the HTTP pool and timeout settings the SDKs configure by default.
  • API error codes: every error the API returns, with Stream codes and HTTP statuses.

What stays with each product

Product-specific detail lives in each product's own documentation. Pages here link to those references where they apply:

  • webhook event catalogs
  • per-endpoint rate limit tables
  • permission and capability references
  • push template variables

FAQ

Do users work in every product?

Yes. A user is created once and exists in Chat, Video, Feeds and Moderation.

Can a client call the API without my server?

Clients connect with a JWT that only your server can sign. During development, developer tokens skip the signing.

How do I keep customers separate inside one app?

Teams partition users and their content within a single app.

What happens when I hit a rate limit?

The API returns 429. The rate limits page explains the limit headers and how to back off.

How does my backend find out about events?

Webhooks: signed HTTP callbacks, with SQS and SNS as alternative transports.

Can I read these docs as markdown?

Append .md to any page URL. /llms.txt indexes every page.