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:
One object, seven languages, every product.
A user is created once and exists in chat, video, feeds and moderation, with a role that determines what they're allowed to do.
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.