Callaba
Toggle documentation navigation
Callaba home

AV mixers

The AV Mixer API is the released Callaba 8.8 reference for creating saved mixers, preparing Preview, starting Program, taking a scene, and reading runtime or audio state.

What it doesOperate a prepared AV Mixer workflow

Choose this whenA Callaba 8.8 AV Mixer workflow is already proven in the UI and a developer needs bounded automation for Preview, Program, outputs, recording, or observation.

Use another module whenUse the remote-production workflow guidance when the production design is not yet proven; do not use public methods as a general administration path.

1Prepare Preview2Start or take Program3Observe the selected output
POST /api/av-mixers/create
47 endpoints

Choose the right operation

  1. Use create or update to store mixer configuration. Neither route starts Program.
  2. Use updateState to prepare Preview, then start when the mixer is enabled and Preview has a configured video layer.
  3. Use take to move Preview to Program with CUT or FADE.
  4. Use runtime, statistics, meters, output, recording, and diagnostic methods to operate or observe the running mixer.

Owner and public access

Owner routes use x-access-token. Most single-session operational mutations also require x-av-mixer-session and x-av-mixer-control-epoch; the method pages identify those cases. Create, update, enable, disable, remove, start, and stop can use the documented temporary management-lease exception when no operator lease is active. Do not infer a client-side claim flow from this reference: the live API does not publish /control/*.

The separately labelled /api/av-mixers-public read routes do not use the owner API key; they require PUBLIC visibility and an enabled mixer. Public take and update also require the relevant saved public permission. A public link is not a general administration credential. The invitation-redemption route instead uses its opaque invite token as the credential.

Related references

Read Authorization for owner authentication. Use Video calls when assigning conference tracks, and SRT servers for transport endpoints. Phone and browser token responses are credentials: use placeholders in requests and never publish returned values.

Scope

This module documents the AV Mixer operations present in the released API reference. It does not document source-only /control/* or /studio/* routes.

Next steps

Choose a saved mixer, confirm its access boundary, then start with one narrowly scoped request. Keep returned browser, conference, and phone-publish credentials out of source control and logs.

REST solution recipe

Inspect a configured mixer before automating a take

Read the saved mixer and its runtime first, prepare Preview deliberately, then take only after Program is started and the configured control session is available.

  1. Read the saved mixerConfirm the selected mixer, its scenes, inputs, outputs, and saved Preview configuration.POST /api/av-mixers/getById
  2. Check the current runtimeUse runtime state to see whether Program is already running before changing prepared state.POST /api/av-mixers/runtime
  3. Prepare PreviewUpdate the intended Preview state without treating that preparation as a Program take.POST /api/av-mixers/updateState
  4. Take the prepared sceneOnly send the take when Preview has a configured video layer, Program is started, and the required control session is held.POST /api/av-mixers/take
  5. Inspect the resultRead runtime again and verify the resulting state in the operator workflow before the next automated action.POST /api/av-mixers/runtime

This is an inspection and preparation sequence, not a live-execution recipe. A take needs a configured Preview video layer, a started Program, and the applicable control-session headers for a single-session mixer.

POST
/api/av-mixers/create
API token required

Create the saved mixer first. Creation stores configuration only; it does not start Program.

Configuration objects

FieldUse
inputs[]Each input requires name and type. Reference existing input and source identifiers; source-specific settings are not a closed portable schema.
scenes[]Each scene requires id and name. Its layers[] use id, name, source_id, visible, and opacity (a number from 0 to 1) from the released schema.
outputs[]Output objects use id, name, type, enabled, and endpoint-specific settings.
canvas_settings, performance_settings, audio_mixer_stateThese objects remain open beyond their released properties. Use only properties supported by the request schema; do not copy dashboard prefills as server defaults.

Success

Returns 201 with the updated mixer object. The displayed response example is illustrative; rely only on fields declared in the response table.

Next steps

Review Authorization before sending owner requests. For mixer lifecycle and scene operations, continue with the related method in this AV Mixer reference.

Request body parameters
Optional
id
string
Copy direct link

Mixer identifier. Optional.

Required
name
string
Copy direct link

Human-readable mixer name. Required.

Optional
visibility
string (PRIVATE | PUBLIC)
Copy direct link

Saved access visibility: PRIVATE or PUBLIC. Optional.

enabled
boolean
Copy direct link

Whether the saved mixer is enabled for operation. Optional.

inputs
array
Copy direct link

Input definitions to store with the mixer. Optional.

scenes
array
Copy direct link

Scene definitions to store with the mixer. Optional.

outputs
array
Copy direct link

Output definitions to store with the mixer. Optional.

active_scene_id
string
Copy direct link

Scene currently assigned to Program. Optional.

preview_scene_id
string
Copy direct link

Scene currently assigned to Preview. Optional.

canvas_settings
object
Copy direct link

Canvas configuration object; use only fields supported by the released schema. Optional.

performance_settings
object
Copy direct link

Performance configuration object; use only fields supported by the released schema. Optional.

audio_mixer_state
object
Copy direct link

Saved audio mixer state object. Optional.

Create an AV mixer
curl --request POST \
  --url 'https://your-callaba-server.example/api/av-mixers/create' \
  --header 'Content-Type: application/json' \
  --header 'x-access-token: <your_api_token>' \
  --data '{
  "name": "Example mixer",
  "visibility": "PRIVATE"
}'
Response
Response
id
string
Copy direct link

Mixer identifier.

name
string
Copy direct link

Human-readable mixer name.

visibility
string (PRIVATE | PUBLIC)
Copy direct link

Saved access visibility: PRIVATE or PUBLIC.

enabled
boolean
Copy direct link

Whether the saved mixer is enabled for operation.

active
boolean
Copy direct link

Whether the mixer is currently active.

status
string
Copy direct link

Persisted mixer lifecycle status.

engine_id
string
Copy direct link

Identifier of the assigned engine when one is present.

active_scene_id
string
Copy direct link

Scene currently assigned to Program.

preview_scene_id
string
Copy direct link

Scene currently assigned to Preview.

layout_preset
string
Copy direct link

Saved layout preset name.

canvas_settings
object
Copy direct link

Canvas configuration object; use only fields supported by the released schema.

performance_settings
object
Copy direct link

Performance configuration object; use only fields supported by the released schema.

inputs
array
Copy direct link

Input definitions to store with the mixer.

scenes
array
Copy direct link

Scene definitions to store with the mixer.

outputs
array
Copy direct link

Output definitions to store with the mixer.

audio_mixer_state
object
Copy direct link

Saved audio mixer state object.

sync_presets
array
Copy direct link

Saved synchronization presets.

engine_state
object
Copy direct link

Current or saved engine state object when returned.

recording_state
object
Copy direct link

Current or saved recording state object when returned.

created
string
Copy direct link

Creation timestamp supplied by the service.

modified
string
Copy direct link

Last-modified timestamp supplied by the service.

Response: Create an AV mixer
{
  "id": "64f1c2e77393ab0012345678",
  "name": "Studio mixer"
}
POST
/api/av-mixers/getById
API token required
POST
/api/av-mixers/getAll
API token required
POST
/api/av-mixers/getCount
API token required
POST
/api/av-mixers/update
API token required
POST
/api/av-mixers/enable
API token required
POST
/api/av-mixers/disable
API token required
DELETE
/api/av-mixers/remove
API token required
POST
/api/av-mixers/updateState
API token required
POST
/api/av-mixers/start
API token required
POST
/api/av-mixers/take
API token required
POST
/api/av-mixers/stop
API token required
POST
/api/av-mixers/previewPlayback
API token required
POST
/api/av-mixers/scanSources
API token required
POST
/api/av-mixers/videoCalls
API token required
POST
/api/av-mixers/primeInput
API token required
POST
/api/av-mixers/detectSync
API token required
POST
/api/av-mixers/browserToken
API token required
POST
/api/av-mixers/videoCallToken
API token required
POST
/api/av-mixers/createPhonePublishSession
API token required
POST
/api/av-mixers/cancelPhonePublishSession
API token required
POST
/api/av-mixers/audioMeters
API token required
POST
/api/av-mixers/audioMonitor
API token required
POST
/api/av-mixers/audioMonitorVolumes
API token required
POST
/api/av-mixers/programAudio
API token required
POST
/api/av-mixers/outputs/publishState
API token required
POST
/api/av-mixers/recording/start
API token required
POST
/api/av-mixers/recording/stop
API token required
POST
/api/av-mixers/runtime
API token required
POST
/api/av-mixers/getStat
API token required
POST
/api/av-mixers/cameraReset
API token required
POST
/api/av-mixers/wakeSource
API token required
POST
/api/av-mixers/sourceDemand
API token required
POST
/api/av-mixers/projectFiles/remove
API token required
GET
/api/av-mixers/audioLogs
API token required
POST
/api/av-mixers/audioLogs
API token required
GET
/api/av-mixers/audio-controller/logs
API token required
POST
/api/av-mixers/audio-controller/logs
API token required
POST
/api/av-mixers/audioLogs/clear
API token required
POST
/api/av-mixers/audio-controller/logs/clear
API token required
POST
/api/av-mixers/requestLog
API token required
POST
/api/av-mixers/clientEvent
API token required
POST
/api/av-mixers-public/getById
Public endpoint
POST
/api/av-mixers-public/redeemPhonePublishSession
Public endpoint
POST
/api/av-mixers-public/runtime
Public endpoint
POST
/api/av-mixers-public/take
Public endpoint
POST
/api/av-mixers-public/update
Public endpoint