# 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.

## What lives here

### Start here

- **[Backend SDKs](https://getstream.io/docs/platform/backend-sdks/)**: the seven server-side SDKs, installation, and constructing the client that every code example in this section assumes.

### Identity and access

- **[Authentication and tokens](https://getstream.io/docs/platform/authentication/)**: creating user tokens on your server, token expiration and revocation, developer tokens.
- **[Users](https://getstream.io/docs/platform/users/)**: creating, updating, querying, deactivating, and deleting the users behind every channel, call, and feed.
- **[Permissions and roles](https://getstream.io/docs/platform/permissions/)**: the subject, resource, and action model, built-in and custom roles, and granting permissions.
- **[Multi-tenancy and teams](https://getstream.io/docs/platform/multi-tenancy/)**: partitioning one app into isolated teams for B2B products.
- **[GDPR and privacy](https://getstream.io/docs/platform/gdpr/)**: exporting and deleting user data to meet compliance requests.

### Events and notifications

- **[Webhooks](https://getstream.io/docs/platform/webhooks/)**: HTTP callbacks, signatures, SQS and SNS integrations, retries, and the IP allowlist.
- **[Push notifications](https://getstream.io/docs/platform/push-notifications/)**: registering devices and configuring APNs, Firebase, Huawei, and Xiaomi providers.

### Using the API

- **[Rate limits](https://getstream.io/docs/platform/rate-limits/)**: how limits work, reading limit headers, and handling 429 responses.
- **[Query syntax operators](https://getstream.io/docs/platform/query-syntax-operators/)**: the filter operators shared by every query endpoint.
- **[Async operations](https://getstream.io/docs/platform/async-operations/)**: waiting on the long-running tasks that return a task ID.
- **[Error handling](https://getstream.io/docs/platform/error-handling/)**: the typed exception hierarchy the backend SDKs raise, including transport errors.
- **[Logging](https://getstream.io/docs/platform/logging/)**: structured SDK log events with identical fields in every language.
- **[Connection pooling](https://getstream.io/docs/platform/connection-pooling/)**: the HTTP pool and timeout settings the SDKs configure by default.
- **[API error codes](https://getstream.io/docs/platform/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: webhook event catalogs, per-endpoint rate limit tables, permission and capability references, and push template variables. Pages here link to those references where they apply.


---

This page was last updated at 2026-08-07T13:10:43.676Z.

For the most recent version of this documentation, visit [https://getstream.io/docs/platform/](https://getstream.io/docs/platform/).