> ## 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.

# Public Sale Detail

> Full data on a single public sale (token sale / crowdsale). Includes heavy and privileged fields not returned in the list view: valuation, initial market cap, tokens for sale, ROI / ATH ROI, project backers (`investors`) and the sale description.<br/><br/>Available from&#58; <Badge color="orange">Pro</Badge><br/>Cost&#58; <Badge color="surface">1 credit per request</Badge>

<Warning>
  ROI and ATH ROI are multipliers (×), not percentages.
</Warning>


## OpenAPI

````yaml https://api.cryptorank.io/v3/documentation-json get /v3/public-sales/{id}
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/public-sales/{id}:
    get:
      tags:
        - Public Sales
      summary: Public Sale Detail
      description: >-
        **Description**


        Full data on a single public sale (token sale / crowdsale). Includes
        heavy and privileged fields not returned in the list view: valuation,
        initial market cap, tokens for sale, ROI / ATH ROI, project backers
        (`investors`) and the sale description.


        > **Warning:** ROI and ATH ROI are multipliers (×), not percentages.


        **Access**

        - Available from: **Pro**

        - Cost: 1 credit per request
      operationId: PublicSalesController_getById
      parameters:
        - name: id
          required: true
          in: path
          description: Sale ID.
          schema:
            example: 1234
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - status
                properties:
                  data:
                    $ref: '#/components/schemas/PublicSaleByIdDto'
                  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: Public sale 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:
    PublicSaleByIdDto:
      type: object
      properties:
        id:
          type: number
          example: 1234
          description: Public sale ID.
        currencyId:
          type: number
          example: 28
          description: Coin numeric identifier.
        currencyName:
          type: string
          example: Ethereum
          description: Display name.
        currencySymbol:
          type: string
          example: ETH
          nullable: true
          description: Native token symbol (e.g. 'ETH', 'BNB').
        currencySlug:
          type: string
          example: ethereum
          description: URL-friendly entity slug.
        imageUrl:
          type: string
          example: https://img.cryptorank.io/coins/150x150.ethereum1696248147028.png
          nullable: true
          description: Logo image URL, 150x150. Null when no image is available.
        type:
          type: string
          enum:
            - Angel
            - ICO
            - IEO
            - IDO
            - Node Sale
            - KOL
            - Private/Pre-sale
            - Private
            - Private 2
            - Pre-sale
            - Strategic
            - Strategic 2
            - Pre-Seed
            - Seed
          example: IDO
          description: Sale format.
        status:
          type: string
          enum:
            - upcoming
            - active
            - past
          example: past
          description: 'Sale lifecycle status: upcoming, active, past.'
        date:
          type: string
          example: '2024-08-15T00:00:00.000Z'
          nullable: true
          description: >-
            Sale date (ISO 8601 UTC): start date for `upcoming`/`active` sales,
            end date for `past` sales. Null when unknown.
        raised:
          type: string
          example: '5000000'
          nullable: true
          description: Total raised, USD. Null when undisclosed.
        salePrice:
          type: string
          example: '0.25'
          nullable: true
          description: Token price during the sale, USD. Null when undisclosed.
        valuation:
          type: string
          example: '150000000'
          nullable: true
          description: Project valuation at the sale, USD. Null when undisclosed.
        initialMarketCap:
          type: string
          example: '40000000'
          nullable: true
          description: >-
            Initial market cap at listing, USD (initial price × initial supply).
            Null when the initial price or supply is unknown.
        tokensForSale:
          type: string
          example: '20000000'
          nullable: true
          description: Number of tokens offered in the sale. Null when undisclosed.
        roi:
          type: number
          example: 1.11
          nullable: true
          description: >-
            Current ROI vs sale price, as a multiplier (e.g. 1.11 = 1.11×). Null
            when the sale price or current price is unavailable.
        athRoi:
          type: number
          example: 5.4
          nullable: true
          description: >-
            All-time-high ROI vs sale price, as a multiplier (e.g. 5.4 = 5.4×).
            Null when the sale price or ATH price is unavailable.
        category:
          nullable: true
          description: Coin primary category. Null when no category is assigned.
          type: object
          allOf:
            - $ref: '#/components/schemas/PublicSaleCategoryDto'
        launchpadId:
          type: number
          example: 42
          nullable: true
          description: Sale launchpad ID. Null when sold outside a launchpad.
        launchpadName:
          type: string
          example: CoinList
          nullable: true
          description: Launchpad name. Null when sold outside a launchpad.
        blockchains:
          example:
            - Ethereum
            - BNB Chain
          description: >-
            Blockchains associated with the sale. Empty array when none are
            assigned.
          type: array
          items:
            type: string
        listingDate:
          type: string
          example: '2024-10-01T00:00:00.000Z'
          nullable: true
          description: >-
            Token listing date (ISO 8601 UTC). Populated only for `past` sales;
            null otherwise.
        investors:
          description: >-
            Participating funds & backers of the project (ordered by fund id
            ascending). Empty array when none are known.
          type: array
          items:
            $ref: '#/components/schemas/PublicSaleInvestorDto'
        description:
          type: string
          nullable: true
          description: Sale description. Null when no description is available.
      required:
        - id
        - currencyId
        - currencyName
        - currencySymbol
        - currencySlug
        - imageUrl
        - type
        - status
        - date
        - raised
        - salePrice
        - valuation
        - initialMarketCap
        - tokensForSale
        - roi
        - athRoi
        - category
        - launchpadId
        - launchpadName
        - blockchains
        - listingDate
        - investors
        - description
    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
    PublicSaleCategoryDto:
      type: object
      properties:
        id:
          type: number
          example: 12
        slug:
          type: string
          example: defi
        name:
          type: string
          example: DeFi
      required:
        - id
        - slug
        - name
    PublicSaleInvestorDto:
      type: object
      properties:
        id:
          type: number
          example: 1
        slug:
          type: string
          example: a16z
        name:
          type: string
          example: Andreessen Horowitz
        tier:
          type: number
          example: 1
          nullable: true
          description: Editorial tier 1–5.
        imageUrl:
          type: string
          nullable: true
          description: Absolute URL to the 150×150 fund logo. Null when unavailable.
      required:
        - id
        - slug
        - name
        - tier
        - imageUrl
  securitySchemes:
    X-Api-Key:
      name: X-Api-Key
      type: apiKey
      in: header

````