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

# Get Research Report

> One row per published research report, keyed by reportID: title, slug, hook, summary, the full markdown body, publish and update times, reading time, subscription tier, and the authors, tags and assets it covers. Covers every kind of published content, so filter on reportType or category to narrow.



## OpenAPI

````yaml api-reference/data-api/openapi.json GET /query/tabular/research-reports/{reportID}
openapi: 3.0.0
info:
  description: >-
    The Blockworks Data API is a unified, read-only REST interface to
    Blockworks' warehouse-modeled crypto dataset, powered by Messari's research
    and data infrastructure. It serves two kinds of models: tabular models,
    which return current, filterable, sortable rows for entities such as assets,
    networks, protocols, exchanges, stablecoins, and ETFs; and timeseries
    models, which return historical metric series at a chosen granularity for
    one or many entities. Every endpoint shares the same query grammar (column
    projection, per-column filters, sorting, and pagination) and returns the
    standard `{ "error": ..., "data": ... }` envelope. Authenticate by sending
    your API key in the `X-Blockworks-API-Key` header.
  title: Blockworks Data API
  version: 0.1.0
servers:
  - description: Blockworks API
    url: https://api.blockworks.com
security:
  - apiKey: []
tags:
  - description: 'Models documented under Acquisitions: Acquisition Deals (table).'
    name: Acquisitions
  - description: >-
      Models documented under Assets: Assets (table), Asset Marketcap
      (timeseries), Asset Price (timeseries), Asset Sharpe (timeseries), Asset
      Supply (timeseries), Asset Volatility (timeseries).
    name: Assets
  - description: >-
      Models documented under Blockchains: Blockchains (table), Blockchains
      (timeseries).
    name: Blockchains
  - description: >-
      Models documented under Derivatives: Perpetual Markets (table), Perpetual
      Markets (timeseries).
    name: Derivatives
  - description: >-
      Models documented under Digital Asset Treasuries: DAT Companies (table),
      DAT Company Assets (table), DAT Companies (timeseries), DAT Companies by
      Asset (timeseries).
    name: Digital Asset Treasuries
  - description: >-
      Models documented under ETFs: ETF Assets (table), ETF Providers (table),
      ETF Assets (timeseries), ETF Providers (timeseries).
    name: ETFs
  - description: >-
      Models documented under Exchanges: Exchange Country (timeseries), Exchange
      Region (timeseries), Exchange Type (timeseries), Exchanges (timeseries).
    name: Exchanges
  - description: >-
      Models documented under Funding Rounds: Funding Round Investors (table),
      Funding Rounds (table), Sector Fundraising (timeseries).
    name: Funding Rounds
  - description: >-
      Models documented under Funds & Investors: Fund Managers (table), Funds
      (table).
    name: Funds & Investors
  - description: >-
      Models documented under Launchpads: Launchpad Chains (table), Launchpads
      (table), Launchpads (timeseries), Launchpads by Chain (timeseries).
    name: Launchpads
  - description: >-
      Models documented under Lending Protocols: Lending Protocol Product
      Markets (table), Lending Protocol Products (table), Lending Protocols
      (table), Lending Protocols (timeseries), Lending Protocols by Product
      (timeseries), Lending Protocols by Product Market (timeseries).
    name: Lending Protocols
  - description: >-
      Models documented under Market Overview: Sector Marketdata (timeseries),
      Sub-Sector Marketdata (timeseries).
    name: Market Overview
  - description: 'Models documented under Markets: Market (BQEN) (timeseries).'
    name: Markets
  - description: >-
      Models documented under News & Research: News Feed (table), Research
      Reports (table), Topics (timeseries).
    name: News & Research
  - description: >-
      Models documented under Perp DEXes: Perp DEX Protocols (table), Perp DEX
      Protocols (timeseries).
    name: Perp DEXes
  - description: 'Models documented under Projects & Entities: Projects (timeseries).'
    name: Projects & Entities
  - description: >-
      Models documented under Protocol Revenue: Protocol Revenue (timeseries),
      Protocol Revenue by Product (timeseries).
    name: Protocol Revenue
  - description: >-
      Models documented under Social & Mindshare: Asset Group Sentiment
      (timeseries), Asset Investor Mentions (timeseries), Asset Mindshare
      (timeseries), Asset Sentiment (timeseries), Project Mindshare
      (timeseries), Sector Asset Mindshare (timeseries), Sector Asset Sentiment
      (timeseries), Sector Investor Mentions (timeseries), Sub-Sector Asset
      Mindshare (timeseries), Sub-Sector Asset Sentiment (timeseries).
    name: Social & Mindshare
  - description: >-
      Models documented under Spot DEXes: Spot DEX Protocol Chains (table), Spot
      DEX Protocols (table), Spot DEX Protocols (timeseries), Spot DEX Protocols
      by Chain (timeseries).
    name: Spot DEXes
  - description: >-
      Models documented under Stablecoins: Stablecoin Chains (table), Stablecoin
      Currencies (table), Stablecoin FX Pairs (table), Stablecoin Issuers
      (table), Stablecoin Products (table), Stablecoin Reserve Entities (table),
      Stablecoin FX (timeseries), Stablecoin Reserves (timeseries), Stablecoins
      by Chain (timeseries), Stablecoins by Currency (timeseries), Stablecoins
      by Issuer (timeseries), Stablecoins by Product (timeseries).
    name: Stablecoins
  - description: >-
      Models documented under TCG Platforms: TCG Platform Chains (table), TCG
      Platforms by Chain (timeseries).
    name: TCG Platforms
  - description: >-
      Discovery of the tabular models: one row per entity, with per-column
      filters, sorting and pagination.
    name: Tabular
  - description: >-
      Discovery of the timeseries models: one series per entity, as points at
      the granularities each model declares.
    name: Timeseries
  - description: >-
      Models documented under Token Transparency Framework: Token Transparency
      Filing Questions (table), Token Transparency Filing Schemas (table), Token
      Transparency Filings (table), Token Transparency Projects (table).
    name: Token Transparency Framework
  - description: >-
      Models documented under Tokenized Commodities: Tokenized Commodities
      (table), Tokenized Commodity Chains (table), Tokenized Commodity Issuers
      (table), Tokenized Commodity Products (table), Tokenized Commodities by
      Chain (timeseries), Tokenized Commodities by Commodity (timeseries),
      Tokenized Commodities by Issuer (timeseries), Tokenized Commodities by
      Product (timeseries).
    name: Tokenized Commodities
  - description: >-
      Models documented under Tokenized Equities: Tokenized Equities (table),
      Tokenized Equity Chains (table), Tokenized Equity Issuers (table),
      Tokenized Equity Products (table), Tokenized Equities by Chain
      (timeseries), Tokenized Equities by Equity (timeseries), Tokenized
      Equities by Issuer (timeseries), Tokenized Equities by Product
      (timeseries).
    name: Tokenized Equities
  - description: >-
      Models documented under Vaults: Vault Chains (table), Vault Curators
      (table), Vault Protocols (table), Vault Curators (timeseries), Vault
      Protocols (timeseries), Vaults by Chain (timeseries).
    name: Vaults
paths:
  /query/tabular/research-reports/{reportID}:
    get:
      tags:
        - News & Research
      summary: Get Research Report
      description: >-
        One row per published research report, keyed by reportID: title, slug,
        hook, summary, the full markdown body, publish and update times, reading
        time, subscription tier, and the authors, tags and assets it covers.
        Covers every kind of published content, so filter on reportType or
        category to narrow.
      operationId: getTabularRow_research_reports
      parameters:
        - description: The Report ID identifying the row.
          in: path
          name: reportID
          required: true
          schema:
            type: string
        - description: Comma-separated fields to return; defaults to all fields.
          in: query
          name: selections
          schema:
            items:
              enum:
                - reportID
                - title
                - slug
                - hook
                - summary
                - content
                - publishDate
                - createdAt
                - updatedAt
                - readingTimeInMinutes
                - subscriptionTier
                - reportType
                - category
                - previewImageURL
                - assetIDs
                - assets
                - authorNames
                - authors
                - tagNames
                - tags
              type: string
            type: array
      responses:
        '200':
          content:
            application/json:
              example:
                data:
                  assetIDs:
                    - <assetIDs>
                  assets:
                    - {}
                  authorNames:
                    - <authorNames>
                  authors:
                    - {}
                  category: <category>
                  content: <content>
                  createdAt: '2024-01-01T00:00:00Z'
                  hook: <hook>
                  previewImageURL: <previewImageURL>
                  publishDate: '2024-01-01T00:00:00Z'
                  readingTimeInMinutes: 123.45
                  reportID: <reportID>
                  reportType: <reportType>
                  slug: <slug>
                  subscriptionTier: <subscriptionTier>
                  summary: <summary>
                  tagNames:
                    - <tagNames>
                  tags:
                    - {}
                  title: <title>
                  updatedAt: '2024-01-01T00:00:00Z'
                error: null
                metadata:
                  matchedField: reportID
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/ResearchReportsRow'
                  error:
                    nullable: true
                    type: string
                  metadata:
                    description: >-
                      The public field the lookup value matched on: the primary
                      key or an alternative identifier.
                    properties:
                      matchedField:
                        type: string
                    required:
                      - matchedField
                    type: object
                required:
                  - data
                  - metadata
                type: object
          description: The matching row, and which field it matched on.
        '400':
          content:
            application/json:
              example:
                data: null
                error: unknown selection field "nope"
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The request is malformed: an unknown query parameter, or a
            selections field the model does not have.
        '401':
          content:
            application/json:
              example:
                data: null
                error: this model requires authentication
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: No API key was sent and the model requires one.
        '403':
          content:
            application/json:
              example:
                data: null
                error: this model requires the "news_research_unified" permission
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The API key is not valid, or does not hold the
            "news_research_unified" permission.
        '404':
          content:
            application/json:
              example:
                data: null
                error: no row found matching "unknown"
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            No row's Report ID equals the path value, or the path names a model
            that does not exist.
components:
  schemas:
    ResearchReportsRow:
      properties:
        assetIDs:
          description: >-
            Asset IDs the research report covers. Use it to find every report
            written about an asset.
          items:
            type: string
          nullable: true
          type: array
        assets:
          description: >-
            Assets the research report covers, including id, name, symbol and
            slug. Only published assets resolve, so a report may carry an
            assetID with no matching entry here.
          items:
            type: object
          nullable: true
          type: array
        authorNames:
          description: Names of the research report's authors. Use it to filter by author.
          items:
            type: string
          nullable: true
          type: array
        authors:
          description: >-
            Authors of the research report, including id, name, image and
            linkedinUrl.
          items:
            type: object
          nullable: true
          type: array
        category:
          description: >-
            The editorial category of the research report (e.g. Standard
            Reports, Deep Dives, Quarterly Reports, Recaps). Null for content
            that carries no category.
          nullable: true
          type: string
        content:
          description: >-
            The full body of the research report as markdown. Omit it from
            selections to page through reports without transferring the bodies.
          nullable: true
          type: string
        createdAt:
          description: When the research report was first created in the content system.
          format: date-time
          nullable: true
          type: string
        hook:
          description: A one-line hook introducing the research report.
          nullable: true
          type: string
        previewImageURL:
          description: URL of the preview image for the research report.
          nullable: true
          type: string
        publishDate:
          description: >-
            When the research report was published. Reports embargoed for a
            future date are not returned until that date passes.
          format: date-time
          nullable: true
          type: string
        readingTimeInMinutes:
          description: The estimated time to read the research report, in minutes.
          nullable: true
          type: number
        reportID:
          description: The unique identifier of the research report.
          nullable: true
          type: string
        reportType:
          description: >-
            The kind of content the row is (e.g. research, enterprise_research,
            hub, summary, blog, podcast, strapi_article).
          nullable: true
          type: string
        slug:
          description: >-
            The URL slug of the research report. Slugs are not unique across
            reports, so use reportID to address a single one.
          nullable: true
          type: string
        subscriptionTier:
          description: >-
            The subscription tier the research report is published under (basic,
            pro, or enterprise).
          nullable: true
          type: string
        summary:
          description: A short summary of the research report.
          nullable: true
          type: string
        tagNames:
          description: >-
            Display names of the tags on the research report. Use it to filter
            by tag.
          items:
            type: string
          nullable: true
          type: array
        tags:
          description: Tags on the research report, including id and name.
          items:
            type: object
          nullable: true
          type: array
        title:
          description: The title of the research report.
          nullable: true
          type: string
        updatedAt:
          description: >-
            When the research report was last edited in the content system.
            Filter on it to pull only what changed since your last sync.
          format: date-time
          nullable: true
          type: string
      type: object
    ErrorResponse:
      properties:
        data:
          description: Always null on an error.
          nullable: true
          type: object
        error:
          description: What went wrong, in one sentence.
          type: string
      required:
        - error
        - data
      type: object
  securitySchemes:
    apiKey:
      description: >-
        API key sent in the `X-Blockworks-API-Key` header; `x-messari-api-key`
        is accepted for existing integrations. The catalog endpoints and models
        on the public access tier need no key.
      in: header
      name: X-Blockworks-API-Key
      type: apiKey

````