{
  "schemaVersion": 1,
  "metroId": "los-angeles",
  "generatedAt": "2026-07-05T20:19:10.079Z",
  "alertCount": 20,
  "alerts": [
    {
      "severity": "warning",
      "metroId": "los-angeles",
      "sourceId": "lapl-kids",
      "sourceName": "Los Angeles Public Library Events",
      "sourceType": "rss",
      "url": "https://www.lapl.org/rss/events",
      "status": "http-error",
      "issueType": "fetch-failed",
      "reason": "Source fetch did not return a usable payload.",
      "recoveredBy": "last-known-good",
      "recoveredEvents": 1,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 1,
      "fetchedAt": "2026-07-05T20:19:10.079Z",
      "fetches": [
        {
          "url": "https://www.lapl.org/rss/events",
          "status": "http-error",
          "httpStatus": 404,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "nhm-family-calendar",
      "sourceName": "Natural History Museums of Los Angeles County",
      "sourceType": "eventList",
      "url": "https://nhm.org/calendar",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://nhm.org/calendar",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "warning",
      "metroId": "los-angeles",
      "sourceId": "petersen-automotive-museum",
      "sourceName": "Petersen Automotive Museum",
      "sourceType": "html",
      "url": "https://www.petersen.org/events",
      "status": "blocked",
      "issueType": "fetch-failed",
      "reason": "challenge page returned instead of event content",
      "recoveredBy": "last-known-good",
      "recoveredEvents": 7,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 7,
      "fetchedAt": "2026-07-05T20:19:10.079Z",
      "fetches": [
        {
          "url": "https://www.petersen.org/events",
          "status": "blocked",
          "reason": "challenge page returned instead of event content",
          "httpStatus": 200,
          "contentType": "text/html; charset=utf-8"
        }
      ]
    },
    {
      "severity": "warning",
      "metroId": "los-angeles",
      "sourceId": "cabrillo-marine-aquarium",
      "sourceName": "Cabrillo Marine Aquarium",
      "sourceType": "html",
      "url": "https://cma.recreation.parks.lacity.gov/",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://cma.recreation.parks.lacity.gov/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "aquarium-of-the-pacific",
      "sourceName": "Aquarium of the Pacific",
      "sourceType": "html",
      "url": "https://www.aquariumofpacific.org/events",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://www.aquariumofpacific.org/events",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=utf-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "california-science-center",
      "sourceName": "California Science Center",
      "sourceType": "html",
      "url": "https://californiasciencecenter.org/events",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://californiasciencecenter.org/events",
          "status": "http-error",
          "httpStatus": 403,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "huntington-library",
      "sourceName": "The Huntington Library, Art Museum & Botanical Gardens",
      "sourceType": "html",
      "url": "https://www.huntington.org/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:19:10.079Z",
      "fetches": [
        {
          "url": "https://www.huntington.org/calendar",
          "status": "http-error",
          "httpStatus": 429,
          "contentType": "text/html; charset=utf-8"
        }
      ]
    },
    {
      "severity": "warning",
      "metroId": "los-angeles",
      "sourceId": "grand-park-la",
      "sourceName": "Grand Park",
      "sourceType": "html",
      "url": "https://grandparkla.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:19:10.079Z",
      "fetches": [
        {
          "url": "https://grandparkla.org/events/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "ticketmaster-los-angeles-family",
      "sourceName": "Ticketmaster Los Angeles 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:19:10.079Z",
      "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": "los-angeles",
      "sourceId": "oc-fair",
      "sourceName": "OC Fair",
      "sourceType": "html",
      "url": "https://ocfair.com/oc-fair/",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://ocfair.com/oc-fair/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "ventura-county-fair",
      "sourceName": "Ventura County Fair",
      "sourceType": "html",
      "url": "https://venturacountyfair.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:19:10.079Z",
      "fetches": [
        {
          "url": "https://venturacountyfair.org/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "warning",
      "metroId": "los-angeles",
      "sourceId": "grand-park-block-party-2026",
      "sourceName": "Gloria Molina Grand Park's Summer Block Party (July 4)",
      "sourceType": "officialTextEvents",
      "url": "https://grandparkla.org/blockparty/",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://grandparkla.org/blockparty/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "the-troubadour",
      "sourceName": "The Troubadour",
      "sourceType": "html",
      "url": "https://www.troubadour.com/events",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://www.troubadour.com/events",
          "status": "http-error",
          "httpStatus": 404,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "el-rey-theatre",
      "sourceName": "El Rey Theatre",
      "sourceType": "html",
      "url": "https://www.theelrey.com/events",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://www.theelrey.com/events",
          "status": "http-error",
          "httpStatus": 403,
          "contentType": "text/html"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "the-roxy-la",
      "sourceName": "The Roxy Theatre",
      "sourceType": "html",
      "url": "https://www.theroxy.com/events",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://www.theroxy.com/events",
          "status": "http-error",
          "httpStatus": 403,
          "contentType": "text/html"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "the-comedy-store",
      "sourceName": "The Comedy Store",
      "sourceType": "html",
      "url": "https://thecomedystore.com/calendar/",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://thecomedystore.com/calendar/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "laugh-factory-la",
      "sourceName": "Laugh Factory",
      "sourceType": "html",
      "url": "https://www.laughfactory.com/shows",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://www.laughfactory.com/shows",
          "status": "http-error",
          "httpStatus": 404,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "the-improv-la",
      "sourceName": "The Hollywood Improv",
      "sourceType": "html",
      "url": "https://improv.com/hollywood/calendar/",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://improv.com/hollywood/calendar/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "the-wiltern",
      "sourceName": "The Wiltern",
      "sourceType": "html",
      "url": "https://www.ticketmaster.com/the-wiltern-tickets-los-angeles/venue/73790",
      "status": "blocked",
      "issueType": "fetch-failed",
      "reason": "challenge page returned instead of event content",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:19:10.079Z",
      "fetches": [
        {
          "url": "https://www.ticketmaster.com/the-wiltern-tickets-los-angeles/venue/73790",
          "status": "blocked",
          "reason": "challenge page returned instead of event content",
          "httpStatus": 200,
          "contentType": "text/html; charset=utf-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "los-angeles",
      "sourceId": "the-regent-dtla",
      "sourceName": "The Regent Theater",
      "sourceType": "html",
      "url": "https://www.theregenttheater.com/events",
      "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:19:10.079Z",
      "fetches": [
        {
          "url": "https://www.theregenttheater.com/events",
          "status": "http-error",
          "httpStatus": 404,
          "contentType": "text/html; charset=utf-8"
        }
      ]
    }
  ]
}
