Livepeer accessControl API

Operations related to access control/signing keys api

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/livepeer-accesscontrol-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 email required.

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

OpenAPI Specification

livepeer-accesscontrol-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Livepeer API Reference accessControl API
  description: 'Welcome to the Livepeer API reference docs. Here you will find all the

    endpoints exposed on the standard Livepeer API, learn how to use them and

    what they return.

    '
  version: 1.0.0
servers:
- url: https://livepeer.studio/api
security:
- apiKey: []
tags:
- name: accessControl
  description: Operations related to access control/signing keys api
paths:
  /access-control/signing-key:
    post:
      operationId: createSigningKey
      x-speakeasy-name-override: create
      summary: Create a signing key
      tags:
      - accessControl
      description: 'The publicKey is a representation of the public key, encoded as base 64 and is passed as a string, and  the privateKey is displayed only on creation. This is the only moment where the client can save the private key, otherwise it will be lost. Remember to decode your string when signing JWTs.

        Up to 10 signing keys can be generated, after that you must delete at least one signing key to create a new one.

        '
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signing-key'
                x-speakeasy-name-override: data
      x-codeSamples:
      - lang: typescript
        label: createSigningKey
        source: "import { Livepeer } from \"livepeer\";\n\nconst livepeer = new Livepeer({\n  apiKey: \"<YOUR_BEARER_TOKEN_HERE>\",\n});\n\nasync function run() {\n  const result = await livepeer.accessControl.create();\n\n  // Handle the result\n  console.log(result);\n}\n\nrun();"
      - lang: go
        label: createSigningKey
        source: "package main\n\nimport(\n\tlivepeergo \"github.com/livepeer/livepeer-go\"\n\t\"context\"\n\t\"log\"\n)\n\nfunc main() {\n    s := livepeergo.New(\n        livepeergo.WithSecurity(\"<YOUR_BEARER_TOKEN_HERE>\"),\n    )\n\n    ctx := context.Background()\n    res, err := s.AccessControl.Create(ctx)\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.SigningKey != nil {\n        // handle response\n    }\n}"
      - lang: python
        label: createSigningKey
        source: "from livepeer import Livepeer\n\ns = Livepeer(\n    api_key=\"<YOUR_BEARER_TOKEN_HERE>\",\n)\n\nres = s.access_control.create()\n\nif res.signing_key is not None:\n    # handle response\n    pass"
    get:
      operationId: getSigningKeys
      x-speakeasy-name-override: getAll
      summary: Retrieves signing keys
      tags:
      - accessControl
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/signing-key'
                x-speakeasy-name-override: data
      x-codeSamples:
      - lang: typescript
        label: getSigningKeys
        source: "import { Livepeer } from \"livepeer\";\n\nconst livepeer = new Livepeer({\n  apiKey: \"<YOUR_BEARER_TOKEN_HERE>\",\n});\n\nasync function run() {\n  const result = await livepeer.accessControl.getAll();\n\n  // Handle the result\n  console.log(result);\n}\n\nrun();"
      - lang: go
        label: getSigningKeys
        source: "package main\n\nimport(\n\tlivepeergo \"github.com/livepeer/livepeer-go\"\n\t\"context\"\n\t\"log\"\n)\n\nfunc main() {\n    s := livepeergo.New(\n        livepeergo.WithSecurity(\"<YOUR_BEARER_TOKEN_HERE>\"),\n    )\n\n    ctx := context.Background()\n    res, err := s.AccessControl.GetAll(ctx)\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.Data != nil {\n        // handle response\n    }\n}"
      - lang: python
        label: getSigningKeys
        source: "from livepeer import Livepeer\n\ns = Livepeer(\n    api_key=\"<YOUR_BEARER_TOKEN_HERE>\",\n)\n\nres = s.access_control.get_all()\n\nif res.data is not None:\n    # handle response\n    pass"
  /access-control/signing-key/{keyId}:
    delete:
      operationId: deleteSigningKey
      x-speakeasy-name-override: delete
      summary: Delete Signing Key
      tags:
      - accessControl
      parameters:
      - in: path
        name: keyId
        schema:
          type: string
        description: ID of the signing key
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '204':
          description: Success (No content)
      x-codeSamples:
      - lang: typescript
        label: deleteSigningKey
        source: "import { Livepeer } from \"livepeer\";\n\nconst livepeer = new Livepeer({\n  apiKey: \"<YOUR_BEARER_TOKEN_HERE>\",\n});\n\nasync function run() {\n  const result = await livepeer.accessControl.delete(\"<id>\");\n\n  // Handle the result\n  console.log(result);\n}\n\nrun();"
      - lang: go
        label: deleteSigningKey
        source: "package main\n\nimport(\n\tlivepeergo \"github.com/livepeer/livepeer-go\"\n\t\"context\"\n\t\"log\"\n)\n\nfunc main() {\n    s := livepeergo.New(\n        livepeergo.WithSecurity(\"<YOUR_BEARER_TOKEN_HERE>\"),\n    )\n\n    ctx := context.Background()\n    res, err := s.AccessControl.Delete(ctx, \"<value>\")\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res != nil {\n        // handle response\n    }\n}"
      - lang: python
        label: deleteSigningKey
        source: "from livepeer import Livepeer\n\ns = Livepeer(\n    api_key=\"<YOUR_BEARER_TOKEN_HERE>\",\n)\n\nres = s.access_control.delete(key_id=\"<value>\")\n\nif res is not None:\n    # handle response\n    pass"
    get:
      operationId: getSigningKey
      x-speakeasy-name-override: get
      summary: Retrieves a signing key
      tags:
      - accessControl
      parameters:
      - in: path
        name: keyId
        schema:
          type: string
        description: ID of the signing key
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/signing-key'
                x-speakeasy-name-override: data
      x-codeSamples:
      - lang: typescript
        label: getSigningKey
        source: "import { Livepeer } from \"livepeer\";\n\nconst livepeer = new Livepeer({\n  apiKey: \"<YOUR_BEARER_TOKEN_HERE>\",\n});\n\nasync function run() {\n  const result = await livepeer.accessControl.get(\"<id>\");\n\n  // Handle the result\n  console.log(result);\n}\n\nrun();"
      - lang: go
        label: getSigningKey
        source: "package main\n\nimport(\n\tlivepeergo \"github.com/livepeer/livepeer-go\"\n\t\"context\"\n\t\"log\"\n)\n\nfunc main() {\n    s := livepeergo.New(\n        livepeergo.WithSecurity(\"<YOUR_BEARER_TOKEN_HERE>\"),\n    )\n\n    ctx := context.Background()\n    res, err := s.AccessControl.Get(ctx, \"<value>\")\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.SigningKey != nil {\n        // handle response\n    }\n}"
      - lang: python
        label: getSigningKey
        source: "from livepeer import Livepeer\n\ns = Livepeer(\n    api_key=\"<YOUR_BEARER_TOKEN_HERE>\",\n)\n\nres = s.access_control.get(key_id=\"<value>\")\n\nif res.signing_key is not None:\n    # handle response\n    pass"
    patch:
      operationId: updateSigningKey
      x-speakeasy-name-override: update
      summary: Update a signing key
      tags:
      - accessControl
      parameters:
      - in: path
        name: keyId
        schema:
          type: string
        description: ID of the signing key
        required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                disabled:
                  type: boolean
                name:
                  type: string
              additionalProperties: false
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '204':
          description: Success (No content)
      x-codeSamples:
      - lang: typescript
        label: updateSigningKey
        source: "import { Livepeer } from \"livepeer\";\n\nconst livepeer = new Livepeer({\n  apiKey: \"<YOUR_BEARER_TOKEN_HERE>\",\n});\n\nasync function run() {\n  const result = await livepeer.accessControl.update({}, \"<id>\");\n\n  // Handle the result\n  console.log(result);\n}\n\nrun();"
      - lang: go
        label: updateSigningKey
        source: "package main\n\nimport(\n\tlivepeergo \"github.com/livepeer/livepeer-go\"\n\t\"context\"\n\t\"github.com/livepeer/livepeer-go/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    s := livepeergo.New(\n        livepeergo.WithSecurity(\"<YOUR_BEARER_TOKEN_HERE>\"),\n    )\n\n    ctx := context.Background()\n    res, err := s.AccessControl.Update(ctx, \"<value>\", operations.UpdateSigningKeyRequestBody{})\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res != nil {\n        // handle response\n    }\n}"
      - lang: python
        label: updateSigningKey
        source: "from livepeer import Livepeer\n\ns = Livepeer(\n    api_key=\"<YOUR_BEARER_TOKEN_HERE>\",\n)\n\nres = s.access_control.update(key_id=\"<value>\", request_body={})\n\nif res is not None:\n    # handle response\n    pass"
components:
  schemas:
    signing-key:
      type: object
      additionalProperties: false
      required:
      - publicKey
      properties:
        id:
          type: string
          readOnly: true
          example: 78df0075-b5f3-4683-a618-1086faca35dc
        name:
          type: string
          description: Name of the signing key
          example: key1
        userId:
          type: string
          readOnly: true
          example: 78df0075-b5f3-4683-a618-1086faca35dc
          deprecated: true
        createdAt:
          readOnly: true
          type: number
          description: Timestamp (in milliseconds) at which the signing-key was created
          example: 1587667174725
        lastSeen:
          readOnly: true
          type: number
          description: Timestamp (in milliseconds) at which the signing-key was last used
          example: 1587667174725
        publicKey:
          type: string
        disabled:
          type: boolean
          description: Disable the signing key to allow rotation safely
          example: false
        projectId:
          type: string
          description: The ID of the project
          example: aac12556-4d65-4d34-9fb
    error:
      type: object
      properties:
        errors:
          type: array
          minItems: 1
          items:
            type: string
            example:
            - id not provided
            - Account not found
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      bearerFormat: JWT
    HTTPBearer:
      type: http
      scheme: bearer