Roku builds API

The builds API from Roku — 2 operation(s) for builds.

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-schema/external-control-protocol-active-app-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-schema/external-control-protocol-app-list-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-schema/external-control-protocol-app-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-schema/external-control-protocol-device-info-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-schema/external-control-protocol-media-player-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-structure/external-control-protocol-device-info-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-structure/external-control-protocol-app-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-structure/external-control-protocol-app-list-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-structure/external-control-protocol-active-app-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-structure/external-control-protocol-media-player-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-schema/pay-web-services-transaction-validation-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-schema/pay-web-services-refund-validation-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-schema/pay-web-services-cancel-subscription-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-schema/pay-web-services-refund-subscription-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-schema/pay-web-services-update-bill-cycle-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-schema/pay-web-services-issue-credit-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-schema/pay-web-services-subscription-result-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-structure/pay-web-services-transaction-validation-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-structure/pay-web-services-refund-validation-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-structure/pay-web-services-subscription-result-structure.json

Other Resources

OpenAPI Specification

roku-builds-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Roku External Control Protocol (ECP) Apps builds API
  version: '1.0'
  description: 'The External Control Protocol (ECP) is an HTTP-based API exposed on port 8060 of every Roku

    streaming device on the local network. It enables third-party applications, mobile remote-control

    apps, automated testing systems, and home-automation hubs to discover Roku devices via SSDP,

    inject simulated remote-control key presses, launch installed apps with deep-link parameters,

    query device state, and retrieve diagnostic information.


    The protocol is plain HTTP/1.1 (no TLS) and is intended for trusted local-network use only.

    Most control operations require the user to enable "Control by mobile apps" on the device.

    Additional diagnostic endpoints (chanperf, sgnodes, registry, etc.) are gated behind Roku

    Developer Mode.

    '
  contact:
    name: Roku Developer Program
    url: https://developer.roku.com
  x-generated-from: documentation
  x-source-url: https://developer.roku.com/docs/developer-program/dev-tools/external-control-api.md
servers:
- url: http://{rokuDeviceIp}:8060
  description: A Roku device on the local network
  variables:
    rokuDeviceIp:
      default: 192.168.1.100
      description: The IPv4 address of the Roku device, discovered via SSDP
tags:
- name: builds
paths:
  /api/v1/builds:
    get:
      tags:
      - builds
      summary: Roku List All Builds
      operationId: builds-list_builds
      security:
      - Nabu Cloud: []
      parameters:
      - name: items
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000000
          description: The number of items per page. Use 0 for no limit.
          default: 100
          title: Items
        description: The number of items per page. Use 0 for no limit.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          description: The page number. Use 0 for the first page.
          default: 0
          title: Page
        description: The page number. Use 0 for the first page.
      - name: artifactory_path
        in: query
        required: false
        schema:
          type: string
          minLength: 3
          maxLength: 255
          pattern: ^[a-zA-Z0-9_-]*(\/[a-zA-Z0-9._-]+)*(\:[a-zA-Z0-9._-]+)?$
          description: The path of the build in artifactory.
          title: Artifactory Path
        description: The path of the build in artifactory.
      - name: public
        in: query
        required: false
        schema:
          type: boolean
          description: Whether the build is public
          title: Public
        description: Whether the build is public
      - name: source
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/BuildSource'
          description: The source of the build
          examples:
          - official
          - premergeci
        description: The source of the build
      - name: device_type
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DeviceType'
          description: The type of the Device.
          examples:
          - tv
        description: The type of the Device.
      - name: asan
        in: query
        required: false
        schema:
          type: boolean
          description: Whether the build is ASAN
          title: Asan
        description: Whether the build is ASAN
      - name: only_artifactory_path
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          description: Only return the artifactory path of the build
          title: Only Artifactory Path
        description: Only return the artifactory path of the build
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - type: array
                  items:
                    $ref: '#/components/schemas/BuildOut'
                - type: array
                  items:
                    type: string
                title: Response Builds-List Builds
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/builds/{build_id}:
    get:
      tags:
      - builds
      summary: Roku Get Build
      operationId: builds-get_build
      security:
      - Nabu Cloud: []
      parameters:
      - name: build_id
        in: path
        required: true
        schema:
          type: integer
          title: Build Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    DeviceType:
      type: string
      enum:
      - tv
      - stb
      - streambar
      title: DeviceType
    BuildOut:
      properties:
        id:
          type: integer
          title: Id
        artifactory_path:
          type: string
          maxLength: 255
          minLength: 3
          pattern: ^[a-zA-Z0-9_-]*(\/[a-zA-Z0-9._-]+)*(\:[a-zA-Z0-9._-]+)?$
          title: Artifactory Path
          description: The path of the build in artifactory.
        tag:
          type: string
          title: Tag
          description: The tag of the build
        full_version:
          anyOf:
          - type: string
          - type: 'null'
          title: Full Version
          description: The full version of the build
        asan:
          type: boolean
          title: Asan
          description: Whether the build is ASAN
        public:
          type: boolean
          title: Public
          description: Whether the build is public
        source:
          $ref: '#/components/schemas/BuildSource'
          description: The source of the build
          examples:
          - official
          - premergeci
        device_type:
          $ref: '#/components/schemas/DeviceType'
          description: The type of the Device.
          examples:
          - tv
      type: object
      required:
      - id
      - artifactory_path
      - tag
      - full_version
      - asan
      - public
      - source
      - device_type
      title: BuildOut
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    BuildSource:
      type: string
      enum:
      - pre-merge
      - main
      - released
      - alpha
      - misc
      title: BuildSource