Copper.co Stake API

The stake API from Copper.co — 3 operation(s) for stake.

Operations 3

GET /staking/active-stakes Get Active Stakes #
GET /staking/outstanding-stakes Get Outstanding Stakes #
GET /staking/pending-stakes Get Pending Stakes #

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/copper-co-stake-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

copper-co-stake-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Copper API is based on the REST API interface provided for data exchange between a client and a server with the use of HTTPS requests and responses.
  title: Copper Platform Stake API
  version: latest
servers:
- description: platform.copper.co
  url: https://api.copper.co/platform
- description: demo.copper.co
  url: https://api.stage.copper.co/platform
- description: testnet.copper.co
  url: https://api.testnet.copper.co/platform
tags:
- name: stake
paths:
  /staking/active-stakes:
    get:
      parameters:
      - description: Return stakes only for specific portfolio
        in: query
        name: portfolioId
        required: false
        schema:
          type: string
      - description: Filter by the staked currency
        in: query
        name: currency
        required: false
        schema:
          type: string
      - description: Filter by the main currency (blockchain network) for staking
        in: query
        name: mainCurrency
        required: false
        schema:
          type: string
      - description: Limit for pagination
        in: query
        name: limit
        required: false
        schema:
          default: '100'
          type: string
      - description: Offset for pagination
        in: query
        name: offset
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformActiveStakes'
          description: OK
        '400':
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: The machine-readable error code
                    examples:
                    - bad-request
                    type: string
                  message:
                    description: A human-readable message providing more details about the error
                    type: string
                type: object
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: The machine-readable error code
                    examples:
                    - forbidden
                    type: string
                  message:
                    description: A human-readable message providing more details about the error
                    type: string
                type: object
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: The machine-readable error code
                    examples:
                    - conflict
                    type: string
                  message:
                    description: A human-readable message providing more details about the error
                    type: string
                type: object
          description: Conflict
      summary: Get Active Stakes
      tags:
      - stake
      operationId: getStakingActiveStakes
      x-operation-id-source: derived
  /staking/outstanding-stakes:
    get:
      parameters:
      - description: Return stakes only for specific portfolio
        in: query
        name: portfolioId
        required: false
        schema:
          type: string
      - description: Filter by the staked currency
        in: query
        name: currency
        required: false
        schema:
          type: string
      - description: Filter by the main currency (blockchain network) for staking
        in: query
        name: mainCurrency
        required: false
        schema:
          type: string
      - description: Limit for pagination
        in: query
        name: limit
        required: false
        schema:
          default: '100'
          type: string
      - description: Offset for pagination
        in: query
        name: offset
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOutstandingStakes'
          description: OK
        '400':
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: The machine-readable error code
                    examples:
                    - bad-request
                    type: string
                  message:
                    description: A human-readable message providing more details about the error
                    type: string
                type: object
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: The machine-readable error code
                    examples:
                    - forbidden
                    type: string
                  message:
                    description: A human-readable message providing more details about the error
                    type: string
                type: object
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: The machine-readable error code
                    examples:
                    - conflict
                    type: string
                  message:
                    description: A human-readable message providing more details about the error
                    type: string
                type: object
          description: Conflict
      summary: Get Outstanding Stakes
      tags:
      - stake
      operationId: getStakingOutstandingStakes
      x-operation-id-source: derived
  /staking/pending-stakes:
    get:
      parameters:
      - description: Return stakes only for specific portfolio
        in: query
        name: portfolioId
        required: false
        schema:
          type: string
      - description: Filter by the staked currency
        in: query
        name: currency
        required: false
        schema:
          type: string
      - description: Filter by the main currency (blockchain network) for staking
        in: query
        name: mainCurrency
        required: false
        schema:
          type: string
      - description: Limit for pagination
        in: query
        name: limit
        required: false
        schema:
          default: '100'
          type: string
      - description: Offset for pagination
        in: query
        name: offset
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformPendingStakes'
          description: OK
        '400':
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: The machine-readable error code
                    examples:
                    - bad-request
                    type: string
                  message:
                    description: A human-readable message providing more details about the error
                    type: string
                type: object
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: The machine-readable error code
                    examples:
                    - forbidden
                    type: string
                  message:
                    description: A human-readable message providing more details about the error
                    type: string
                type: object
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                properties:
                  error:
                    description: The machine-readable error code
                    examples:
                    - conflict
                    type: string
                  message:
                    description: A human-readable message providing more details about the error
                    type: string
                type: object
          description: Conflict
      summary: Get Pending Stakes
      tags:
      - stake
      operationId: getStakingPendingStakes
      x-operation-id-source: derived
components:
  schemas:
    PlatformOutstandingStakes:
      properties:
        outstandingStakes:
          description: List of outstanding stakes
          items:
            $ref: '#/components/schemas/PlatformOutstandingStake'
          type: array
      type: object
    Warning:
      properties:
        code:
          type: string
        message:
          type: string
      required:
      - message
      type: object
    PendingStake:
      properties:
        canBeRebonded:
          description: For Substrate based. During UNBONDING status you can rebond this with REBOND_STAKE transaction
          type: boolean
        canBeUnstaked:
          description: For Substrate based. During BONDING status stake can be unbonded
          type: boolean
        canIncreaseStakeAmount:
          description: If the stake can be increased
          type: boolean
        originPool:
          $ref: '#/components/schemas/Pool'
          description: In case if CHANGING_VALIDATOR here we specify pools from which stake was moved
          type: object
        pendingAmount:
          description: Pending stake amount
          type: string
        pendingEndsAt:
          description: When pending operation will be finished
          type: string
        pendingStakeStatus:
          $ref: '#/components/schemas/PendingStakeStatus'
          description: The status of a pending stake. [See details](/enums/PendingStakeStatus)
        pool:
          $ref: '#/components/schemas/Pool'
          description: Pool that this stake connected to
          type: object
        pools:
          description: A list of pools that this stake is connected to. Returned if the stake is connected to two or more pools
          items:
            $ref: '#/components/schemas/Pool'
          type: array
        requireChillToUnstake:
          description: For Substrate based. When you want to unstake BONDING stake you should chill first
          type: boolean
        stakeAddress:
          description: The address of a dedicated staking account. Only applies for SOL currently.
          type: string
        warning:
          $ref: '#/components/schemas/Warning'
          description: For Substrate based. When you want to unstake BONDING stake you should chill first
          type: object
      required:
      - pendingAmount
      - pendingStakeStatus
      type: object
    PendingStakeStatus:
      enum:
      - unbonding
      - bonding
      - changing-validator
      type: string
    Pool:
      properties:
        extra:
          $ref: '#/components/schemas/BlockchainExtra'
          description: Additional information for this staking pool
          type: object
        poolId:
          description: Pool identifier
          type: string
        poolName:
          description: Pool name
          type: string
        totalBonded:
          description: Amount of current all stakes for pool
          type: string
        validatorProviderId:
          description: Validator provider ID matched for this pool (if any)
          type: string
      type: object
    BlockchainExtra:
      properties:
        netuid:
          description: Network ID
          type: string
        neuronFollowees:
          description: ICP Neuron followees
          items:
            type: string
          type: array
        swapExtra:
          $ref: '#/components/schemas/SwapExtra'
          description: Additional order information related to Swap flow
          type: object
      type: object
    PlatformOutstandingStake:
      properties:
        createdAt:
          description: Timestamp of stake creation
          type: string
        currency:
          description: Staked currency
          type: string
        depositTargetId:
          description: Unique identifier of the Deposit Target
          type: string
        mainCurrency:
          description: Main currency (blockchain network) of a stake
          type: string
        organizationId:
          description: Unique ID of the organisation
          type: string
        outstandingOperation:
          $ref: '#/components/schemas/OutstandingStakeOperation'
          description: Outstanding stake data
          type: object
        outstandingStakeId:
          description: Unique identifier of the outstanding stake
          type: string
        portfolioId:
          description: Unique identifier of the portfolio, for which the stake was created
          type: string
        updatedAt:
          description: Timestamp of the latest stake update
          type: string
      type: object
    OutstandingStakeOperation:
      properties:
        canCreatePool:
          description: Only applies for AVAX. In AVAX we can create a pool with funds imported to P Chain. Should be set to 'true' with OutstandingOperationType.ALLOCATE_STAKE
          type: boolean
        claimResourceId:
          description: Only applies for [XRD] Radix. Radix issues an NFT when stakes are undelegated. This NFT will be used to claimXRD using complete-withdrawal operation
          type: string
        outstandingAmount:
          description: Outstanding stake amount
          type: string
        outstandingOperationType:
          $ref: '#/components/schemas/OutstandingOperationType'
          description: The type of the outstanding operation. [See details](/enums/OutstandingOperationType)
        pool:
          $ref: '#/components/schemas/Pool'
          description: A pool that this stake is connected to
          type: object
        pools:
          description: For Substrate based. List of pools that are related to this operation.
          items:
            $ref: '#/components/schemas/Pool'
          type: array
        rewardResourceIds:
          description: Applies for currencies which require a list of IDs when claiming a reward. For example, Core rewards with staked BTC requires a txId from the original delegate transaction
          items:
            type: string
          type: array
        stakeAddress:
          description: The address of a dedicated staking account. Only applies for SOL currently
          type: string
      type: object
    SwapExtra:
      properties: {}
      type: object
    OutstandingOperationType:
      enum:
      - claim-reward
      - complete-withdrawal
      - allocate-stake
      - complete-deposit
      - claim-unmint
      type: string
    PlatformActiveStake:
      properties:
        activeStake:
          $ref: '#/components/schemas/ActiveStake'
          description: Active stake data
          type: object
        activeStakeId:
          description: Unique identifier of the active stake
          type: string
        createdAt:
          description: Timestamp of the stake creation
          type: string
        currency:
          description: Staked currency
          type: string
        depositTargetId:
          description: Unique identifier of the Deposit Target
          type: string
        mainCurrency:
          description: Main currency (blockchain network) of a stake
          type: string
        organizationId:
          description: Unique ID of the organisation
          type: string
        portfolioId:
          description: Unique identifier of the portfolio, for which the stake was created
          type: string
        updatedAt:
          description: Timestamp of the latest stake update
          type: string
      type: object
    PlatformActiveStakes:
      properties:
        activeStakes:
          description: List of active stakes
          items:
            $ref: '#/components/schemas/PlatformActiveStake'
          type: array
      type: object
    PlatformPendingStake:
      properties:
        createdAt:
          description: Timestamp of stake creation
          type: string
        currency:
          description: Staked currency
          type: string
        depositTargetId:
          description: Unique identifier of the Deposit Target
          type: string
        mainCurrency:
          description: Main currency (blockchain network) of a stake
          type: string
        organizationId:
          description: Unique ID of the organisation
          type: string
        pendingStake:
          $ref: '#/components/schemas/PendingStake'
          type: object
        pendingStakeId:
          description: Unique identifier of the pending stake
          type: string
        portfolioId:
          description: Unique identifier of the portfolio, for which the stake was created
          type: string
        updatedAt:
          description: Timestamp of the latest stake update
          type: string
      type: object
    ActiveStake:
      properties:
        activeStakedAmount:
          description: Amount which is taken into account in the current epoch/period of stake when calculating rewards
          type: string
        canIncreaseStakeAmount:
          description: The stake can be increased
          type: boolean
        claimableRewardsAmount:
          description: Amount of rewards, that can still be claimed from this active stake using TAKE_REWARD transaction
          type: string
        endTimeSeconds:
          description: 'Stake delegation end time in seconds: BTC/CORE only.'
          type: string
        pool:
          $ref: '#/components/schemas/Pool'
          description: Pool that this stake connected to
          type: object
        pools:
          description: A list of pools that this stake is connected to. Returned if the stake is connected to two or more pools
          items:
            $ref: '#/components/schemas/Pool'
          type: array
        readyToRedelegate:
          description: In some cases your active stake can't be redelegated (e.g. you just redelegated stake from one pool to other in cosmos based stakes)
          type: boolean
        readyToUndelegateStakingPermissions:
          description: For Substrate based. When you want to remove Staking permissions from delegatee
          type: boolean
        readyToUnstake:
          description: Can this stake be unstaked or not
          type: boolean
        readyToUnstakeAt:
          description: If stake is not ready to unstake, when it will be ready
          type: string
        requireChillToUnstake:
          description: For Substrate based. When you want to unstake BONDING stake you should chill first
          type: boolean
        rewardRate:
          description: 'Staking Reward Rate: CORE only.'
          type: string
        rewardsAutoRestake:
          description: If rewards will automatically be restaked when paid, then true
          type: boolean
        rewardsRequireClaim:
          description: If rewards require TAKE_REWARD transaction to do claim
          type: boolean
        stakeAddress:
          description: The address of a dedicated staking account.  Only applies for SOL
          type: string
        warning:
          $ref: '#/components/schemas/Warning'
          description: Warning message that describe that there is a problem with this stake (e.g. you don't get rewards because of some problem)
          type: object
      type: object
    PlatformPendingStakes:
      properties:
        pendingStakes:
          description: List of pending stakes
          items:
            $ref: '#/components/schemas/PlatformPendingStake'
          type: array
      type: object