Bitwise API

Read-only market-data API for Bitwise indexes, ETFs, and fund data: index metadata, historical daily index values, index constituents with prices, supplies, and weights, per-fund data (market price, intra-day and previous NAV, AUM, holdings, crypto-per-share, performance), and ETF listings and details. Authenticated with an API key in the Authorization header.

OpenAPI Specification

bitwise-openapi.yml Raw ↑
openapi: 3.1.0
x-apievangelist-generated: '2026-07-18'
x-apievangelist-method: derived
x-apievangelist-source: postman/bitwise-collection.json (published collection https://developers.bitwiseinvestments.com/)
info:
  title: Bitwise API
  version: v1
  description: >-
    Read-only market-data API for Bitwise indexes, ETFs, and fund data. Returns
    index metadata, historical daily index values, index constituents with
    prices/supplies/weights, per-fund data (market price, NAV, AUM, holdings,
    crypto-per-share, performance), and ETF listings and details. Endpoints and
    the authentication model are derived from the provider's published Postman
    collection at https://developers.bitwiseinvestments.com/; base host and error
    envelope were confirmed by live probe of https://api.bitwiseinvestments.com.
  contact:
    name: Bitwise API Support
    email: api@bitwiseinvestments.com
    url: https://developers.bitwiseinvestments.com/
  termsOfService: https://bitwiseinvestments.com/terms-of-service
servers:
  - url: https://api.bitwiseinvestments.com
    description: Production
security:
  - apiKeyAuth: []
tags:
  - name: Indexes
    description: Bitwise crypto index metadata, history, and constituents.
  - name: Funds
    description: Per-fund market data (NAV, AUM, holdings, performance).
  - name: ETFs
    description: Bitwise exchange-traded fund listings and details.
paths:
  /api/v1/indexes:
    get:
      operationId: listIndexes
      tags: [Indexes]
      summary: List indexes
      description: >-
        Returns metadata about available indexes, including their names,
        inception dates, descriptions, and constituent assets.
      responses:
        '200':
          description: Index metadata list.
          content:
            application/json:
              schema:
                type: array
                items: { $ref: '#/components/schemas/Index' }
        '401': { $ref: '#/components/responses/Unauthorized' }
  /api/v1/indexes/{indexName}/history:
    get:
      operationId: getIndexHistory
      tags: [Indexes]
      summary: Get index history
      description: >-
        Returns historical daily index values. Each element contains a date and
        the corresponding index value. By default all values are included from
        2017-01-01 (or index inception), including backtested data. Results can
        be filtered by date range and can exclude backtested values.
      parameters:
        - name: indexName
          in: path
          required: true
          description: Index identifier (e.g. DEFI).
          schema: { type: string, example: DEFI }
        - name: startDate
          in: query
          required: false
          description: Earliest date to include (YYYY-MM-DD).
          schema: { type: string, format: date }
        - name: endDate
          in: query
          required: false
          description: Latest date to include (YYYY-MM-DD).
          schema: { type: string, format: date }
        - name: excludeBacktested
          in: query
          required: false
          description: Exclude backtested values from the series.
          schema: { type: boolean }
      responses:
        '200':
          description: Daily index value series.
          content:
            application/json:
              schema:
                type: array
                items: { $ref: '#/components/schemas/IndexHistoryPoint' }
        '401': { $ref: '#/components/responses/Unauthorized' }
  /api/v1/indexes/{indexName}/constituents:
    get:
      operationId: getIndexConstituents
      tags: [Indexes]
      summary: Get index constituents
      description: >-
        Returns current and past index information including index value and
        constituent assets with their prices, supplies, and weights. A timestamp
        may be supplied to retrieve data from a particular point in time; omit it
        to receive the most recent available data.
      parameters:
        - name: indexName
          in: path
          required: true
          description: Index identifier (e.g. DEFI).
          schema: { type: string, example: DEFI }
        - name: timestamp
          in: query
          required: false
          description: Point-in-time to retrieve constituents for.
          schema: { type: string, format: date-time }
      responses:
        '200':
          description: Index value plus weighted constituents.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/IndexConstituents' }
        '401': { $ref: '#/components/responses/Unauthorized' }
  /api/v1/fundData/{fundName}:
    get:
      operationId: getFundData
      tags: [Funds]
      summary: Get fund data
      description: >-
        Returns data for the specified fund, including market price, intra-day
        NAV, previous-day NAV, AUM, price change, performance, shares
        outstanding, holdings, crypto-per-share, and return.
      parameters:
        - name: fundName
          in: path
          required: true
          description: Fund identifier (e.g. defiFund).
          schema: { type: string, example: defiFund }
      responses:
        '200':
          description: Fund data.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/FundData' }
        '401': { $ref: '#/components/responses/Unauthorized' }
  /api/v1/etfs:
    get:
      operationId: listEtfs
      tags: [ETFs]
      summary: List ETFs
      description: Returns a list of all supported ETFs.
      responses:
        '200':
          description: Supported ETFs.
          content:
            application/json:
              schema:
                type: array
                items: { $ref: '#/components/schemas/Etf' }
        '401': { $ref: '#/components/responses/Unauthorized' }
  /api/v1/etf/{etfName}:
    get:
      operationId: getEtf
      tags: [ETFs]
      summary: Get ETF
      description: >-
        Retrieves ETF data for a specified fund symbol and optional date. If no
        date is provided it defaults to the current date and returns
        comprehensive fund information including pricing, holdings, and metadata.
      parameters:
        - name: etfName
          in: path
          required: true
          description: ETF ticker symbol (e.g. BITB).
          schema: { type: string, example: BITB }
        - name: date
          in: query
          required: false
          description: As-of date (YYYY-MM-DD); defaults to today.
          schema: { type: string, format: date }
      responses:
        '200':
          description: ETF data.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Etf' }
        '401': { $ref: '#/components/responses/Unauthorized' }
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        API key sent in the Authorization header. Request a key from
        api@bitwiseinvestments.com.
  responses:
    Unauthorized:
      description: Authentication credentials were missing or incorrect.
      content:
        application/json:
          schema: { $ref: '#/components/schemas/Error' }
          example:
            message: Authentication credentials were missing or incorrect.
            id: unauthorized_request
            errors:
              - field: apiKey
                message: Invalid or missing API key
  schemas:
    Index:
      type: object
      description: Index metadata (shape not published; representative fields).
      properties:
        name: { type: string }
        inceptionDate: { type: string, format: date }
        description: { type: string }
        constituents: { type: array, items: { type: string } }
    IndexHistoryPoint:
      type: object
      properties:
        date: { type: string, format: date }
        value: { type: number }
    IndexConstituents:
      type: object
      properties:
        value: { type: number }
        timestamp: { type: string, format: date-time }
        constituents:
          type: array
          items:
            type: object
            properties:
              asset: { type: string }
              price: { type: number }
              supply: { type: number }
              weight: { type: number }
    FundData:
      type: object
      properties:
        marketPrice: { type: number }
        intraDayNav: { type: number }
        previousDayNav: { type: number }
        aum: { type: number }
        priceChange: { type: number }
        sharesOutstanding: { type: number }
        cryptoPerShare: { type: number }
    Etf:
      type: object
      properties:
        symbol: { type: string }
        name: { type: string }
        date: { type: string, format: date }
    Error:
      type: object
      description: Bitwise error envelope (not RFC 9457).
      properties:
        message: { type: string }
        id: { type: string, description: Machine-readable error identifier. }
        errors:
          type: array
          items:
            type: object
            properties:
              field: { type: string }
              message: { type: string }