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

# Vesting Schedule Chart

> Per-round (allocation) token release schedule over time: cliff/linear/batch phases with dates, share, and token amounts. Data for the vesting schedule chart.<br/><br/>Available from&#58; <Badge color="orange">Pro</Badge><br/>Cost&#58; <Badge color="surface">1 credit per request</Badge>

<Note>
  Allocations without a tracked schedule are summarized in the untracked block, not listed as rounds. Amounts are in the project's native token.
</Note>


## OpenAPI

````yaml https://api.cryptorank.io/v3/documentation-json get /v3/currencies/{id}/vesting/schedule
openapi: 3.0.0
info:
  title: Cryptorank API V3
  description: >
    # Overview


    Cryptorank Public API v3 — comprehensive cryptocurrency data for B2B clients
    and partners.


    Useful Links:

    - [API Plans](https://cryptorank.io/public-api)

    - [Dashboard](https://cryptorank.io/public-api/dashboard)


    # Getting Started


    Primary Server URL:
    [https://api.cryptorank.io/v3/](https://api.cryptorank.io/v3/)


    **Authentication**


    Generate an API key in the
    [dashboard](https://cryptorank.io/public-api/dashboard) and pass it in the
    `X-Api-Key` header.


    Keep your keys secret — never commit them to public repositories or expose
    them in client-side code.
  version: 3.0.0
  contact:
    name: Cryptorank Team
    url: https://cryptorank.io
    email: info@cryptorank.io
servers:
  - url: https://api.cryptorank.io
security: []
tags: []
paths:
  /v3/currencies/{id}/vesting/schedule:
    get:
      tags:
        - Vesting & Token Unlocks
      summary: Vesting Schedule Chart
      description: >-
        **Description**


        Per-round (allocation) token release schedule over time:
        cliff/linear/batch phases with dates, share, and token amounts. Data for
        the vesting schedule chart.


        > **Note:** Allocations without a tracked schedule are summarized in the
        untracked block, not listed as rounds. Amounts are in the project's
        native token.


        **Access**

        - Available from: **Pro**

        - Cost: 1 credit per request
      operationId: VestingController_getVestingSchedule
      parameters:
        - name: id
          required: true
          in: path
          description: Numeric coin id.
          schema:
            example: 1
            type: integer
        - name: sortBy
          required: false
          in: query
          description: 'Sort field: round share of total supply or round name.'
          schema:
            default: percentOfTotal
            type: string
            enum:
              - percentOfTotal
              - name
        - name: sortOrder
          required: false
          in: query
          description: Sort direction.
          schema:
            default: desc
            type: string
            enum:
              - asc
              - desc
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - status
                properties:
                  data:
                    $ref: '#/components/schemas/CurrencyVestingScheduleResponseDto'
                  status:
                    $ref: '#/components/schemas/ResponseStatusDto'
        '400':
          description: Request validation failed
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                      - status
                    properties:
                      code:
                        type: string
                        enum:
                          - VALIDATION_ERROR
                        example: VALIDATION_ERROR
                      message:
                        type: string
                        example: Validation failed
                      status:
                        type: number
                        example: 400
        '401':
          description: API key is missing or invalid
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                      - status
                    properties:
                      code:
                        type: string
                        enum:
                          - API_KEY_MISSING
                          - API_KEY_INVALID
                        example: API_KEY_MISSING
                      message:
                        type: string
                        example: API key is missing
                      status:
                        type: number
                        example: 401
        '403':
          description: >-
            No active subscription, the endpoint is not available in your plan,
            or the request goes beyond what your plan allows
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                      - status
                    properties:
                      code:
                        type: string
                        enum:
                          - NO_ACTIVE_SUBSCRIPTION
                          - ENDPOINT_NOT_AVAILABLE
                          - PLAN_LIMIT_EXCEEDED
                        example: NO_ACTIVE_SUBSCRIPTION
                      message:
                        type: string
                        example: No active subscription found
                      status:
                        type: number
                        example: 403
        '404':
          description: Currency not found
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                      - status
                    properties:
                      code:
                        type: string
                        enum:
                          - NOT_FOUND
                        example: NOT_FOUND
                      message:
                        type: string
                        example: Resource not found
                      status:
                        type: number
                        example: 404
        '429':
          description: Rate limit or credit limit exceeded
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                      - status
                    properties:
                      code:
                        type: string
                        enum:
                          - RATE_LIMIT_EXCEEDED
                          - DAILY_CREDITS_EXCEEDED
                          - MONTHLY_CREDITS_EXCEEDED
                        example: RATE_LIMIT_EXCEEDED
                      message:
                        type: string
                        example: Rate limit exceeded
                      status:
                        type: number
                        example: 429
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                      - status
                    properties:
                      code:
                        type: string
                        enum:
                          - INTERNAL_ERROR
                        example: INTERNAL_ERROR
                      message:
                        type: string
                        example: Internal server error
                      status:
                        type: number
                        example: 500
      security:
        - X-Api-Key: []
components:
  schemas:
    CurrencyVestingScheduleResponseDto:
      type: object
      properties:
        rounds:
          description: >-
            Per-round vesting schedule. Rounds without a tracked schedule are
            excluded.
          type: array
          items:
            $ref: '#/components/schemas/CurrencyVestingScheduleItemDto'
        untracked:
          description: >-
            Allocations excluded from rounds because they have no known unlock
            schedule. Their tokens are not counted in the per-round shares, so
            the sum of all round percentOfTotal values plus
            untracked.percentOfTotal approximates 100%.
          allOf:
            - $ref: '#/components/schemas/CurrencyVestingScheduleUntrackedDto'
      required:
        - rounds
        - untracked
    ResponseStatusDto:
      type: object
      properties:
        usedCredits:
          type: number
          example: 1
          description: Credits charged for this request
        timestamp:
          type: number
          example: 1780000000000
          description: Server time of the response. Unix timestamp in milliseconds
      required:
        - usedCredits
        - timestamp
    CurrencyVestingScheduleItemDto:
      type: object
      properties:
        name:
          type: string
          example: Private Sale Investors
          description: Round name.
        totalTokens:
          type: string
          example: '15000000'
          description: Total tokens in the round.
        percentOfTotal:
          type: number
          example: 34.9
          nullable: true
          description: Round share relative to total supply, in percent.
        tgeUnlockPercent:
          type: number
          example: 10
          description: Percentage of the round unlocked at TGE.
        type:
          type: string
          enum:
            - linear
            - nonlinear
            - dynamic
          example: linear
          description: Round vesting schedule type.
        unlockedPercent:
          type: number
          example: 33.33
          description: Currently unlocked share of the round, %.
        lockedPercent:
          type: number
          example: 66.67
          description: Currently locked share of the round, %.
        lockedTokens:
          type: string
          example: '10000000'
          description: Currently locked token amount.
        phases:
          description: >-
            Release phases in chronological order. The TGE unlock is reported
            via tgeUnlockPercent and is not a phase; a gap between the TGE date
            and the first phase startTime indicates a cliff.
          type: array
          items:
            $ref: '#/components/schemas/CurrencyVestingPhaseDto'
      required:
        - name
        - totalTokens
        - percentOfTotal
        - tgeUnlockPercent
        - type
        - unlockedPercent
        - lockedPercent
        - lockedTokens
        - phases
    CurrencyVestingScheduleUntrackedDto:
      type: object
      properties:
        totalTokens:
          type: string
          example: '4278000000'
          description: >-
            Total tokens in allocations without a known unlock schedule (raw
            token units).
        percentOfTotal:
          type: number
          nullable: true
          example: 42.78
          description: >-
            Untracked tokens as a percent of total supply (max supply with a
            fallback to total supply); null when supply is unavailable.
        allocationNames:
          example:
            - Arbitrum Foundation
            - DAO Treasury
          description: Names of the untracked allocations.
          type: array
          items:
            type: string
      required:
        - totalTokens
        - percentOfTotal
        - allocationNames
    CurrencyVestingPhaseDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - linear
            - nonlinear
            - dynamic
          example: linear
          description: Phase release type — matches the round vesting type.
        startTime:
          type: number
          example: 1715000000000
          description: Phase window start — Unix milliseconds (first release in the phase).
        endTime:
          type: number
          example: 1746000000000
          description: >-
            Phase window end — Unix milliseconds (last release in the phase).
            Equals startTime for single-release phases.
        unlockPercent:
          type: number
          example: 72.6
          description: Percentage of the round unlocked during this phase.
        unlockTokens:
          type: string
          example: '12500000'
          description: Tokens released during this phase, in the project's native token.
        frequency:
          type: string
          enum:
            - daily
            - weekly
            - monthly
            - quarterly
            - yearly
          nullable: true
          example: monthly
          description: >-
            Release cadence. Set only for linear phases with a regular
            single-unit cadence; null otherwise (the cadence can be derived from
            startTime, endTime and periods).
        periods:
          type: number
          example: 12
          description: Number of release periods in the phase.
        percentPerPeriod:
          type: number
          example: 6.05
          nullable: true
          description: >-
            Percentage of the round released per period. Null for dynamic
            phases, where amounts vary between releases.
      required:
        - type
        - startTime
        - endTime
        - unlockPercent
        - unlockTokens
        - frequency
        - periods
        - percentPerPeriod
  securitySchemes:
    X-Api-Key:
      name: X-Api-Key
      type: apiKey
      in: header

````