{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fiatdock-com/json-schema/fiatdock-com-crypto-news-schema.json",
  "title": "CryptoNews",
  "description": "Paid. Crypto news headlines (9 newsrooms).",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fiatdock-com-news-api-openapi.yml#/components/schemas/CryptoNews",
  "type": "object",
  "properties": {
    "query": {
      "type": [
        "string",
        "null"
      ],
      "description": "The keyword filter, or null"
    },
    "sinceHours": {
      "type": "number",
      "description": "The time window, in hours"
    },
    "count": {
      "type": "number",
      "description": "Headlines returned"
    },
    "matched": {
      "type": "number",
      "description": "Headlines that matched before the limit"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "publishedAt": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "url",
          "source",
          "publishedAt",
          "summary"
        ]
      },
      "description": "Headlines, newest first, duplicates merged"
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "ok": {
            "type": "boolean"
          },
          "items": {
            "type": "number"
          }
        },
        "required": [
          "name",
          "ok",
          "items"
        ]
      },
      "description": "Each newsroom's feed and whether it answered"
    },
    "asOf": {
      "type": "string",
      "description": "ISO time of the oldest feed read used"
    },
    "note": {
      "type": "string",
      "description": "What the items are, and that the words are the publisher's"
    }
  },
  "required": [
    "query",
    "sinceHours",
    "count",
    "matched",
    "items",
    "sources",
    "asOf",
    "note"
  ]
}