Roku personal-access-tokens API

The personal-access-tokens API from Roku — 4 operation(s) for personal-access-tokens.

Operations 5

GET /api/v1/users/me/personal_access_tokens Roku List Personal Access Tokens #
POST /api/v1/users/me/personal_access_tokens Roku Create Personal Access Token #
DELETE /api/v1/users/me/personal_access_tokens/{token_id} Roku Revoke Personal Access Token #
GET /api/v1/users/me/personal_access_tokens/scopes Roku Get Personal Access Token Scopes #
PATCH /api/v1/users/me/personal_access_tokens/{token_id}/refresh Roku Refresh Personal Access Token #

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-personal-access-tokens-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-personal-access-tokens-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Roku Nabu Cloud Personal Access Tokens API
  contact:
    name: DevX Tools Team
    email: dldevxtools@roku.com
  version: 1.3.29
  description: Nabu Cloud is Roku's developer cloud platform for managing test devices, snapshots, builds, projects, organisations, groups, and personal access tokens. It provides REST APIs for orchestrating remote Roku test devices and CI/CD workflows.
  x-generated-from: rokudev/dev-doc
  x-source-url: https://github.com/rokudev/dev-doc/blob/v2.0/reference/openapi.json
servers:
- url: https://api.cloud.roku.dev
  description: Roku Nabu Cloud Production
tags:
- name: personal-access-tokens
paths:
  /api/v1/users/me/personal_access_tokens:
    get:
      tags:
      - personal-access-tokens
      summary: Roku List Personal Access Tokens
      description: List all personal access tokens for the authenticated user with their associated scopes.
      operationId: personal-access-tokens-list_personal_access_tokens
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/PersonalAccessTokenOut'
                type: array
                title: Response Personal-Access-Tokens-List Personal Access Tokens
      security:
      - Nabu Cloud: []
    post:
      tags:
      - personal-access-tokens
      summary: Roku Create Personal Access Token
      description: Create a new personal access token for the authenticated user. The token will be returned only once and cannot be retrieved again. Maximum of 20 tokens per user.
      operationId: personal-access-tokens-create_personal_access_token
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PersonalAccessTokenCreate'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonalAccessTokenCreated'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - Nabu Cloud: []
  /api/v1/users/me/personal_access_tokens/{token_id}:
    delete:
      tags:
      - personal-access-tokens
      summary: Roku Revoke Personal Access Token
      description: Revoke a specific personal access token for the authenticated user by token ID.
      operationId: personal-access-tokens-revoke_personal_access_token
      security:
      - Nabu Cloud: []
      parameters:
      - name: token_id
        in: path
        required: true
        schema:
          type: integer
          title: Token Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/users/me/personal_access_tokens/scopes:
    get:
      tags:
      - personal-access-tokens
      summary: Roku Get Personal Access Token Scopes
      description: Get all available scopes for personal access tokens that the authenticated user can use. Admin scope is only available to superusers.
      operationId: personal-access-tokens-get_personal_access_token_scopes
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ScopeOut'
                type: array
                title: Response Personal-Access-Tokens-Get Personal Access Token Scopes
      security:
      - Nabu Cloud: []
  /api/v1/users/me/personal_access_tokens/{token_id}/refresh:
    patch:
      tags:
      - personal-access-tokens
      summary: Roku Refresh Personal Access Token
      description: Refresh a personal access token by updating its expiration date.
      operationId: personal-access-tokens-refresh_personal_access_token
      security:
      - Nabu Cloud: []
      parameters:
      - name: token_id
        in: path
        required: true
        schema:
          type: integer
          title: Token Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PersonalAccessTokenRefresh'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonalAccessTokenOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    PersonalAccessTokenStatus:
      type: string
      enum:
      - active
      - expired
      - revoked
      title: PersonalAccessTokenStatus
    PersonalAccessTokenRefresh:
      properties:
        expires_in_days:
          type: integer
          maximum: 365
          minimum: 1
          title: Expires In Days
          description: Number of days until the token expires (1-365 days)
          default: 30
      type: object
      title: PersonalAccessTokenRefresh
    ScopeOut:
      properties:
        name:
          type: string
          maxLength: 255
          minLength: 3
          pattern: ^[a-z0-9]+(-[a-z0-9]+)*$
          title: Name
          description: The name of the scope
        description:
          type: string
          maxLength: 4096
          minLength: 0
          title: Description
          description: Description of what the scope allows
        permissions:
          items:
            type: string
          type: array
          title: Permissions
          description: List of permissions granted by this scope
      type: object
      required:
      - name
      - description
      - permissions
      title: ScopeOut
    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
    PersonalAccessTokenCreate:
      properties:
        name:
          type: string
          maxLength: 255
          minLength: 3
          title: Name
          description: A descriptive name for the token
        description:
          anyOf:
          - type: string
            maxLength: 4096
            minLength: 0
          - type: 'null'
          title: Description
          description: Optional description for the token
        expires_in_days:
          type: integer
          maximum: 365
          minimum: 1
          title: Expires In Days
          description: Number of days until the token expires (1-365 days)
          default: 30
        scopes:
          items:
            type: string
            maxLength: 255
            minLength: 3
            pattern: ^[a-z0-9]+(-[a-z0-9]+)*$
          type: array
          title: Scopes
          description: List of scopes that define the token's permissions
      type: object
      required:
      - name
      - scopes
      title: PersonalAccessTokenCreate
    PersonalAccessTokenCreated:
      properties:
        token:
          type: string
          maxLength: 2048
          minLength: 1
          title: Token
          description: The actual token - save this, it won't be shown again!
        token_info:
          $ref: '#/components/schemas/PersonalAccessTokenOut'
      type: object
      required:
      - token
      - token_info
      title: PersonalAccessTokenCreated
      description: Response when a new PAT is created - includes the actual token
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    PersonalAccessTokenOut:
      properties:
        id:
          type: integer
          title: Id
          description: The unique identifier of the personal access token
        name:
          type: string
          maxLength: 255
          minLength: 3
          title: Name
          description: A descriptive name for the token
        description:
          anyOf:
          - type: string
            maxLength: 4096
            minLength: 0
          - type: 'null'
          title: Description
          description: Optional description for the token
        scopes:
          items:
            type: string
            maxLength: 255
            minLength: 3
            pattern: ^[a-z0-9]+(-[a-z0-9]+)*$
          type: array
          title: Scopes
          description: List of scopes that define the token's permissions
        version:
          type: integer
          title: Version
          description: Version number of the token format
        created_at:
          type: string
          format: date-time
          title: Created At
          description: When the token was created
        expires_at:
          type: string
          format: date-time
          title: Expires At
          description: When the token expires
        last_used_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Used At
          description: When the token was last used
        revoked_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Revoked At
          description: When the token was revoked, if applicable
        status:
          $ref: '#/components/schemas/PersonalAccessTokenStatus'
          readOnly: true
      type: object
      required:
      - id
      - name
      - scopes
      - version
      - created_at
      - expires_at
      - status
      title: PersonalAccessTokenOut