{
  "openapi": "3.0.1",
  "info": {
    "title": "Crypto Data API - Messari and Blockworks Asset Metrics",
    "description": "Crypto data API from Blockworks and Messari: 40k+ assets, prices, market caps, supply, volatility, protocol revenue, DEX, lending, stablecoins, ETFs, funding rounds, token unlocks, mindshare, news, research and verified intel. Any table or timeseries in one dataset. Bring your own API key.",
    "version": "0.1",
    "x-build-id": "skGGWyS3DKHhrrqB1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~crypto-asset-data-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-crypto-asset-data-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/nabeelbaghoor~crypto-asset-data-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-crypto-asset-data-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/nabeelbaghoor~crypto-asset-data-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-crypto-asset-data-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "apiKey": {
            "title": "Blockworks API key",
            "type": "string",
            "description": "Your own Blockworks API key (the same key covers the Data API and Monitoring, and legacy Messari keys keep working). Create one at app.blockworks.com/account/api. It is sent only in the X-Blockworks-API-Key header to api.blockworks.com. You can also set it as the DATA_API_KEY secret."
          },
          "mode": {
            "title": "What to read",
            "enum": [
              "tabular",
              "tabularRow",
              "timeseries",
              "developments",
              "events",
              "categories",
              "tabularCatalog",
              "timeseriesCatalog"
            ],
            "type": "string",
            "description": "The screener lists rows of any Data API table with filters and sorting. Lookup reads rows by slug, symbol or ID. Timeseries reads history for up to 20 series per call. Developments and events read the Monitoring API's analyst-verified intel. The catalogs list every model with its columns and access tier.",
            "default": "tabular"
          },
          "tabularModel": {
            "title": "Data table",
            "enum": [
              "acquisition-deals",
              "assets",
              "blockchains",
              "dat-companies",
              "dat-company-assets",
              "etf-assets",
              "etf-providers",
              "fund-managers",
              "funding-round-investors",
              "funding-rounds",
              "funds",
              "launchpad-chains",
              "launchpads",
              "lending-market-balances",
              "lending-protocol-product-markets",
              "lending-protocol-products",
              "lending-protocols",
              "markets",
              "news-feed",
              "perp-dex-protocols",
              "perpetual-markets",
              "research-reports",
              "spot-dex-protocol-chains",
              "spot-dex-protocols",
              "stablecoin-chains",
              "stablecoin-currencies",
              "stablecoin-fx-pairs",
              "stablecoin-issuers",
              "stablecoin-products",
              "stablecoin-reserve-entities",
              "tcg-platform-chains",
              "token-transparency-filing-questions",
              "token-transparency-filing-schemas",
              "token-transparency-filings",
              "token-transparency-projects",
              "tokenized-commodities",
              "tokenized-commodity-chains",
              "tokenized-commodity-issuers",
              "tokenized-commodity-products",
              "tokenized-equities",
              "tokenized-equity-chains",
              "tokenized-equity-issuers",
              "tokenized-equity-products",
              "vault-chains",
              "vault-curators",
              "vault-protocols"
            ],
            "type": "string",
            "description": "The Data API table to read, used by the screener and lookup modes. Lookup by slug, symbol or ID works on assets, blockchains, markets, perpetual markets, funding rounds, funds, fund managers, investors, acquisition deals, news, research reports and token transparency tables.",
            "default": "assets"
          },
          "filters": {
            "title": "Filters",
            "type": "object",
            "description": "Screener filters as a JSON object of field plus operator names and values, exactly as the table documents them: {\"circulatingMarketcapRankLte\": 100, \"isStablecoinEq\": false, \"sectorIsOneOf\": [\"DeFi\"]}. Operators are Eq, NotEq, Gt, Gte, Lt, Lte, IsOneOf, IsNotOneOf, Contains, Includes, IncludesAnyOf and their negations. A name the chosen table does not document is dropped with a warning; the tabular catalog lists each column's operators."
          },
          "sortBy": {
            "title": "Sort by",
            "type": "string",
            "description": "A sortable field of the chosen table, such as circulatingMarketcap or circulatingMarketcapRank for assets. Leave empty for the table's default order."
          },
          "sortDirection": {
            "title": "Sort direction",
            "enum": [
              "default",
              "asc",
              "desc"
            ],
            "type": "string",
            "description": "Ascending or descending. Default keeps the table's own order.",
            "default": "default"
          },
          "selections": {
            "title": "Columns to return",
            "type": "array",
            "description": "Optional field names to return, one per line, such as assetID, name, symbol, circulatingMarketcap. For timeseries they name the metrics, such as close and volume. Empty returns every field.",
            "items": {
              "type": "string"
            }
          },
          "identifiers": {
            "title": "Identifiers (lookup)",
            "type": "array",
            "description": "Rows to look up, one per line: a primary key, or a slug or symbol where the table accepts one, such as bitcoin, ETH or solana for assets.",
            "items": {
              "type": "string"
            }
          },
          "timeseriesModel": {
            "title": "Timeseries model",
            "enum": [
              "asset-group-sentiment",
              "asset-investor-mentions",
              "asset-marketcap",
              "asset-mindshare",
              "asset-price",
              "asset-sentiment",
              "asset-sharpe",
              "asset-supply",
              "asset-volatility",
              "blockchains",
              "bqen",
              "dat-companies",
              "dat-companies-by-asset",
              "etf-assets",
              "etf-providers",
              "exchange-country",
              "exchange-region",
              "exchange-type",
              "exchanges",
              "launchpads",
              "launchpads-by-chain",
              "lending-market-balances",
              "lending-protocols",
              "lending-protocols-by-product",
              "lending-protocols-by-product-market",
              "perp-dex-protocols",
              "perpetual-markets",
              "project-mindshare",
              "projects",
              "protocol-revenue",
              "protocol-revenue-by-product",
              "sector-asset-mindshare",
              "sector-asset-sentiment",
              "sector-fundraising",
              "sector-investor-mentions",
              "sector-marketdata",
              "spot-dex-protocols",
              "spot-dex-protocols-by-chain",
              "stablecoin-fx",
              "stablecoin-reserves",
              "stablecoins-by-chain",
              "stablecoins-by-currency",
              "stablecoins-by-issuer",
              "stablecoins-by-product",
              "sub-sector-asset-mindshare",
              "sub-sector-asset-sentiment",
              "sub-sector-marketdata",
              "tcg-platforms-by-chain",
              "token-unlocks",
              "tokenized-commodities-by-chain",
              "tokenized-commodities-by-commodity",
              "tokenized-commodities-by-issuer",
              "tokenized-commodities-by-product",
              "tokenized-equities-by-chain",
              "tokenized-equities-by-equity",
              "tokenized-equities-by-issuer",
              "tokenized-equities-by-product",
              "trending-topics",
              "vault-curators",
              "vault-protocols",
              "vaults-by-chain"
            ],
            "type": "string",
            "description": "The timeseries model to read. Asset models (price, market cap, supply, volatility, Sharpe, mindshare, sentiment, token unlocks) take asset slugs or symbols, which are resolved to asset IDs. Sector and exchange region models take names such as DeFi or Asia.",
            "default": "asset-price"
          },
          "granularity": {
            "title": "Granularity",
            "enum": [
              "5m",
              "1h",
              "6h",
              "1d",
              "1w",
              "1n"
            ],
            "type": "string",
            "description": "Resolution of the points. Each model supports only some of these (listed next to the model name); 1d is the most widely available, 1n is a calendar month.",
            "default": "1d"
          },
          "seriesKeys": {
            "title": "Series keys",
            "type": "array",
            "description": "The series to read, one per line: asset slugs, symbols or IDs for asset models (bitcoin, ETH), blockchain or market slugs or IDs, sector names for sector models, or the IDs from the matching table for the rest. Empty reads every series on models that allow it.",
            "default": [
              "bitcoin",
              "ethereum"
            ],
            "items": {
              "type": "string"
            }
          },
          "timeframe": {
            "title": "Timeframe",
            "type": "string",
            "description": "The window ending now: ytd, mtd, qtd, 30d, 12h, 52w, 365d, or a calendar year or month such as 2025 or 2025-06. There is no 1y: use 365d. Ignored when a start or end date is set.",
            "default": "30d"
          },
          "startDate": {
            "title": "Start date",
            "type": "string",
            "description": "Optional start as YYYY-MM-DD, an RFC3339 time or unix seconds. Used by the timeseries mode, and by developments and events (against their start time)."
          },
          "endDate": {
            "title": "End date",
            "type": "string",
            "description": "Optional end as YYYY-MM-DD, an RFC3339 time or unix seconds."
          },
          "assetIds": {
            "title": "Assets (monitoring)",
            "type": "array",
            "description": "Asset slugs or UUIDs to filter developments and events by, one per line, such as bitcoin or solana. Unknown tokens are dropped silently by the API.",
            "items": {
              "type": "string"
            }
          },
          "intelCategories": {
            "title": "Intel categories",
            "type": "array",
            "description": "Category slugs from the categories mode, one per line, such as security_and_hacks.",
            "items": {
              "type": "string"
            }
          },
          "intelSubcategories": {
            "title": "Intel subcategories",
            "type": "array",
            "description": "Subcategory slugs from the categories mode, one per line.",
            "items": {
              "type": "string"
            }
          },
          "minimumImportance": {
            "title": "Minimum importance",
            "enum": [
              "any",
              "not-important",
              "low",
              "medium",
              "high"
            ],
            "type": "string",
            "description": "Only developments or events at or above this importance.",
            "default": "any"
          },
          "verifiedOnly": {
            "title": "Analyst-verified only",
            "type": "boolean",
            "description": "Only items an intel analyst has verified.",
            "default": false
          },
          "actionableOnly": {
            "title": "Actionable only",
            "type": "boolean",
            "description": "Only items flagged actionable.",
            "default": false
          },
          "governanceOnly": {
            "title": "Governance only",
            "type": "boolean",
            "description": "Only governance-related items.",
            "default": false
          },
          "preTgeOnly": {
            "title": "Pre-TGE assets only",
            "type": "boolean",
            "description": "Only items about assets before their token generation event.",
            "default": false
          },
          "assetSectors": {
            "title": "Asset sectors",
            "type": "array",
            "description": "Asset sectors to filter by, one per line.",
            "items": {
              "type": "string"
            }
          },
          "assetSubsectors": {
            "title": "Asset subsectors",
            "type": "array",
            "description": "Asset subsectors to filter by, one per line.",
            "items": {
              "type": "string"
            }
          },
          "eventIds": {
            "title": "Event IDs",
            "type": "array",
            "description": "Event UUIDs or slug-with-id forms to filter by, one per line. Unknown ones are refused by the API.",
            "items": {
              "type": "string"
            }
          },
          "search": {
            "title": "Search text",
            "type": "string",
            "description": "Free-text search over developments or events, up to 200 characters."
          },
          "catalogScope": {
            "title": "Catalog scope",
            "enum": [
              "all",
              "publicOnly",
              "accessible"
            ],
            "type": "string",
            "description": "Every model, only models published to the public API, or only the models your key may query.",
            "default": "all"
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Ceiling on rows returned (and charged) in this run.",
            "default": 200
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Pacing ceiling for calls to the Blockworks API.",
            "default": 120
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}