> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shumi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Upcoming unlocks across the market

> Each row has the date, coin, tokens, US dollar value, share of market cap, recipients and the team and investor share. Ranked by share of market cap unless `sort` says otherwise.



## OpenAPI

````yaml /api-reference/openapi.json get /api/cli/unlocks/calendar
openapi: 3.1.0
info:
  title: Shumi API
  description: >-
    Market data, verdicts and plain-word answers for crypto and real-world
    assets. Data routes return a versioned envelope that holds either `data` or
    `error`.


    The `shumi` CLI and the `@shumi-ai/mcp` MCP server call the same routes.
  version: 1.0.0
servers:
  - url: https://api.shumi.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Ask
    description: Questions in plain words, answered by Shumi.
  - name: Coins
    description: Single-asset lookup, risk context, sentiment, and history.
  - name: Market
    description: Market-wide prices, breadth, and baselines.
  - name: Categories
    description: Category listings, membership, and sentiment.
  - name: Sentiment
    description: Crowd sentiment and narrative momentum.
  - name: Trade decisions
    description: Regime, funding, futures, pairs, and per-coin verdicts.
  - name: Unlocks
    description: Scheduled token unlocks for one coin or across the market.
  - name: Tracking
    description: Watched holders, wallets, baskets, and transcripts.
  - name: RWA
    description: >-
      Real-world assets that trade as perps: stocks, ETFs, metals, commodities,
      indices and FX.
  - name: Streaming
    description: Live NDJSON streams.
  - name: Account
    description: Your plan.
paths:
  /api/cli/unlocks/calendar:
    get:
      tags:
        - Unlocks
      summary: Upcoming unlocks across the market
      description: >-
        Each row has the date, coin, tokens, US dollar value, share of market
        cap, recipients and the team and investor share. Ranked by share of
        market cap unless `sort` says otherwise.
      operationId: getUnlockCalendar
      parameters:
        - name: days
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 30
            default: 7
          description: Window in days from today.
        - name: maxRank
          in: query
          schema:
            type: integer
            minimum: 10
            maximum: 5000
            default: 500
          description: Only coins up to this market-cap rank.
        - name: minPct
          in: query
          schema:
            type: number
            minimum: 0.5
            default: 0.5
          description: Smallest unlock to include, in % of market cap.
        - name: sort
          in: query
          schema:
            type: string
            enum:
              - pct
              - usd
              - date
            default: pct
          description: >-
            `pct` by share of market cap, `usd` by dollar value, `date` soonest
            first.
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 15
        - name: insidersOnly
          in: query
          schema:
            type: boolean
            default: false
          description: Only unlocks with a team or investor share.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/AuthRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  responses:
    Ok:
      description: Success.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Envelope'
    PaymentRequired:
      description: >-
        Your free questions are used up. The body is an x402 challenge: pay for
        this one call in USDC on Base and resend it with the `X-PAYMENT` header.
        A data call costs 0.005 USDC; a plain-word question, `pairs` or
        `walkforward` 0.05 USDC.
      content:
        application/json:
          schema:
            type: object
            properties:
              x402Version:
                type: integer
              accepts:
                type: array
                items:
                  type: object
                  properties:
                    scheme:
                      type: string
                    network:
                      type: string
                    maxAmountRequired:
                      type: string
                      description: >-
                        Price in USDC's smallest unit (6 decimals): `5000` is
                        0.005 USDC.
                    resource:
                      type: string
                    payTo:
                      type: string
                    asset:
                      type: string
                      description: USDC contract on Base.
                    maxTimeoutSeconds:
                      type: integer
                    extra:
                      type: object
          example:
            x402Version: 1
            accepts:
              - scheme: exact
                network: base
                maxAmountRequired: '5000'
                resource: https://api.shumi.ai/api/cli/coin/risk/DOGE
                payTo: 0x...
                asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
                maxTimeoutSeconds: 60
                extra:
                  name: USD Coin
                  version: '2'
    AuthRequired:
      description: No token was sent.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            schemaVersion: 1
            error:
              code: AUTH_REQUIRED
              message: 'Authentication required. Run: shumi login'
    RateLimited:
      description: >-
        Quota used up on a call that cannot be paid per call: a paid plan's
        daily limit, a live stream, or a Free account when pay-per-call is
        unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            schemaVersion: 1
            error:
              code: RATE_LIMITED
              message: >-
                Quota exceeded (50/50 on access); resets at 00:00 UTC, or
                upgrade to Pro for unlimited
  schemas:
    Envelope:
      type: object
      description: >-
        Success envelope. `schemaVersion` only changes on a breaking shape
        change, so a pinned client can detect one.
      required:
        - schemaVersion
        - data
        - meta
      properties:
        schemaVersion:
          type: integer
          example: 1
        data:
          description: Route-specific payload.
        meta:
          type: object
          properties:
            ts:
              type: string
              format: date-time
              description: When this response was produced.
            as_of:
              type: string
              format: date-time
              description: Timestamp of the underlying data, when it carries one.
            data_age_seconds:
              type: integer
              description: Age of the underlying data. Present alongside `as_of`.
    Error:
      type: object
      required:
        - schemaVersion
        - error
      properties:
        schemaVersion:
          type: integer
          example: 1
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              enum:
                - BAD_REQUEST
                - AUTH_REQUIRED
                - AUTH_INVALID
                - RATE_LIMITED
                - UPSTREAM_4XX
                - UPSTREAM_5XX
                - NETWORK
                - INTERNAL
            message:
              type: string
            details:
              description: Present when the route can say something more specific.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An API key (`shumi_sk_…`) or a session JWT. Create a key with `shumi
        login` and `shumi keys create`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.