{
  "schemaVersion": 1,
  "metroId": "boston",
  "generatedAt": "2026-07-05T20:26:28.026Z",
  "alertCount": 7,
  "alerts": [
    {
      "severity": "critical",
      "metroId": "boston",
      "sourceId": "ticketmaster-boston-family",
      "sourceName": "Ticketmaster Boston Family Events",
      "sourceType": "ticketmaster",
      "url": "https://app.ticketmaster.com/discovery/v2/events.json",
      "status": "ok",
      "issueType": "zero-extracted",
      "reason": "Source returned a payload but no events were extracted.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:26:28.026Z",
      "fetches": [
        {
          "url": "https://app.ticketmaster.com/discovery/v2/events.json",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "application/json; source=ticketmaster; events=0; queries=1"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "boston",
      "sourceId": "the-big-e",
      "sourceName": "The Big E",
      "sourceType": "html",
      "url": "https://www.easternstatesexposition.com/",
      "status": "ok",
      "issueType": "zero-extracted",
      "reason": "Source returned a payload but no events were extracted.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:26:28.026Z",
      "fetches": [
        {
          "url": "https://www.easternstatesexposition.com/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=utf-8"
        }
      ]
    },
    {
      "severity": "warning",
      "metroId": "boston",
      "sourceId": "marshfield-fair",
      "sourceName": "Marshfield Fair",
      "sourceType": "html",
      "url": "https://marshfieldfair.org/events/",
      "status": "ok",
      "issueType": "zero-in-window",
      "reason": "Source returned events, but none were in the planning window.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:26:28.026Z",
      "fetches": [
        {
          "url": "https://marshfieldfair.org/events/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "boston",
      "sourceId": "boston-harborfest-2026",
      "sourceName": "Boston Harborfest 2026",
      "sourceType": "officialTextEvents",
      "url": "https://www.bostonharborfest.com/",
      "status": "ok",
      "issueType": "zero-extracted",
      "reason": "Source returned a payload but no events were extracted.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:26:28.026Z",
      "fetches": [
        {
          "url": "https://www.bostonharborfest.com/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "boston",
      "sourceId": "cambridge-carnival-2026",
      "sourceName": "Cambridge Carnival 2026",
      "sourceType": "officialTextEvents",
      "url": "https://www.cambridgecarnival.org/",
      "status": "ok",
      "issueType": "zero-extracted",
      "reason": "Source returned a payload but no events were extracted.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:26:28.026Z",
      "fetches": [
        {
          "url": "https://www.cambridgecarnival.org/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html;charset=utf-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "boston",
      "sourceId": "paradise-rock-club",
      "sourceName": "Paradise Rock Club",
      "sourceType": "html",
      "url": "https://www.crossroadspresents.com/paradise-rock-club",
      "status": "http-error",
      "issueType": "fetch-failed",
      "reason": "Source fetch did not return a usable payload.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:26:28.026Z",
      "fetches": [
        {
          "url": "https://www.crossroadspresents.com/paradise-rock-club",
          "status": "http-error",
          "httpStatus": 404,
          "contentType": "text/html; charset=utf-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "boston",
      "sourceId": "nick-comedy-stop",
      "sourceName": "Nick's Comedy Stop",
      "sourceType": "html",
      "url": "https://www.nickscomedystop.com/calendar",
      "status": "http-error",
      "issueType": "fetch-failed",
      "reason": "Source fetch did not return a usable payload.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:26:28.026Z",
      "fetches": [
        {
          "url": "https://www.nickscomedystop.com/calendar",
          "status": "http-error",
          "httpStatus": 404,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    }
  ]
}
