{
  "openapi": "3.0.0",
  "info": {
    "description": "OpenAPI specification for the entire Messari API",
    "title": "Messari API - News V1",
    "version": "1.0.0"
  },
  "servers": [
    {
      "description": "Messari API",
      "url": "https://api.messari.io"
    }
  ],
  "security": [],
  "paths": {
    "/news/v1/news/assets": {
      "get": {
        "description": "Get the assets that Messari News covers. Use the returned slug or id to filter the news feed by asset.",
        "operationId": "GetNewsAssets",
        "parameters": [
          {
            "description": "Number of results per page",
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer",
              "default": 10
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/newsAsset"
                      },
                      "type": "array"
                    },
                    "error": {
                      "type": "string"
                    },
                    "metadata": {
                      "$ref": "#/components/schemas/Pagination"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                },
                "example": {
                  "error": null,
                  "data": [
                    {
                      "id": "e587ecb4-9b03-43e3-9417-7694109efe3a",
                      "name": "#MetaHash",
                      "slug": "metahash",
                      "symbol": "MHC"
                    },
                    {
                      "id": "750efb56-136e-45db-ad05-7ae276bfaf02",
                      "name": "$1",
                      "slug": "1-dollar-sol-coin",
                      "symbol": "$1"
                    },
                    {
                      "id": "59e2e22f-f1f2-4a43-8c07-bf9013ac634d",
                      "name": "$COPPER",
                      "slug": "copper",
                      "symbol": "$copper"
                    },
                    {
                      "id": "83f39f08-989e-49f0-8809-7452c77ed489",
                      "name": "$DEZ",
                      "slug": "dez",
                      "symbol": "dez"
                    },
                    {
                      "id": "de62f840-6cfa-4e43-b6ba-fbf2cef51f19",
                      "name": "$DOG (Ordinals)",
                      "slug": "dog-ordinals-0",
                      "symbol": "$dog"
                    }
                  ],
                  "metadata": {
                    "limit": 10,
                    "page": 1,
                    "totalRows": 20746,
                    "totalPages": 2075
                  }
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ],
        "tags": [
          "news/News"
        ],
        "summary": "Get News Assets"
      }
    },
    "/news/v1/news/feed": {
      "get": {
        "description": "Gets the news feed for the user",
        "operationId": "GetNewsFeed",
        "parameters": [
          {
            "description": "Time range end in RFC3339 format (e.g., '2025-11-06T23:59:59Z'). Also accepts timestamp in milliseconds UTC. If publishedBefore is provided, publishedAfter must be greater.",
            "in": "query",
            "name": "publishedBefore",
            "schema": {
              "type": "string",
              "example": "2025-11-06T23:59:59Z",
              "default": "2025-11-06T23:59:59Z"
            }
          },
          {
            "description": "Time range start in RFC3339 format (e.g., '2025-11-05T00:00:00Z'). Also accepts timestamp in milliseconds UTC.",
            "in": "query",
            "name": "publishedAfter",
            "schema": {
              "type": "string",
              "example": "2025-11-05T00:00:00Z",
              "default": "2025-11-05T00:00:00Z"
            }
          },
          {
            "description": "List of source types to filter by. If provided, the results will be filtered by these source types: Blog,Forum,News",
            "in": "query",
            "name": "sourceTypes",
            "schema": {
              "items": {
                "type": "string",
                "enum": [
                  "Blog",
                  "Forum",
                  "News"
                ]
              },
              "type": "array",
              "example": [
                "News"
              ],
              "default": [
                "News"
              ]
            }
          },
          {
            "description": "List of source IDs to filter by. If provided, the results will be filtered by these source IDs.",
            "in": "query",
            "name": "sourceIds",
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "example": [
                "67852f4b-e8a8-4468-80c0-dd0319db014c"
              ],
              "default": [
                "67852f4b-e8a8-4468-80c0-dd0319db014c"
              ]
            }
          },
          {
            "description": "List of asset identifiers to filter by - accepts slugs (e.g., 'bitcoin', 'ethereum') or UUIDs. If provided, the results will be filtered by these asset identifiers.",
            "in": "query",
            "name": "assetIds",
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "example": [
                "bitcoin",
                "ethereum"
              ],
              "default": [
                "bitcoin",
                "ethereum"
              ]
            }
          },
          {
            "description": "Sort by publish time in ascending or descending order. 2 DESC by default.",
            "in": "query",
            "name": "sort",
            "schema": {
              "enum": [
                1,
                2
              ],
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Number of results per page",
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer",
              "default": 10
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Article"
                      },
                      "type": "array"
                    },
                    "error": {
                      "type": "string"
                    },
                    "metadata": {
                      "$ref": "#/components/schemas/Pagination"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                },
                "example": {
                  "error": null,
                  "data": [
                    {
                      "assets": [
                        {
                          "id": "1e31218a-e44e-4285-820c-8282ee222035",
                          "name": "Bitcoin",
                          "slug": "bitcoin",
                          "symbol": "BTC"
                        },
                        {
                          "id": "b3d5d66c-26a2-404c-9325-91dc714a722b",
                          "name": "Solana",
                          "slug": "solana",
                          "symbol": "SOL"
                        },
                        {
                          "id": "21c795f5-1bfd-40c3-858e-e9d7e820c6d0",
                          "name": "Ethereum",
                          "slug": "ethereum",
                          "symbol": "ETH"
                        }
                      ],
                      "publishTimeMillis": 1762444169000,
                      "publishTime": "2025-11-06T15:49:29Z",
                      "source": {
                        "id": "69e033a6-a60d-4694-b0b7-1d85c52c8a46",
                        "sourceName": "CryptoPotato",
                        "sourceType": "News"
                      },
                      "title": "All the Bullish Narratives Are Still There: So Why Is Bitcoin (BTC) Breaking Down?",
                      "url": "https://cryptopotato.com/all-the-bullish-narratives-are-still-there-so-why-is-bitcoin-btc-breaking-down/",
                      "category": null,
                      "subcategory": null,
                      "description": "BTC, ETH, and SOL are losing all major SMAs signals amid deteriorating structure, even though bullish catalysts remain \"on paper.\"",
                      "sentiment": [
                        {
                          "id": "1e31218a-e44e-4285-820c-8282ee222035",
                          "name": "Bitcoin",
                          "slug": "bitcoin",
                          "symbol": "BTC",
                          "sentiment": 0.2
                        },
                        {
                          "id": "21c795f5-1bfd-40c3-858e-e9d7e820c6d0",
                          "name": "Ethereum",
                          "slug": "ethereum",
                          "symbol": "ETH",
                          "sentiment": 0
                        },
                        {
                          "id": "b3d5d66c-26a2-404c-9325-91dc714a722b",
                          "name": "Solana",
                          "slug": "solana",
                          "symbol": "SOL",
                          "sentiment": -0.2
                        }
                      ]
                    },
                    {
                      "assets": [
                        {
                          "id": "51f8ea5e-f426-4f40-939a-db7e05495374",
                          "name": "Tether",
                          "slug": "tether",
                          "symbol": "USDT"
                        },
                        {
                          "id": "4515ba15-2719-4183-b0ca-b9255d55b67e",
                          "name": "USDC",
                          "slug": "circle-usdc-stablecoin",
                          "symbol": ""
                        },
                        {
                          "id": "1e31218a-e44e-4285-820c-8282ee222035",
                          "name": "Bitcoin",
                          "slug": "bitcoin",
                          "symbol": "BTC"
                        }
                      ],
                      "publishTimeMillis": 1762443555000,
                      "publishTime": "2025-11-06T15:39:15Z",
                      "source": {
                        "id": "dc498664-5ea0-48ef-80fa-e4e74c291094",
                        "sourceName": "The Block",
                        "sourceType": "News"
                      },
                      "title": "Cathie Wood trims bitcoin bull case by $300,000 as stablecoins 'usurp' part of its key use case",
                      "url": "https://www.theblock.co/post/377897/arks-cathie-wood-cuts-bitcoin-bull-case-300000-stablecoins-usurp-part-role?utm_source=rss&utm_medium=rss",
                      "category": null,
                      "subcategory": null,
                      "description": "\n            Her comments come as institutions recalibrate BTC forecasts, with Galaxy turning cautious and JPMorgan projecting renewed upside.\n        ",
                      "sentiment": [
                        {
                          "id": "1e31218a-e44e-4285-820c-8282ee222035",
                          "name": "Bitcoin",
                          "slug": "bitcoin",
                          "symbol": "BTC",
                          "sentiment": 0.4
                        },
                        {
                          "id": "51f8ea5e-f426-4f40-939a-db7e05495374",
                          "name": "Tether",
                          "slug": "tether",
                          "symbol": "USDT",
                          "sentiment": 0
                        },
                        {
                          "id": "4515ba15-2719-4183-b0ca-b9255d55b67e",
                          "name": "USDC",
                          "slug": "circle-usdc-stablecoin",
                          "symbol": "",
                          "sentiment": 0
                        }
                      ]
                    },
                    {
                      "assets": [
                        {
                          "id": "f2cfff3b-a8ae-434f-b9e3-1c81a0ba2f81",
                          "name": "Internet Computer",
                          "slug": "internet-computer",
                          "symbol": "ICP"
                        },
                        {
                          "id": "9034399e-e229-48ca-8ff3-5ea5fc599080",
                          "name": "Zcash",
                          "slug": "zcash",
                          "symbol": "ZEC"
                        },
                        {
                          "id": "1e31218a-e44e-4285-820c-8282ee222035",
                          "name": "Bitcoin",
                          "slug": "bitcoin",
                          "symbol": "BTC"
                        },
                        {
                          "id": "21c795f5-1bfd-40c3-858e-e9d7e820c6d0",
                          "name": "Ethereum",
                          "slug": "ethereum",
                          "symbol": "ETH"
                        },
                        {
                          "id": "fadb2da4-d838-48e3-b441-dfcb026ac508",
                          "name": "Coinbase",
                          "slug": "coinbase",
                          "symbol": "COINBASE"
                        }
                      ],
                      "publishTimeMillis": 1762442765000,
                      "publishTime": "2025-11-06T15:26:05Z",
                      "source": {
                        "id": "60dbf7df-fdab-4f3a-9ece-e26eedbb4d44",
                        "sourceName": "The Defiant",
                        "sourceType": "News"
                      },
                      "title": "BTC Holds Out Above $102,000 as Markets Trade Flat",
                      "url": "https://thedefiant.io/news/markets/bitcoin-holds-out-above-usd102000-as-markets-trade-flat",
                      "category": null,
                      "subcategory": null,
                      "description": "Crypto markets are mostly flat today with a total market cap around $3.48 trillion while Bitcoin chops between $102K and $103K.\n",
                      "sentiment": [
                        {
                          "id": "1e31218a-e44e-4285-820c-8282ee222035",
                          "name": "Bitcoin",
                          "slug": "bitcoin",
                          "symbol": "BTC",
                          "sentiment": 0.2
                        },
                        {
                          "id": "21c795f5-1bfd-40c3-858e-e9d7e820c6d0",
                          "name": "Ethereum",
                          "slug": "ethereum",
                          "symbol": "ETH",
                          "sentiment": 0
                        },
                        {
                          "id": "9034399e-e229-48ca-8ff3-5ea5fc599080",
                          "name": "Zcash",
                          "slug": "zcash",
                          "symbol": "ZEC",
                          "sentiment": 0.5
                        },
                        {
                          "id": "f2cfff3b-a8ae-434f-b9e3-1c81a0ba2f81",
                          "name": "Internet Computer",
                          "slug": "internet-computer",
                          "symbol": "ICP",
                          "sentiment": 0.8
                        },
                        {
                          "id": "fadb2da4-d838-48e3-b441-dfcb026ac508",
                          "name": "Coinbase",
                          "slug": "coinbase",
                          "symbol": "COINBASE",
                          "sentiment": -0.2
                        }
                      ]
                    }
                  ],
                  "metadata": {
                    "limit": 3,
                    "page": 1,
                    "totalRows": 213,
                    "totalPages": 71
                  }
                }
              }
            },
            "description": "Default response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Unauthorized"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ],
        "summary": "Get news feed",
        "tags": [
          "news/News"
        ]
      }
    },
    "/news/v1/news/sources": {
      "get": {
        "description": "Get News Sources",
        "operationId": "GetNewsSources",
        "parameters": [
          {
            "description": "A case-sensitive text to search by source name, i.e. CoinDesk. If provided, the results will be filtered by this text.",
            "in": "query",
            "name": "sourceName",
            "schema": {
              "type": "string",
              "example": "CoinDesk",
              "default": "CoinDesk"
            }
          },
          {
            "description": "List of source types to filter by. If provided, the results will be filtered by these source types: Blog,Forum,News",
            "in": "query",
            "name": "sourceTypes",
            "required": true,
            "schema": {
              "items": {
                "type": "string",
                "enum": [
                  "Blog",
                  "Forum",
                  "News"
                ]
              },
              "type": "array",
              "example": [
                "News"
              ],
              "default": [
                "News"
              ]
            }
          },
          {
            "description": "Number of results per page",
            "in": "query",
            "name": "limit",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer",
              "default": 10
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/newsSource"
                      },
                      "type": "array"
                    },
                    "error": {
                      "type": "string"
                    },
                    "metadata": {
                      "$ref": "#/components/schemas/Pagination"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                },
                "example": {
                  "error": null,
                  "data": [
                    {
                      "id": "9dedd345-1528-4b85-9c8e-81b4a9be73ce",
                      "sourceName": "0G Blog",
                      "sourceType": "Blog"
                    },
                    {
                      "id": "5e683dea-b9a8-4b64-aaab-1bca03be61d5",
                      "sourceName": "0 Knowledge Network Blog",
                      "sourceType": "Blog"
                    },
                    {
                      "id": "a087e922-78b9-4161-a52f-3ce3ce4e2653",
                      "sourceName": "0VIX Protocol Blog",
                      "sourceType": "Blog"
                    },
                    {
                      "id": "fcbb2749-f2b5-4e9f-aeda-9267090e2c1f",
                      "sourceName": "0x0.ai: AI Smart Contract Blog",
                      "sourceType": "Blog"
                    },
                    {
                      "id": "9e7f4674-3833-4b29-851b-3974447dda9b",
                      "sourceName": "0xAISwap Blog",
                      "sourceType": "Blog"
                    }
                  ],
                  "metadata": {
                    "limit": 10,
                    "page": 1,
                    "totalRows": 12195,
                    "totalPages": 1220
                  }
                }
              }
            },
            "description": "Default response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Unauthorized"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ],
        "summary": "Sources",
        "tags": [
          "news/News"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "newsAsset": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "newsSource": {
        "properties": {
          "id": {
            "type": "string"
          },
          "sourceName": {
            "type": "string"
          },
          "sourceType": {
            "enum": [
              "News",
              "Forum",
              "Blog"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "sourceName",
          "sourceType"
        ],
        "type": "object"
      },
      "Article": {
        "properties": {
          "assets": {
            "items": {
              "$ref": "#/components/schemas/newsAsset"
            },
            "type": "array"
          },
          "category": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "publishTimeMillis": {
            "format": "int64",
            "type": "integer"
          },
          "sentiment": {
            "items": {
              "$ref": "#/components/schemas/newsAssetSentiment"
            },
            "type": "array"
          },
          "source": {
            "$ref": "#/components/schemas/newsSource"
          },
          "subcategory": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "assets",
          "publishTimeMillis",
          "sentiment",
          "source",
          "title",
          "url"
        ],
        "type": "object"
      },
      "Pagination": {
        "properties": {
          "limit": {
            "format": "int64",
            "type": "integer"
          },
          "page": {
            "format": "int64",
            "type": "integer"
          },
          "totalPages": {
            "format": "int64",
            "type": "integer"
          },
          "totalRows": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "limit",
          "page",
          "totalPages",
          "totalRows"
        ],
        "type": "object"
      },
      "newsAssetSentiment": {
        "type": "object",
        "description": "Schema for newsAssetSentiment",
        "properties": {},
        "additionalProperties": true
      }
    },
    "securitySchemes": {
      "apiKey": {
        "in": "header",
        "name": "X-Messari-API-Key",
        "type": "apiKey"
      }
    }
  }
}