Skip to main content

GRPC

Services

LayerService

Layers

Method NameRequest TypeResponse TypeDescription
ListLayersListLayersRequestListLayersResponseList all layers
CreateLayerCreateLayerRequestLayerCreate a layer

GetLayerGetLayerRequestLayerGet a single layer

UpdateLayerUpdateLayerRequestLayerUpdate a layer

DeleteLayerDeleteLayerRequestDeleteLayerResponseDelete a layer
BatchBatchLayerRequestBatchLayerResponseBatch update

LayoutService

Layouts

Method NameRequest TypeResponse TypeDescription
ListLayoutsListLayoutsRequestListLayoutsResponseGet all layouts owned by the user.
CreateLayoutCreateLayoutRequestLayoutCreate a new layout

GetLayoutGetLayoutRequestLayoutGet a layout

UpdateLayoutUpdateLayoutRequestLayoutUpdate a layout

DeleteLayoutDeleteLayoutRequestDeleteLayoutResponseDelete a layout

Messages

BatchDeleteLayerRequest

FieldTypeLabelDescription
idstringID of the layer deleted.
request_metadatagoogle.protobuf.ValueoptionalMetadata associated with the deletion of a layer

BatchLayerRequest

Batch request to modify a layout.

FieldTypeLabelDescription
layout_idstringThe layout all requests interact with.
layersBatchLayerRequest.BatchItemrepeatedList of layers to update
request_metadatagoogle.protobuf.ValueoptionalMetadata sent with the request
request_animation_modeRequestAnimationModeoptionalOrder in which layer animations are applied in the batch.

BatchLayerRequest.BatchItem

A batch action.

FieldTypeLabelDescription
createPartialLayerCreate a layer
updatePartialLayerWithIDUpdate a layer
deleteBatchDeleteLayerRequestDelete a layer

BatchLayerResponse

A batch update for layers within a layout, indicating creation, removal and updates to layers.

FieldTypeLabelDescription
layersBatchLayerResponse.BatchLayerItemrepeatedList of responses
layout_idstringThe layout this batch update belongs to.
request_metadatagoogle.protobuf.ValueoptionalMetadata sent with the request
request_animation_modeRequestAnimationModeOrder in which layer animations are applied in the batch.

BatchLayerResponse.BatchLayerItem

Thee result of interacting with that layer.

FieldTypeLabelDescription
createLayer
updateLayer
deleteDeleteLayerResponse

CreateLayerRequest

FieldTypeLabelDescription
layout_idstringthe id of the Layout
layerPartialLayerlayer to create - all fields have defaults except type.

CreateLayoutRequest

FieldTypeLabelDescription
layoutPartialLayoutlayout to create

DeleteLayerPayload

FieldTypeLabelDescription
request_metadatagoogle.protobuf.ValueoptionalMetadata associated with the deletion of a layer

DeleteLayerRequest

Request to delete a specific layer.

FieldTypeLabelDescription
layout_idstringthe id of the Layout
layer_idstringthe id of the Layer
payloadDeleteLayerPayloadoptionalMetadata associated with the deletion of a layer

DeleteLayerResponse

FieldTypeLabelDescription
idstringThe layer id that was deleted
layout_idstringThe layout this layer belongs to.
request_metadatagoogle.protobuf.ValueoptionalOptional request metadata sent with the delete request

DeleteLayoutPayload

FieldTypeLabelDescription
request_metadatagoogle.protobuf.ValueoptionalMetadata associated with the deletion of the layout

DeleteLayoutRequest

Request to delete a specific layout.

FieldTypeLabelDescription
layout_idstringthe id of the Layout
payloadDeleteLayoutPayloadoptionalMetadata associated with the deletion of a layout

DeleteLayoutResponse

FieldTypeLabelDescription
idstringThe ID of the layout deleted
request_metadatagoogle.protobuf.ValueoptionalMetadata associated with the deletion of a layout

Event

Event structure for an event sent from the layout api via the event api

FieldTypeLabelDescription
layoutLayoutEvent
layerLayerEvent

GetLayerRequest

FieldTypeLabelDescription
layout_idstringthe id of the Layout
layer_idstringthe id of the Layer

GetLayoutRequest

FieldTypeLabelDescription
layout_idstringthe id of the Layout

Layer

The Layer represents a single item within a layout.

FieldTypeLabelDescription
typestringthe type of layer we're interacting with: e.g alert, banner
datagoogle.protobuf.StructCustom value for the layer. This is freeform.
xgoogle.protobuf.Valuex position in pixels. This can be null if the layer has no absolute position.
ygoogle.protobuf.Valuey position in pixels. Can be null if the layer has no absolute position.
widthgoogle.protobuf.Valuewidth in pixels of the layer. can be null if the layer is dynamically sizable.
heightgoogle.protobuf.Valueheight in pixels of the layer. can be null if the layer is dynamically sizable.
rotationdoublerotation of layer in degrees of the layer.
opacitydoubleopacity of the layer. This is the same as the CSS value, 0 being transparent and 1 being opaque.
scaledoubleScale of the layer. This is expontential, with 1 equaling the normal size of the layer.
note: width/height will be affected.
hiddenboolwhether the layer should be rendered.
childrengoogle.protobuf.ListValuechildren of the layer.
metadatagoogle.protobuf.ValueCustom metadata for the layer. This is freeform.
idstringid of the layer
layout_idstringthe layout this layer is associated with.
request_metadatagoogle.protobuf.ValueoptionalMetadata sent with the request
request_animationLayerAnimationrepeatedAnimation information for the layer which should be applied on update.

LayerAnimation

Represents how we should apply the action, transitioning from the current state to the new state. If multiple LayerAnimation's are defined, the final LayerAnimation will be used that has a matching property!

note: this is currently only supported where layout type is "scene".

FieldTypeLabelDescription
propertiesstringrepeatedThe properties to animate on. Currently x, y, width, height, opacity and scale are supported. "*" can be used to target all properties.
duration_msint32The duration to transition over in milliseconds
delay_msint32optionalA delay to offset the animation by.
easing_modestringoptionalThe easing mode for the transition.
This value can be anything supported as an easing function: https://developer.mozilla.org/en-US/docs/Web/CSS/easing-function

LayerEvent

FieldTypeLabelDescription
createLayerNew layer added
updateLayerExisting layer updated
deleteDeleteLayerResponseExisting layer destroyed
batchBatchLayerResponseBatch events

Layout

A Layout represents a container for multiple layers.

FieldTypeLabelDescription
idstringinternal ID for the layout
widthint32width of the layout in pixels
heightint32height of the layout in pixels
metadatagoogle.protobuf.ValueoptionalCustom metadata for the layout. This is freeform.
project_idstringoptional
collection_idstringoptional
typeLayoutTypeoptional
transitionsTransitionrepeatedTransitions to apply when switching to this scene from another
note: this is only available for layouts of type LAYOUT_TYPE_SCENE.
request_metadatagoogle.protobuf.ValueoptionalMetadata sent with the request

LayoutEvent

FieldTypeLabelDescription
createLayoutNew layout created
updateLayoutExisting layout updated
deleteDeleteLayoutResponseExisting layout destroyed

ListLayersRequest

FieldTypeLabelDescription
layout_idstringthe id of the Layout

ListLayersResponse

FieldTypeLabelDescription
layersLayerrepeatedlist of all layers

ListLayoutsRequest

Filter options for listing layouts. Each request parameter will filter the response down (AND)

FieldTypeLabelDescription
project_idstringoptional
collection_idstringoptional
typeLayoutTypeoptional

ListLayoutsResponse

FieldTypeLabelDescription
layoutsLayoutrepeatedAll layouts returned.

PartialLayer

Partial Layer for creating and updating.

FieldTypeLabelDescription
typestringoptionalthe type of layer we're interacting with: e.g alert, banner
datagoogle.protobuf.StructoptionalCustom value for the layer. This is freeform.
xgoogle.protobuf.Valuex position in pixels. This can be null if the layer has no absolute position.
ygoogle.protobuf.Valuey position in pixels. Can be null if the layer has no absolute position.
widthgoogle.protobuf.Valuewidth in pixels of the layer. can be null if the layer is dynamically sizable.
heightgoogle.protobuf.Valueheight in pixels of the layer. can be null if the layer is dynamically sizable.
rotationdoubleoptionalrotation of layer in degrees of the layer.
opacitydoubleoptionalopacity of the layer. This is the same as the CSS value, 0 being transparent and 1 being opaque.
scaledoubleoptionalScale of the layer. This is expontential, with 1 equaling the normal size of the layer.
note: width/height will be affected.
hiddenbooloptionalwhether the layer should be rendered.
childrengoogle.protobuf.ListValueoptionalchildren of the layer.
parent_idstringoptionalparent layer to asssign to.
metadatagoogle.protobuf.Value
request_metadatagoogle.protobuf.ValueoptionalMetadata sent with the request
request_animationLayerAnimationrepeatedAnimation information for the layer.

PartialLayerWithID

Partial Layer for updating.

FieldTypeLabelDescription
idstringID of the layer.
typestringoptionalthe type of layer we're interacting with: e.g alert, banner
datagoogle.protobuf.StructoptionalCustom value for the layer. This is freeform.
xgoogle.protobuf.Valuex position in pixels. This can be null if the layer has no absolute position.
ygoogle.protobuf.Valuey position in pixels. Can be null if the layer has no absolute position.
widthgoogle.protobuf.Valuewidth in pixels of the layer. can be null if the layer is dynamically sizable.
heightgoogle.protobuf.Valueheight in pixels of the layer. can be null if the layer is dynamically sizable.
rotationdoubleoptionalrotation of layer in degrees of the layer.
opacitydoubleoptionalopacity of the layer. This is the same as the CSS value, 0 being transparent and 1 being opaque.
scaledoubleoptionalScale of the layer. This is expontential, with 1 equaling the normal size of the layer.
note: width/height will be affected.
hiddenbooloptionalwhether the layer should be rendered.
childrengoogle.protobuf.ListValueoptionalchildren of the layer.
parent_idstringoptionalparent layer to asssign to.
metadatagoogle.protobuf.Value
request_metadatagoogle.protobuf.ValueoptionalMetadata sent with the request
request_animationLayerAnimationrepeatedAnimation information for the layer.

PartialLayout

Partial layout

FieldTypeLabelDescription
widthint32optionalwidth of the layer in pixels
heightint32optionalheight of the layer in pixels
metadatagoogle.protobuf.ValueoptionalMetadata associated with a layout. This is freeform JSON.
project_idstringoptionalProject ID from the Live API for the layout
note: this cannot be changed for existing layouts.
collection_idstringoptionalCollection ID from the Live API for the layout
note: this cannot be changed once set.
typeLayoutTypeoptionalThe type of layout to use.
Typically you should use LAYOUT_TYPE_SCENE to manage layouts via the API. This automatically
creates a "root" layer for all layers to be under.
LAYOUT_TYPE_SCENELESS is used for layouts managed by the Studio SDK.
transitionsTransitionrepeatedTransitions to apply when switching to this scene from another
note: this is only available for layouts of type LAYOUT_TYPE_SCENE.
request_metadatagoogle.protobuf.ValueoptionalMetadata associated with the publishing of the event

Transition

Transition defines a transition into this layout.

FieldTypeLabelDescription
from_layout_idsstringrepeatedA list of layout IDs to apply this transition to. If empty,
this transition will apply to all scene switches which do not have a matching transition.
If multiple transitions match (e.g multiple targetting the layout), a transition will be chosen at random.
cutTransition.TransitionCut
crossfadeTransition.TransitionCrossfade
fade_to_colorTransition.TransitionFadeToColor
swipeTransition.TransitionSwipe
stingerTransition.TransitionStinger

Transition.TransitionCrossfade

Transition: crossfade between two layouts.

FieldTypeLabelDescription
duration_msint32The duration to animate over.

Transition.TransitionCut

Transition: a simple scene switch. this is the default transition.

Transition.TransitionFadeToColor

Transition: Fade to a color before transitioning to another layout.

FieldTypeLabelDescription
duration_msint32The duration to animate over. The fade to color will take half this duration.
background_colorstringA CSS-compatible background color.

Transition.TransitionMediaType

Media definition

FieldTypeLabelDescription
urlstringExternal URL to the media content.
volumedoubleVolume to play the media at between 0 and 1.

Transition.TransitionStinger

Transition: stinger animation.

FieldTypeLabelDescription
cutTransition.TransitionStingerCut

Transition.TransitionStingerCut

Stinger where the layout is cut over at a specific point.

FieldTypeLabelDescription
cut_point_msint32The duration from the start of the media playing at which the layout should change.
this should be a point where the entire screen is filled.
mediaTransition.TransitionMediaTypeThe remote media to play as the stinger.

Transition.TransitionSwipe

Transition: Animation where layouts are slide over another.

FieldTypeLabelDescription
duration_msint32The duration to animate over.
directionTransition.TransitionDirectionThe direction to swipe the layer from.
combined_animationTransition.TransitionSwipeTypeHow to animate the slide.

UpdateLayerRequest

FieldTypeLabelDescription
layout_idstringthe id of the Layout
layer_idstringthe id of the Layer
layerPartialLayerlayer data to update with.

UpdateLayoutRequest

FieldTypeLabelDescription
layout_idstringthe id of the Layout
layoutPartialLayoutlayout data to update with.

Enums

EventSubType

NameNumberDescription
EVENT_SUB_TYPE_UNSPECIFIED0
EVENT_SUB_TYPE_CREATE1
EVENT_SUB_TYPE_UPDATE2
EVENT_SUB_TYPE_DELETE3
EVENT_SUB_TYPE_BATCH4

EventType

NameNumberDescription
EVENT_TYPE_UNSPECIFIED0
EVENT_TYPE_LAYOUT1
EVENT_TYPE_LAYER2

LayoutType

The type of layout, specifying how it functions.

NameNumberDescription
LAYOUT_TYPE_UNSPECIFIED0
LAYOUT_TYPE_SCENELESS1A layout managed by Studio Kit
LAYOUT_TYPE_SCENE2A layout managed via the layout API for use with our scene-based renderer.

RequestAnimationMode

Define how to apply animations in a batch request.

NameNumberDescription
REQUEST_ANIMATION_MODE_UNSPECIFIED0
REQUEST_ANIMATION_MODE_PARALLEL1All animations in the batch will be applied at once.
REQUEST_ANIMATION_MODE_SERIES2Each layer update will appy after all animations on the previous layer(s) have completed.

Transition.TransitionDirection

Direction for the animation to display in.

NameNumberDescription
TRANSITION_DIRECTION_UNSPECIFIED0
TRANSITION_DIRECTION_LEFT1
TRANSITION_DIRECTION_RIGHT2
TRANSITION_DIRECTION_UP3
TRANSITION_DIRECTION_DOWN4

Transition.TransitionSwipeType

NameNumberDescription
TRANSITION_SWIPE_TYPE_UNSPECIFIED0Both layouts are animated together
TRANSITION_SWIPE_TYPE_COMBINED1Both layouts are animated together
TRANSITION_SWIPE_TYPE_SOURCE2The source animation is moved out of the way
TRANSITION_SWIPE_TYPE_DESTINATION3The destination layout is overlaid

Scalar Value Types (Reference)

.proto TypeNotesC++JavaPythonGoC#PHPRuby
doubledoubledoublefloatfloat64doublefloatFloat
floatfloatfloatfloatfloat32floatfloatFloat
int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)