Skip to main content
Version: Beta

Surfaces

GET /surfaces/v1​

List all surfaces

Returns all known surfaces, connected or not, with their current state.

Required scope: read

Example:

GET /api/v2/surfaces/v1

Response body:

{
"data": [
{
"id": "streamdeck:1A2B3C4D",
"type": "Elgato Stream Deck XL",
"integrationType": "elgato-stream-deck",
"name": "Front of house",
"displayName": "Front of house (streamdeck:1A2B3C4D)",
"isConnected": true,
"size": {
"rows": 4,
"columns": 8
},
"brightness": 80,
"page": {
"id": "ggmHXCUQ0RRXUwEr8HHtQ",
"number": 1,
"name": "Main"
},
"groupId": "streamdeck:1A2B3C4D"
}
],
"meta": {
"total": 1,
"limit": 100,
"offset": 0
}
}

Successful response (200) — List of surfaces

Response body (collection):

FieldTypeDescription
idstringUnique surface id.
typestringModel of the surface, as reported by the integration.
integrationTypestringIntegration the surface is connected through.
namestringName given to the surface in Companion.
displayNamestringName shown for the surface in the Companion UI.
isConnectedbooleanWhether the surface is currently connected.
sizeobject | nullButton grid size of the surface, if known.
  ↳ rowsnumberNumber of button rows on the surface.
  ↳ columnsnumberNumber of button columns on the surface.
brightnessnumber | nullBrightness of the surface in percent, or null if it is not set in the surface config.
pageobject | nullPage the surface is currently showing, or null if it is not showing one.
  ↳ idstringUnique page id.
  ↳ numbernumber | nullPosition of the page in the page list, or null if the page is no longer in the list.
  ↳ namestring | nullDisplay name of the page.
groupIdstringId of the surface group the surface belongs to. Note: if not part of a group, this will typically be the same as the id.

GET /surfaces/v1/{surfaceId}​

Get a surface

Returns a single surface by id, connected or not, with its current state.

Required scope: read

Parameters:

ParameterInTypeDescription
surfaceIdpathstringSurface id, as returned by the list surfaces endpoint.

Example:

GET /api/v2/surfaces/v1/streamdeck:1A2B3C4D

Response body:

{
"data": {
"id": "streamdeck:1A2B3C4D",
"type": "Elgato Stream Deck XL",
"integrationType": "elgato-stream-deck",
"name": "Front of house",
"displayName": "Front of house (streamdeck:1A2B3C4D)",
"isConnected": true,
"size": {
"rows": 4,
"columns": 8
},
"brightness": 80,
"page": {
"id": "ggmHXCUQ0RRXUwEr8HHtQ",
"number": 1,
"name": "Main"
},
"groupId": "streamdeck:1A2B3C4D"
}
}

Successful response (200) — The requested surface

Response body:

FieldTypeDescription
idstringUnique surface id.
typestringModel of the surface, as reported by the integration.
integrationTypestringIntegration the surface is connected through.
namestringName given to the surface in Companion.
displayNamestringName shown for the surface in the Companion UI.
isConnectedbooleanWhether the surface is currently connected.
sizeobject | nullButton grid size of the surface, if known.
  ↳ rowsnumberNumber of button rows on the surface.
  ↳ columnsnumberNumber of button columns on the surface.
brightnessnumber | nullBrightness of the surface in percent, or null if it is not set in the surface config.
pageobject | nullPage the surface is currently showing, or null if it is not showing one.
  ↳ idstringUnique page id.
  ↳ numbernumber | nullPosition of the page in the page list, or null if the page is no longer in the list.
  ↳ namestring | nullDisplay name of the page.
groupIdstringId of the surface group the surface belongs to. Note: if not part of a group, this will typically be the same as the id.

PATCH /surfaces/v1/{surfaceId}​

Update a surface

Update a connected surface. Currently only the brightness can be changed.

Required scope: write

Parameters:

ParameterInTypeDescription
surfaceIdpathstringSurface id, as returned by the list surfaces endpoint.

Request body (application/json):

FieldTypeRequiredDescription
brightnessintegerYesBrightness to apply to the surface, in percent.

Example:

PATCH /api/v2/surfaces/v1/streamdeck:1A2B3C4D

Request body:

{
"brightness": 50
}

Response body:

{
"data": {
"id": "streamdeck:1A2B3C4D",
"type": "Elgato Stream Deck XL",
"integrationType": "elgato-stream-deck",
"name": "Front of house",
"displayName": "Front of house (streamdeck:1A2B3C4D)",
"isConnected": true,
"size": {
"rows": 4,
"columns": 8
},
"brightness": 80,
"page": {
"id": "ggmHXCUQ0RRXUwEr8HHtQ",
"number": 1,
"name": "Main"
},
"groupId": "streamdeck:1A2B3C4D"
}
}

Successful response (200) — Updated surface

Response body:

FieldTypeDescription
idstringUnique surface id.
typestringModel of the surface, as reported by the integration.
integrationTypestringIntegration the surface is connected through.
namestringName given to the surface in Companion.
displayNamestringName shown for the surface in the Companion UI.
isConnectedbooleanWhether the surface is currently connected.
sizeobject | nullButton grid size of the surface, if known.
  ↳ rowsnumberNumber of button rows on the surface.
  ↳ columnsnumberNumber of button columns on the surface.
brightnessnumber | nullBrightness of the surface in percent, or null if it is not set in the surface config.
pageobject | nullPage the surface is currently showing, or null if it is not showing one.
  ↳ idstringUnique page id.
  ↳ numbernumber | nullPosition of the page in the page list, or null if the page is no longer in the list.
  ↳ namestring | nullDisplay name of the page.
groupIdstringId of the surface group the surface belongs to. Note: if not part of a group, this will typically be the same as the id.