Core API
Recordings
Set record: true when creating a hall and Relay will automatically record the session and upload it to your S3-compatible bucket. You own the file — Relay never stores your media.
Prerequisites
Before using recording, configure your S3 credentials in Dashboard → Settings → Storage. Relay encrypts your credentials at rest using Vault and uses them only at egress time.
Bucket name
The S3 bucket to write recordings to.
Region
e.g. "us-east-1". Required for AWS S3.
Access key ID
IAM user with s3:PutObject on the bucket.
Secret access key
Encrypted with your organisation key in Vault.
Enable recording
Pass record: true when creating a hall:
curl -X POST https://api.relay.dev/v1/halls \
-H "Authorization: Bearer relay_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "recorded-session",
"record": true
}'Recording begins as soon as the hall is created. When the hall is closed (or the last participant leaves), Relay finalises the recording and uploads it to your bucket.
Recording lifecycle
recordingHall is open and recording is in progress.
processingHall closed. Relay is packaging the final file.
completeFile uploaded to your S3 bucket at bucket_path.
failedRecording failed. Check your S3 credentials in Settings.
recording.complete webhook event to know exactly when a file is ready in your bucket — no polling required.The recording object
recording_idstringUnique identifier for this recording.
hall_idstringThe hall this recording belongs to.
statusstringCurrent lifecycle status (see above).
duration_secondsinteger | nullTotal recording duration once complete.
file_size_bytesinteger | nullFile size in bytes once complete.
bucket_pathstring | nullFull S3 key where the file was written, e.g. relay/recordings/h_01j9.../recording.mp4
created_atdatetimeWhen recording started.
completed_atdatetime | nullWhen the file was uploaded to S3.
Storage compatibility
Relay writes recordings using the S3 API. Any S3-compatible object store works: