Projects

Update a project

Update project settings. Only fields included in the request body will be changed.

Field Availability

Fields behave differently depending on whether the project has an active stream:

FieldOfflineActive StreamNotes
name✅✅Project name (internal)
title✅✅ + syncSyncs to YouTube/Facebook
description✅✅ + syncSyncs to YouTube/Facebook
privacyStatus✅✅ + syncSyncs to YouTube/Facebook
format✅❌Video resolution
duration✅❌Stream duration
audioQuality✅❌Audio bitrate
destinationIds✅❌Streaming destinations
youtubeAdvancedSettings✅❌YouTube-specific settings

Legend:

  • ✅ = Can update
  • ✅ + sync = Can update, changes sync to streaming platforms (YouTube, Facebook, etc.) in real-time
  • ❌ = Returns LIVE_PROJECT_RESTRICTION error

What is an "Active Stream"?

A project has an active stream when its status is LIVE, PREPARING, or SCHEDULED.

Platform Sync

When you update title, description, or privacyStatus on a live project, changes are automatically pushed to YouTube, Facebook, and other connected platforms. This lets you update stream metadata without stopping the broadcast.

Important Notes

  • Destinations: Setting destinationIds replaces ALL existing destinations. Use empty array [] to clear.
patch/projects/{id}

Request

  • Base URL: https://api.livereacting.com/v1/external
  • URL: https://api.livereacting.com/v1/external/projects/{id}
  • Auth: HTTP bearer

Path parameters

idstring required
Example:507f1f77bcf86cd799439011

Project ID

Request body

namestring

Project name (1-60 characters)

titlestring

Stream title (max 100 characters)

descriptionstring

Stream description (max 5000 characters)

format'1:1' | '1:1_720p' | '1:1_1080p' | '1:1_2160p' | '9:16' | '9:16_720p' | '9:16_1080p' | '9:16_2160p' | '16:9' | '16:9_720p' | '16:9_1080p' | '16:9_2160p' | '1:2' | '1:2_720p' | '1:2_1080p' | '1:2_2160p'

Video format string. Note - responses return format as an object { aspectRatio, resolution } for clarity.

Changing the format does not resize layers. Layer position is read in the format at the time of the request, so set the format before you create or update layers.

audioQuality'128k' | '256k' | '320k'

Audio quality setting

destinationIdsstring[]

Array of destination IDs. Replaces ALL existing destinations.

autoSynchboolean

When true, changes to project are automatically synced to active live stream

Example request

{
  "name": "Updated Project Name",
  "title": "New Stream Title",
  "description": "Updated description",
  "format": "16:9_1080p",
  "duration": {
    "planned": 3600
  },
  "audioQuality": "256k",
  "privacyStatus": {
    "youtube": "public",
    "facebook": "EVERYONE"
  },
  "destinationIds": [
    "UCe9N2dd_IxzoffgkzeYgghw"
  ],
  "youtubeAdvancedSettings": {
    "tags": [
      "gaming",
      "live stream",
      "entertainment"
    ]
  },
  "autoSynch": true
}

Response

Project updated successfully

idstring

Unique project identifier

namestring nullable

Project name

titlestring nullable

Stream title

descriptionstring nullable

Stream description

createdAtstring date-time nullable

Project creation date

audioQuality'128k' | '256k' | '320k'

Audio quality setting

autoSynchboolean

When true, changes to project are automatically synced to active live stream

maxFps30 | 60

Maximum frames per second for this project. Read-only (set via platform UI).

customBitrateinteger nullable

Custom streaming bitrate in kbps. Read-only (set via platform UI). Null when using default.

Example response

{
  "id": "507f1f77bcf86cd799439011",
  "name": "My Project",
  "title": "Stream Title",
  "description": "About this stream",
  "format": {
    "aspectRatio": "16:9",
    "resolution": "1920x1080"
  },
  "createdAt": "2026-01-23T10:00:00Z",
  "audioQuality": "128k",
  "maxFps": 30,
  "privacyStatus": {
    "youtube": "public",
    "facebook": "EVERYONE"
  },
  "destinations": [
    {
      "provider": "youtube",
      "name": "My YouTube Channel"
    }
  ],
  "youtubeAdvancedSettings": {
    "tags": [
      "gaming",
      "live stream",
      "entertainment"
    ]
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.