Livepeer Node CLI HTTP API

Local loopback HTTP API exposed by go-livepeer for Orchestrator and Gateway operators. Endpoints cover node status, protocol parameters, registered orchestrators, bond/unbond/rebond actions, orchestrator activation, broadcaster configuration, max price for capability, reward calls, ETH/LPT transfers, and message signing — used by the official Livepeer CLI and dashboards.

Livepeer Node CLI HTTP API is one of 3 APIs that Livepeer publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 5 machine-runnable capabilities that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Node Operations, Orchestrator, Gateway, Staking, and Ethereum. The published artifact set on APIs.io includes API documentation, an API reference, an OpenAPI specification, and 5 Naftiko capability specs.

OpenAPI Specification

livepeer-cli-http-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Livepeer CLI Local HTTP API
  description: |
    Local control-plane HTTP endpoints exposed by the Livepeer node.

    The CLI HTTP API provides programmatic access to node management functions
    including status monitoring, staking operations, orchestrator configuration,
    and broadcast settings.

    **Default Ports:**
    - Gateway: http://localhost:5935
    - Orchestrator: http://localhost:7935
  version: "1.0.0"
  contact:
    name: Livepeer Documentation
    url: https://docs.livepeer.org

servers:
  - url: http://localhost:5935
    description: Gateway CLI API (default)
  - url: http://localhost:7935
    description: Orchestrator CLI API

tags:
  - name: Status
    description: Node status and information
  - name: Staking
    description: Token bonding and delegation operations
  - name: Orchestrator
    description: Orchestrator configuration and management
  - name: Gateway
    description: Gateway/broadcaster configuration
  - name: Ethereum
    description: Ethereum operations and token transfers

paths:
  /status:
    get:
      tags:
        - Status
      summary: Get node status
      description: Display node information, balances, and configuration
      operationId: getStatus
      responses:
        "200":
          description: Node status retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NodeStatus"

  /protocolParameters:
    get:
      tags:
        - Status
      summary: View protocol parameters
      description: Show protocol state and parameters
      operationId: getProtocolParameters
      responses:
        "200":
          description: Protocol parameters retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProtocolParameters"

  /registeredOrchestrators:
    get:
      tags:
        - Status
      summary: List registered orchestrators
      description: Display available orchestrators on the network
      operationId: getRegisteredOrchestrators
      responses:
        "200":
          description: Orchestrator list retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Orchestrator"

  /bond:
    post:
      tags:
        - Staking
      summary: Bond tokens to an orchestrator
      description: Delegate LPT tokens to an orchestrator
      operationId: bondTokens
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - amount
                - to
              properties:
                amount:
                  type: string
                  description: Amount of LPT to bond (in wei)
                  example: "1000000000000000000"
                to:
                  type: string
                  description: Orchestrator address to bond to
                  example: "0x1234567890abcdef1234567890abcdef12345678"
      responses:
        "200":
          description: Bond successful
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransactionResponse"

  /unbond:
    post:
      tags:
        - Staking
      summary: Unbond tokens
      description: Remove delegated tokens (starts unbonding period)
      operationId: unbondTokens
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - amount
              properties:
                amount:
                  type: string
                  description: Amount of LPT to unbond (in wei)
                  example: "1000000000000000000"
      responses:
        "200":
          description: Unbond initiated successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransactionResponse"

  /rebond:
    post:
      tags:
        - Staking

      summary: Rebond tokens
      description: Rebond tokens in unbonding state
      operationId: rebondTokens
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                unbondingLockId:
                  type: integer
                  description: ID of the unbonding lock to rebond
                  example: 0
      responses:
        "200":
          description: Rebond successful
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransactionResponse"

  /activateOrchestrator:
    post:
      tags:
        - Orchestrator
      summary: Activate orchestrator
      description: Multi-step process to become an orchestrator
      operationId: activateOrchestrator
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - blockRewardCut
                - feeShare
                - pricePerUnit
                - serviceURI
              properties:
                blockRewardCut:
                  type: string
                  description: Percentage of block rewards to keep (0-100)
                  example: "10"
                feeShare:
                  type: string
                  description:
                    Percentage of fees to share with delegators (0-100)
                  example: "5"
                pricePerUnit:
                  type: string
                  description: Price per pixel in wei
                  example: "1000"
                serviceURI:
                  type: string
                  description: Service URI for the orchestrator
                  example: "https://orchestrator.example.com:8935"
      responses:
        "200":
          description: Orchestrator activated successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransactionResponse"

  /setBroadcastConfig:
    post:
      tags:
        - Gateway
      summary: Set broadcast configuration
      description: Configure transcoding options and max price
      operationId: setBroadcastConfig
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                maxPricePerUnit:
                  type: string
                  description: Maximum price per pixel in wei
                  example: "1000"
                pixelsPerUnit:
                  type: integer
                  description: Number of pixels per unit
                  example: 1
      responses:
        "200":
          description: Broadcast config updated successfully

  /setMaxPriceForCapability:
    post:
      tags:
        - Gateway
      summary: Set max price per AI capability
      description: Set pricing for specific AI pipelines and models
      operationId: setMaxPriceForCapability
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - capabilities_prices
              properties:
                capabilities_prices:
                  type: array
                  items:
                    type: object
                    required:
                      - pipeline
                      - price_per_unit
                    properties:
                      pipeline:
                        type: string
                        description: AI pipeline name
                        example: "text-to-image"
                      model_id:
                        type: string
                        description: Specific model ID or "default"
                        example: "stabilityai/sd-turbo"
                      price_per_unit:
                        type: integer
                        description: Maximum price per unit
                        example: 1000
                      pixels_per_unit:
                        type: integer
                        description: Pixels per unit
                        example: 1
      responses:
        "200":
          description: AI pricing updated successfully

  /reward:
    post:
      tags:
        - Orchestrator
      summary: Claim orchestrator rewards
      description: Claim orchestrator rewards for current round
      operationId: claimReward
      responses:
        "200":
          description: Reward claimed successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransactionResponse"

  /transferTokens:
    post:
      tags:
        - Ethereum
      summary: Transfer LPT tokens
      description: Transfer LPT to another address
      operationId: transferTokens
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - to
                - amount
              properties:
                to:
                  type: string
                  description: Recipient address
                  example: "0x1234567890abcdef1234567890abcdef12345678"
                amount:
                  type: string
                  description: Amount of LPT to transfer (in wei)
                  example: "1000000000000000000"
      responses:
        "200":
          description: Transfer successful
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TransactionResponse"

  /signMessage:
    post:
      tags:
        - Ethereum
      summary: Sign message
      description: Sign message with node's private key
      operationId: signMessage
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - message
              properties:
                message:
                  type: string
                  description: Message to sign
                  example: "Hello Livepeer"
      responses:
        "200":
          description: Message signed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  signature:
                    type: string
                    description: Hex-encoded signature
                    example: "0x..."

components:
  schemas:
    NodeStatus:
      type: object
      properties:
        node:
          type: object
          properties:
            version:
              type: string
              example: "0.7.0"
            chainId:
              type: integer
              example: 42161
        account:
          type: object
          properties:
            address:
              type: string
              example: "0x..."
            ethBalance:
              type: string
              example: "1000000000000000000"
            lptBalance:
              type: string
              example: "1000000000000000000"

    ProtocolParameters:
      type: object
      properties:
        totalBondedToken:
          type: string
        totalSupply:
          type: string
        paused:
          type: boolean
        currentRound:
          type: string

    Orchestrator:
      type: object
      properties:
        address:
          type: string
          example: "0x..."
        serviceURI:
          type: string
          example: "https://orchestrator.example.com:8935"
        pricePerPixel:
          type: string
          example: "1000"
        activationRound:
          type: string

    TransactionResponse:
      type: object
      properties:
        txHash:
          type: string
          description: Transaction hash
          example: "0x..."
        status:
          type: string
          description: Transaction status
          example: "success"