# Server-Side Overview

Parts of Stream Video are configured from your backend rather than from a client SDK. Call types, recording, transcription, webhooks and SIP are all set up with a server-side SDK or the REST API, authenticated with your API secret. That code never runs in your app.

Those pages used to appear in this sidebar. They have moved to the [server-side documentation](https://getstream.io/video/docs/api/), which has its own section, so the pages here stay focused on the code you ship to your users.

## What the server-side docs cover

| Section                                                      | Covers                                                                            |
| ------------------------------------------------------------ | --------------------------------------------------------------------------------- |
| [Users and tokens](https://getstream.io/video/docs/api/authentication/)          | Creating users, generating the tokens your client connects with                   |
| [Call types](https://getstream.io/video/docs/api/call-types/builtin/)            | Defaults, permissions, geofencing and settings that apply to every call of a type |
| [Streaming](https://getstream.io/video/docs/api/streaming/overview/)             | Backstage, RTMP, WHIP and SRT ingress, HLS output                                 |
| [Recording](https://getstream.io/video/docs/api/recording/introduction/)         | Composite, individual track, raw and frame recording, plus storage                |
| [Transcription](https://getstream.io/video/docs/api/transcribing/calls/)         | Transcriptions, captions and where they are stored                                |
| [SIP](https://getstream.io/video/docs/api/sip/overview/)                         | Inbound trunks, DTMF, Twilio and Telnyx integrations                              |
| [Webhooks](https://getstream.io/video/docs/api/webhooks/overview/)               | Event delivery, the event catalogue, SQS and SNS                                  |
| [Quality](https://getstream.io/video/docs/api/quality/introduction/)             | Latency, networking and firewall rules, connection tests, stats                   |
| [Analytics](https://getstream.io/video/docs/api/analytics/call-attendance/)      | Call attendance, participant metrics, user feedback                               |
| [Asynchronous operations](https://getstream.io/video/docs/api/async-operations/) | Monitoring the long-running tasks that return a task ID                           |
| [Rate limits](https://getstream.io/video/docs/api/rate-limits/)                  | Per-endpoint and per-platform limits, headers, raising them                       |
| [Moderation](https://getstream.io/video/docs/api/moderation/overview/)           | Audio and video moderation                                                        |
| [GDPR and privacy](https://getstream.io/video/docs/api/gdpr/overview/)           | Deleting user and call data                                                       |

## Languages

Every server-side page has code tabs for Node.js, Python, Go, Java and cURL. Pick your backend language at the top of each example.

<Admonition type="note">

If you landed here because your client cannot connect, token generation is the usual cause. Tokens must be signed with your API secret on your server. Start with [Users and tokens](https://getstream.io/video/docs/api/authentication/).

</Admonition>


---

This page was last updated at 2026-07-30T15:20:32.267Z.

For the most recent version of this documentation, visit [https://getstream.io/video/docs/ios/server-side/](https://getstream.io/video/docs/ios/server-side/).