> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vasl.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# REST and webhooks

> Create streams, rotate keys, and hear when a recording finishes.

Your product decides when a session exists. Vasl exposes that as a REST API and as webhooks. The server starts the stream when your app says so.

## What you call

* Create a stream for a session your product already knows
* Rotate publish and play keys
* Hear a webhook when a recording is finished

Keys are the same JWTs described in [Security](/security). A short lifetime is the default shape: the key covers the appointment, then it stops working.

## What you still wire yourself

The API reference, with paths and payloads, lands here when the contract is frozen. Until that page exists, build against the interface you received with the license, and ask [contact@vasl.sh](mailto:contact@vasl.sh) when a call does not match what you were given.

<CardGroup cols={2}>
  <Card title="SDKs" icon="code" href="/sdks">
    Web, iOS, Android, and a server-side client.
  </Card>

  <Card title="Security" icon="key-round" href="/security">
    How those keys, links, and roles fit together.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.