Roku Subscription API

Subscription lifecycle management

Operations 2

POST /cancel-subscription Roku Cancel Subscription #
POST /refund-subscription Roku Refund Subscription #

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

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/roku-subscription-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

roku-subscription-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Roku Pay Web Services Subscription API
  version: '1.0'
  description: 'Roku Pay Web Services provide server-to-server APIs for billing, subscription management,

    transaction validation, and entitlement checks for monetized Roku channels. Use these endpoints

    to verify that a Roku user holds a valid entitlement to your content, to issue refunds, to update

    billing cycles, and to grant service credits. All endpoints require a Roku-issued Partner API

    Key.


    Roku Pay handles payment processing, subscription state, and tax calculation on behalf of the

    publisher; channels query these endpoints from their authentication backends rather than from

    BrightScript directly.

    '
  contact:
    name: Roku Pay Support
    url: https://developer.roku.com/docs/developer-program/roku-pay/overview.md
  x-generated-from: documentation
  x-source-url: https://developer.roku.com/dev/docs/roku-web-service
servers:
- url: https://apipub.roku.com/listen/transaction-service.svc
  description: Roku Pay production transaction service
security:
- PartnerAPIKey: []
tags:
- name: Subscription
  description: Subscription lifecycle management
paths:
  /cancel-subscription:
    post:
      operationId: cancelSubscription
      summary: Roku Cancel Subscription
      description: Terminates a Roku Pay subscription. After cancellation the entitlement remains active until the end of the current billing period.
      tags:
      - Subscription
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelSubscriptionRequest'
      responses:
        '200':
          description: Cancellation status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionResult'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/Error'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /refund-subscription:
    post:
      operationId: refundSubscription
      summary: Roku Refund Subscription
      description: Issues a partial or full refund against a Roku Pay subscription.
      tags:
      - Subscription
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundSubscriptionRequest'
      responses:
        '200':
          description: Refund result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionResult'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/Error'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    RefundSubscriptionRequest:
      type: object
      required:
      - partnerAPIKey
      - rokuCustomerId
      - transactionId
      x-schema-source: documentation
      properties:
        partnerAPIKey:
          type: string
        rokuCustomerId:
          type: string
        transactionId:
          type: string
        refundAmount:
          type: number
          format: float
          description: If omitted, a full refund is issued.
        currency:
          type: string
        reason:
          type: string
    Error:
      type: object
      properties:
        status:
          type: string
        errorCode:
          type: integer
        errorMessage:
          type: string
    CancelSubscriptionRequest:
      type: object
      required:
      - partnerAPIKey
      - rokuCustomerId
      - productCode
      x-schema-source: documentation
      properties:
        partnerAPIKey:
          type: string
        rokuCustomerId:
          type: string
        productCode:
          type: string
        cancellationDate:
          type: string
          format: date-time
        reason:
          type: string
    SubscriptionResult:
      type: object
      x-schema-source: documentation
      properties:
        status:
          type: string
        errorCode:
          type: integer
        errorMessage:
          type: string
        rokuCustomerId:
          type: string
        productCode:
          type: string
        effectiveDate:
          type: string
          format: date-time
  responses:
    Error:
      description: Error response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
        application/xml:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    PartnerAPIKey:
      type: apiKey
      in: query
      name: partnerAPIKey
      description: 'Roku-issued Partner API Key. For GET endpoints the key is included in the URL path; for

        POST endpoints it is included in the request body. Channels obtain this key from the Roku

        Developer Dashboard.

        '