{
  "window": {
    "start_inclusive": "2026-10-18T00:00:00+00:00",
    "end_exclusive": "2026-10-19T05:08:06.276135+00:00"
  },
  "matching": "target ID + exact URL + exact mode; all eligible attempts in window",
  "success_definition": "2xx AND recorded visible-text validation_passed; not semantic correctness",
  "latency_population": "all eligible matched attempts, including failures and unavailable; nearest-rank p90",
  "rate_denominator": "evaluated = eligible matched attempts minus unavailable; zero -> null",
  "exclusions": {
    "legacy_premium_60s_timeout": 2,
    "other_vendor": 14
  },
  "strata": [
    {
      "target": "books",
      "mode": "plain",
      "url": "https://books.toscrape.com/",
      "validation": {
        "text": "Tipping the Velvet"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 4.306586720995256,
          "p90_seconds": 6.241876083004172,
          "first_capture": "2026-10-18T19:01:41.675596+00:00",
          "last_capture": "2026-10-19T05:02:36.845018+00:00"
        },
        "scrapingbee": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 0.8174850689974846,
          "p90_seconds": 1.2767274030047702,
          "first_capture": "2026-10-18T19:00:51.648669+00:00",
          "last_capture": "2026-10-19T05:00:02.418994+00:00"
        }
      }
    },
    {
      "target": "books-page-2",
      "mode": "plain",
      "url": "https://books.toscrape.com/catalogue/page-2.html",
      "validation": {
        "text": "In Her Wake"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 1.9838277050002944,
          "p90_seconds": 3.4219316170056118,
          "first_capture": "2026-10-18T19:01:46.104106+00:00",
          "last_capture": "2026-10-19T05:02:39.735643+00:00"
        },
        "scrapingbee": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 0.8616945440007839,
          "p90_seconds": 2.2987588590040104,
          "first_capture": "2026-10-18T19:00:54.953162+00:00",
          "last_capture": "2026-10-19T05:00:04.286969+00:00"
        }
      }
    },
    {
      "target": "course-antibot",
      "mode": "js",
      "url": "https://www.scrapingcourse.com/antibot-challenge",
      "validation": {
        "text": "Chaz Kangeroo Hoodie"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 0,
          "failures": 3,
          "unavailable": 0,
          "success_rate": 0.0,
          "http_200": 0,
          "http_200_content_failures": 0,
          "median_seconds": 55.9742598090088,
          "p90_seconds": 56.310643668999546,
          "first_capture": "2026-10-18T19:04:41.414346+00:00",
          "last_capture": "2026-10-19T05:05:22.323939+00:00"
        },
        "scrapingbee": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 0,
          "failures": 3,
          "unavailable": 0,
          "success_rate": 0.0,
          "http_200": 0,
          "http_200_content_failures": 0,
          "median_seconds": 4.2076348529953975,
          "p90_seconds": 5.2765637319971574,
          "first_capture": "2026-10-18T19:01:31.121719+00:00",
          "last_capture": "2026-10-19T05:01:10.254532+00:00"
        }
      }
    },
    {
      "target": "course-antibot",
      "mode": "premium",
      "url": "https://www.scrapingcourse.com/antibot-challenge",
      "validation": {
        "text": "Chaz Kangeroo Hoodie"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 2,
          "evaluated": 0,
          "valid": 0,
          "failures": 0,
          "unavailable": 2,
          "success_rate": null,
          "http_200": 0,
          "http_200_content_failures": 0,
          "median_seconds": 0.30333389500447083,
          "p90_seconds": 0.3083725519973086,
          "first_capture": "2026-10-18T19:12:23.635604+00:00",
          "last_capture": "2026-10-19T05:05:23.622808+00:00"
        },
        "scrapingbee": {
          "attempts": 1,
          "evaluated": 1,
          "valid": 0,
          "failures": 1,
          "unavailable": 0,
          "success_rate": 0.0,
          "http_200": 1,
          "http_200_content_failures": 1,
          "median_seconds": 75.33493502700003,
          "p90_seconds": 75.33493502700003,
          "first_capture": "2026-10-19T05:02:26.590775+00:00",
          "last_capture": "2026-10-19T05:02:26.590775+00:00"
        }
      }
    },
    {
      "target": "course-cloudflare",
      "mode": "js",
      "url": "https://www.scrapingcourse.com/cloudflare-challenge",
      "validation": {
        "text": "Chaz Kangeroo Hoodie"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 0,
          "failures": 3,
          "unavailable": 0,
          "success_rate": 0.0,
          "http_200": 0,
          "http_200_content_failures": 0,
          "median_seconds": 56.04672627100081,
          "p90_seconds": 56.31001131700759,
          "first_capture": "2026-10-18T19:03:44.103014+00:00",
          "last_capture": "2026-10-19T05:04:23.971536+00:00"
        },
        "scrapingbee": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 0,
          "failures": 3,
          "unavailable": 0,
          "success_rate": 0.0,
          "http_200": 0,
          "http_200_content_failures": 0,
          "median_seconds": 7.559884595990297,
          "p90_seconds": 9.769584907000535,
          "first_capture": "2026-10-18T19:01:25.913132+00:00",
          "last_capture": "2026-10-19T05:00:27.372277+00:00"
        }
      }
    },
    {
      "target": "course-cloudflare",
      "mode": "premium",
      "url": "https://www.scrapingcourse.com/cloudflare-challenge",
      "validation": {
        "text": "Chaz Kangeroo Hoodie"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 2,
          "evaluated": 0,
          "valid": 0,
          "failures": 0,
          "unavailable": 2,
          "success_rate": null,
          "http_200": 0,
          "http_200_content_failures": 0,
          "median_seconds": 0.3493399415019667,
          "p90_seconds": 0.37679588799073827,
          "first_capture": "2026-10-18T19:11:25.797625+00:00",
          "last_capture": "2026-10-19T05:04:25.349144+00:00"
        },
        "scrapingbee": {
          "attempts": 1,
          "evaluated": 1,
          "valid": 0,
          "failures": 1,
          "unavailable": 0,
          "success_rate": 0.0,
          "http_200": 1,
          "http_200_content_failures": 1,
          "median_seconds": 37.169434574985644,
          "p90_seconds": 37.169434574985644,
          "first_capture": "2026-10-19T05:01:05.543535+00:00",
          "last_capture": "2026-10-19T05:01:05.543535+00:00"
        }
      }
    },
    {
      "target": "course-ecommerce",
      "mode": "plain",
      "url": "https://www.scrapingcourse.com/ecommerce/",
      "validation": {
        "text": "Abominable Hoodie"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 1.231715432004421,
          "p90_seconds": 1.2435720370121999,
          "first_capture": "2026-10-18T19:02:25.926944+00:00",
          "last_capture": "2026-10-19T05:02:58.929617+00:00"
        },
        "scrapingbee": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 1.2237423339975066,
          "p90_seconds": 1.3804732249991503,
          "first_capture": "2026-10-18T19:01:14.385342+00:00",
          "last_capture": "2026-10-19T05:00:12.628203+00:00"
        }
      }
    },
    {
      "target": "course-infinite",
      "mode": "js",
      "url": "https://www.scrapingcourse.com/infinite-scrolling",
      "validation": {
        "text": "Chaz Kangeroo Hoodie"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 10.094646643992746,
          "p90_seconds": 17.283201155005372,
          "first_capture": "2026-10-18T19:02:36.637365+00:00",
          "last_capture": "2026-10-19T05:03:17.216348+00:00"
        },
        "scrapingbee": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 2.243145957996603,
          "p90_seconds": 3.4239424359984696,
          "first_capture": "2026-10-18T19:01:17.360347+00:00",
          "last_capture": "2026-10-19T05:00:15.873779+00:00"
        }
      }
    },
    {
      "target": "course-load-more",
      "mode": "js",
      "url": "https://www.scrapingcourse.com/button-click",
      "validation": {
        "text": "Chaz Kangeroo Hoodie"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 8.705172165995464,
          "p90_seconds": 9.152865336989635,
          "first_capture": "2026-10-18T19:02:46.792320+00:00",
          "last_capture": "2026-10-19T05:03:26.924154+00:00"
        },
        "scrapingbee": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 1.93578275499749,
          "p90_seconds": 2.101119978004135,
          "first_capture": "2026-10-18T19:01:20.463308+00:00",
          "last_capture": "2026-10-19T05:00:18.811600+00:00"
        }
      }
    },
    {
      "target": "httpbin",
      "mode": "plain",
      "url": "https://httpbin.org/html",
      "validation": {
        "text": "Herman Melville - Moby-Dick"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 3.9328095950040733,
          "p90_seconds": 12.386844801003463,
          "first_capture": "2026-10-18T19:04:47.097677+00:00",
          "last_capture": "2026-10-19T05:05:43.565271+00:00"
        },
        "scrapingbee": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 0.6793019650067436,
          "p90_seconds": 2.6005078409943962,
          "first_capture": "2026-10-18T19:01:34.427257+00:00",
          "last_capture": "2026-10-19T05:02:31.531620+00:00"
        }
      }
    },
    {
      "target": "quotes",
      "mode": "plain",
      "url": "https://quotes.toscrape.com/",
      "validation": {
        "text": "Albert Einstein"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 5.826357591009582,
          "p90_seconds": 8.143175731995143,
          "first_capture": "2026-10-18T19:01:55.249975+00:00",
          "last_capture": "2026-10-19T05:02:44.023209+00:00"
        },
        "scrapingbee": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 0.7189875839976594,
          "p90_seconds": 10.508998185003293,
          "first_capture": "2026-10-18T19:01:06.464610+00:00",
          "last_capture": "2026-10-19T05:00:06.008352+00:00"
        }
      }
    },
    {
      "target": "quotes-js",
      "mode": "js",
      "url": "https://quotes.toscrape.com/js/",
      "validation": {
        "text": "Albert Einstein"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 8.121173125007772,
          "p90_seconds": 20.518514811992645,
          "first_capture": "2026-10-18T19:02:23.689068+00:00",
          "last_capture": "2026-10-19T05:02:56.679068+00:00"
        },
        "scrapingbee": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 1.929014470995753,
          "p90_seconds": 3.0137666949885897,
          "first_capture": "2026-10-18T19:01:12.155904+00:00",
          "last_capture": "2026-10-19T05:00:10.409855+00:00"
        }
      }
    },
    {
      "target": "quotes-page-2",
      "mode": "plain",
      "url": "https://quotes.toscrape.com/page/2/",
      "validation": {
        "text": "Marilyn Monroe"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 5.600257571000839,
          "p90_seconds": 5.91563066499657,
          "first_capture": "2026-10-18T19:02:02.168619+00:00",
          "last_capture": "2026-10-19T05:02:47.723598+00:00"
        },
        "scrapingbee": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 0.8220666510023875,
          "p90_seconds": 2.0481962630001362,
          "first_capture": "2026-10-18T19:01:08.140606+00:00",
          "last_capture": "2026-10-19T05:00:07.833970+00:00"
        }
      }
    },
    {
      "target": "wikipedia",
      "mode": "plain",
      "url": "https://en.wikipedia.org/wiki/Web_scraping",
      "validation": {
        "text": "Web scraping"
      },
      "vendors": {
        "scraperapi": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 1.6498182569921482,
          "p90_seconds": 5.528330040004221,
          "first_capture": "2026-10-18T19:04:43.413381+00:00",
          "last_capture": "2026-10-19T05:05:30.177514+00:00"
        },
        "scrapingbee": {
          "attempts": 3,
          "evaluated": 3,
          "valid": 3,
          "failures": 0,
          "unavailable": 0,
          "success_rate": 1.0,
          "http_200": 3,
          "http_200_content_failures": 0,
          "median_seconds": 0.38351479699485935,
          "p90_seconds": 0.6008677080099005,
          "first_capture": "2026-10-18T19:01:32.747014+00:00",
          "last_capture": "2026-10-19T05:02:27.930085+00:00"
        }
      }
    }
  ],
  "totals": {
    "standard": {
      "scraperapi": {
        "attempts": 36,
        "evaluated": 36,
        "valid": 30,
        "failures": 6,
        "unavailable": 0,
        "success_rate": 0.8333333333333334,
        "http_200": 30,
        "http_200_content_failures": 0,
        "median_seconds": 6.078753374000371,
        "p90_seconds": 55.9742598090088,
        "first_capture": "2026-10-18T19:01:41.675596+00:00",
        "last_capture": "2026-10-19T05:05:43.565271+00:00"
      },
      "scrapingbee": {
        "attempts": 36,
        "evaluated": 36,
        "valid": 30,
        "failures": 6,
        "unavailable": 0,
        "success_rate": 0.8333333333333334,
        "http_200": 30,
        "http_200_content_failures": 0,
        "median_seconds": 1.6041964014948462,
        "p90_seconds": 5.2765637319971574,
        "first_capture": "2026-10-18T19:00:51.648669+00:00",
        "last_capture": "2026-10-19T05:02:31.531620+00:00"
      }
    },
    "premium": {
      "scraperapi": {
        "attempts": 4,
        "evaluated": 0,
        "valid": 0,
        "failures": 0,
        "unavailable": 4,
        "success_rate": null,
        "http_200": 0,
        "http_200_content_failures": 0,
        "median_seconds": 0.31512827350525185,
        "p90_seconds": 0.37679588799073827,
        "first_capture": "2026-10-18T19:11:25.797625+00:00",
        "last_capture": "2026-10-19T05:05:23.622808+00:00"
      },
      "scrapingbee": {
        "attempts": 2,
        "evaluated": 2,
        "valid": 0,
        "failures": 2,
        "unavailable": 0,
        "success_rate": 0.0,
        "http_200": 2,
        "http_200_content_failures": 2,
        "median_seconds": 56.252184800992836,
        "p90_seconds": 75.33493502700003,
        "first_capture": "2026-10-19T05:01:05.543535+00:00",
        "last_capture": "2026-10-19T05:02:26.590775+00:00"
      }
    }
  },
  "matched_observations": [
    {
      "source_line": 1,
      "observation": {
        "timestamp": "2026-10-18T19:00:51.648669+00:00",
        "vendor": "scrapingbee",
        "target": "books",
        "url": "https://books.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 0.8174850689974846,
        "bytes": 51294,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 2,
      "observation": {
        "timestamp": "2026-10-18T19:00:54.953162+00:00",
        "vendor": "scrapingbee",
        "target": "books-page-2",
        "url": "https://books.toscrape.com/catalogue/page-2.html",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 2.2987588590040104,
        "bytes": 50877,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 3,
      "observation": {
        "timestamp": "2026-10-18T19:01:06.464610+00:00",
        "vendor": "scrapingbee",
        "target": "quotes",
        "url": "https://quotes.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 10.508998185003293,
        "bytes": 11064,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 4,
      "observation": {
        "timestamp": "2026-10-18T19:01:08.140606+00:00",
        "vendor": "scrapingbee",
        "target": "quotes-page-2",
        "url": "https://quotes.toscrape.com/page/2/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 0.6727289550035493,
        "bytes": 13745,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 5,
      "observation": {
        "timestamp": "2026-10-18T19:01:12.155904+00:00",
        "vendor": "scrapingbee",
        "target": "quotes-js",
        "url": "https://quotes.toscrape.com/js/",
        "mode": "js",
        "ok": true,
        "http_status": 200,
        "seconds": 3.0137666949885897,
        "bytes": 8985,
        "credits_used": 5.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 6,
      "observation": {
        "timestamp": "2026-10-18T19:01:14.385342+00:00",
        "vendor": "scrapingbee",
        "target": "course-ecommerce",
        "url": "https://www.scrapingcourse.com/ecommerce/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 1.2237423339975066,
        "bytes": 82409,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 7,
      "observation": {
        "timestamp": "2026-10-18T19:01:17.360347+00:00",
        "vendor": "scrapingbee",
        "target": "course-infinite",
        "url": "https://www.scrapingcourse.com/infinite-scrolling",
        "mode": "js",
        "ok": true,
        "http_status": 200,
        "seconds": 1.9726688869995996,
        "bytes": 16977,
        "credits_used": 5.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 8,
      "observation": {
        "timestamp": "2026-10-18T19:01:20.463308+00:00",
        "vendor": "scrapingbee",
        "target": "course-load-more",
        "url": "https://www.scrapingcourse.com/button-click",
        "mode": "js",
        "ok": true,
        "http_status": 200,
        "seconds": 2.101119978004135,
        "bytes": 13525,
        "credits_used": 5.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 9,
      "observation": {
        "timestamp": "2026-10-18T19:01:25.913132+00:00",
        "vendor": "scrapingbee",
        "target": "course-cloudflare",
        "url": "https://www.scrapingcourse.com/cloudflare-challenge",
        "mode": "js",
        "ok": false,
        "http_status": 500,
        "seconds": 4.448775943994406,
        "bytes": 7274,
        "credits_used": 0.0,
        "validation_passed": false
      }
    },
    {
      "source_line": 10,
      "observation": {
        "timestamp": "2026-10-18T19:01:31.121719+00:00",
        "vendor": "scrapingbee",
        "target": "course-antibot",
        "url": "https://www.scrapingcourse.com/antibot-challenge",
        "mode": "js",
        "ok": false,
        "http_status": 500,
        "seconds": 4.2076348529953975,
        "bytes": 7244,
        "credits_used": 0.0,
        "validation_passed": false
      }
    },
    {
      "source_line": 11,
      "observation": {
        "timestamp": "2026-10-18T19:01:32.747014+00:00",
        "vendor": "scrapingbee",
        "target": "wikipedia",
        "url": "https://en.wikipedia.org/wiki/Web_scraping",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 0.6008677080099005,
        "bytes": 236477,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 12,
      "observation": {
        "timestamp": "2026-10-18T19:01:34.427257+00:00",
        "vendor": "scrapingbee",
        "target": "httpbin",
        "url": "https://httpbin.org/html",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 0.6793019650067436,
        "bytes": 3741,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 13,
      "observation": {
        "timestamp": "2026-10-18T19:01:41.675596+00:00",
        "vendor": "scraperapi",
        "target": "books",
        "url": "https://books.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 6.241876083004172,
        "bytes": 51294,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 14,
      "observation": {
        "timestamp": "2026-10-18T19:01:46.104106+00:00",
        "vendor": "scraperapi",
        "target": "books-page-2",
        "url": "https://books.toscrape.com/catalogue/page-2.html",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 3.4219316170056118,
        "bytes": 50877,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 15,
      "observation": {
        "timestamp": "2026-10-18T19:01:55.249975+00:00",
        "vendor": "scraperapi",
        "target": "quotes",
        "url": "https://quotes.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 8.143175731995143,
        "bytes": 11064,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 16,
      "observation": {
        "timestamp": "2026-10-18T19:02:02.168619+00:00",
        "vendor": "scraperapi",
        "target": "quotes-page-2",
        "url": "https://quotes.toscrape.com/page/2/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 5.91563066499657,
        "bytes": 13745,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 17,
      "observation": {
        "timestamp": "2026-10-18T19:02:23.689068+00:00",
        "vendor": "scraperapi",
        "target": "quotes-js",
        "url": "https://quotes.toscrape.com/js/",
        "mode": "js",
        "ok": true,
        "http_status": 200,
        "seconds": 20.518514811992645,
        "bytes": 8985,
        "credits_used": 10.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 18,
      "observation": {
        "timestamp": "2026-10-18T19:02:25.926944+00:00",
        "vendor": "scraperapi",
        "target": "course-ecommerce",
        "url": "https://www.scrapingcourse.com/ecommerce/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 1.231715432004421,
        "bytes": 82776,
        "credits_used": 10.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 19,
      "observation": {
        "timestamp": "2026-10-18T19:02:36.637365+00:00",
        "vendor": "scraperapi",
        "target": "course-infinite",
        "url": "https://www.scrapingcourse.com/infinite-scrolling",
        "mode": "js",
        "ok": true,
        "http_status": 200,
        "seconds": 9.70766749199538,
        "bytes": 17404,
        "credits_used": 20.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 20,
      "observation": {
        "timestamp": "2026-10-18T19:02:46.792320+00:00",
        "vendor": "scraperapi",
        "target": "course-load-more",
        "url": "https://www.scrapingcourse.com/button-click",
        "mode": "js",
        "ok": true,
        "http_status": 200,
        "seconds": 9.152865336989635,
        "bytes": 13952,
        "credits_used": 20.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 21,
      "observation": {
        "timestamp": "2026-10-18T19:03:44.103014+00:00",
        "vendor": "scraperapi",
        "target": "course-cloudflare",
        "url": "https://www.scrapingcourse.com/cloudflare-challenge",
        "mode": "js",
        "ok": false,
        "http_status": 500,
        "seconds": 56.31001131700759,
        "bytes": 208,
        "credits_used": null,
        "validation_passed": false
      }
    },
    {
      "source_line": 22,
      "observation": {
        "timestamp": "2026-10-18T19:04:41.414346+00:00",
        "vendor": "scraperapi",
        "target": "course-antibot",
        "url": "https://www.scrapingcourse.com/antibot-challenge",
        "mode": "js",
        "ok": false,
        "http_status": 500,
        "seconds": 56.310643668999546,
        "bytes": 208,
        "credits_used": null,
        "validation_passed": false
      }
    },
    {
      "source_line": 23,
      "observation": {
        "timestamp": "2026-10-18T19:04:43.413381+00:00",
        "vendor": "scraperapi",
        "target": "wikipedia",
        "url": "https://en.wikipedia.org/wiki/Web_scraping",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 0.97006257600151,
        "bytes": 236478,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 24,
      "observation": {
        "timestamp": "2026-10-18T19:04:47.097677+00:00",
        "vendor": "scraperapi",
        "target": "httpbin",
        "url": "https://httpbin.org/html",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 2.683330501007731,
        "bytes": 3741,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 25,
      "observation": {
        "timestamp": "2026-10-18T19:06:56.097832+00:00",
        "vendor": "scrapingbee",
        "target": "books",
        "url": "https://books.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 0.6488000409881352,
        "bytes": 51294,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 26,
      "observation": {
        "timestamp": "2026-10-18T19:06:57.681158+00:00",
        "vendor": "scrapingbee",
        "target": "books-page-2",
        "url": "https://books.toscrape.com/catalogue/page-2.html",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 0.5765111769869691,
        "bytes": 50877,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 27,
      "observation": {
        "timestamp": "2026-10-18T19:06:59.232877+00:00",
        "vendor": "scrapingbee",
        "target": "quotes",
        "url": "https://quotes.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 0.5488486410031328,
        "bytes": 11064,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 28,
      "observation": {
        "timestamp": "2026-10-18T19:07:02.283869+00:00",
        "vendor": "scrapingbee",
        "target": "quotes-page-2",
        "url": "https://quotes.toscrape.com/page/2/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 2.0481962630001362,
        "bytes": 13745,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 29,
      "observation": {
        "timestamp": "2026-10-18T19:07:05.214351+00:00",
        "vendor": "scrapingbee",
        "target": "quotes-js",
        "url": "https://quotes.toscrape.com/js/",
        "mode": "js",
        "ok": true,
        "http_status": 200,
        "seconds": 1.929014470995753,
        "bytes": 8985,
        "credits_used": 5.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 30,
      "observation": {
        "timestamp": "2026-10-18T19:07:07.601224+00:00",
        "vendor": "scrapingbee",
        "target": "course-ecommerce",
        "url": "https://www.scrapingcourse.com/ecommerce/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 1.3804732249991503,
        "bytes": 82776,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 31,
      "observation": {
        "timestamp": "2026-10-18T19:07:12.027674+00:00",
        "vendor": "scrapingbee",
        "target": "course-infinite",
        "url": "https://www.scrapingcourse.com/infinite-scrolling",
        "mode": "js",
        "ok": true,
        "http_status": 200,
        "seconds": 3.4239424359984696,
        "bytes": 17427,
        "credits_used": 5.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 32,
      "observation": {
        "timestamp": "2026-10-18T19:07:14.664641+00:00",
        "vendor": "scrapingbee",
        "target": "course-load-more",
        "url": "https://www.scrapingcourse.com/button-click",
        "mode": "js",
        "ok": true,
        "http_status": 200,
        "seconds": 1.634413602994755,
        "bytes": 13525,
        "credits_used": 5.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 33,
      "observation": {
        "timestamp": "2026-10-18T19:07:25.435292+00:00",
        "vendor": "scrapingbee",
        "target": "course-cloudflare",
        "url": "https://www.scrapingcourse.com/cloudflare-challenge",
        "mode": "js",
        "ok": false,
        "http_status": 500,
        "seconds": 9.769584907000535,
        "bytes": 7274,
        "credits_used": 0.0,
        "validation_passed": false
      }
    },
    {
      "source_line": 35,
      "observation": {
        "timestamp": "2026-10-18T19:08:32.799588+00:00",
        "vendor": "scrapingbee",
        "target": "course-antibot",
        "url": "https://www.scrapingcourse.com/antibot-challenge",
        "mode": "js",
        "ok": false,
        "http_status": 500,
        "seconds": 5.2765637319971574,
        "bytes": 7265,
        "credits_used": 0.0,
        "validation_passed": false
      }
    },
    {
      "source_line": 37,
      "observation": {
        "timestamp": "2026-10-18T19:09:35.299846+00:00",
        "vendor": "scrapingbee",
        "target": "wikipedia",
        "url": "https://en.wikipedia.org/wiki/Web_scraping",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 0.38351479699485935,
        "bytes": 236477,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 38,
      "observation": {
        "timestamp": "2026-10-18T19:09:36.955818+00:00",
        "vendor": "scrapingbee",
        "target": "httpbin",
        "url": "https://httpbin.org/html",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 0.6551256609964184,
        "bytes": 3741,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 39,
      "observation": {
        "timestamp": "2026-10-18T19:09:40.208634+00:00",
        "vendor": "scraperapi",
        "target": "books",
        "url": "https://books.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 2.2455646809976315,
        "bytes": 51294,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 40,
      "observation": {
        "timestamp": "2026-10-18T19:09:43.200591+00:00",
        "vendor": "scraperapi",
        "target": "books-page-2",
        "url": "https://books.toscrape.com/catalogue/page-2.html",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 1.9838277050002944,
        "bytes": 50877,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 41,
      "observation": {
        "timestamp": "2026-10-18T19:09:50.030302+00:00",
        "vendor": "scraperapi",
        "target": "quotes",
        "url": "https://quotes.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 5.826357591009582,
        "bytes": 11064,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 42,
      "observation": {
        "timestamp": "2026-10-18T19:09:56.634199+00:00",
        "vendor": "scraperapi",
        "target": "quotes-page-2",
        "url": "https://quotes.toscrape.com/page/2/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 5.600257571000839,
        "bytes": 13745,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 43,
      "observation": {
        "timestamp": "2026-10-18T19:10:05.757670+00:00",
        "vendor": "scraperapi",
        "target": "quotes-js",
        "url": "https://quotes.toscrape.com/js/",
        "mode": "js",
        "ok": true,
        "http_status": 200,
        "seconds": 8.121173125007772,
        "bytes": 8985,
        "credits_used": 10.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 44,
      "observation": {
        "timestamp": "2026-10-18T19:10:07.865738+00:00",
        "vendor": "scraperapi",
        "target": "course-ecommerce",
        "url": "https://www.scrapingcourse.com/ecommerce/",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 1.1002416459959932,
        "bytes": 82776,
        "credits_used": 10.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 45,
      "observation": {
        "timestamp": "2026-10-18T19:10:18.963252+00:00",
        "vendor": "scraperapi",
        "target": "course-infinite",
        "url": "https://www.scrapingcourse.com/infinite-scrolling",
        "mode": "js",
        "ok": true,
        "http_status": 200,
        "seconds": 10.094646643992746,
        "bytes": 17404,
        "credits_used": 20.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 46,
      "observation": {
        "timestamp": "2026-10-18T19:10:27.739003+00:00",
        "vendor": "scraperapi",
        "target": "course-load-more",
        "url": "https://www.scrapingcourse.com/button-click",
        "mode": "js",
        "ok": true,
        "http_status": 200,
        "seconds": 7.77309668000089,
        "bytes": 13952,
        "credits_used": 20.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 47,
      "observation": {
        "timestamp": "2026-10-18T19:11:24.475157+00:00",
        "vendor": "scraperapi",
        "target": "course-cloudflare",
        "url": "https://www.scrapingcourse.com/cloudflare-challenge",
        "mode": "js",
        "ok": false,
        "http_status": 500,
        "seconds": 55.73559082900465,
        "bytes": 208,
        "credits_used": null,
        "validation_passed": false
      }
    },
    {
      "source_line": 48,
      "observation": {
        "timestamp": "2026-10-18T19:11:25.797625+00:00",
        "vendor": "scraperapi",
        "target": "course-cloudflare",
        "url": "https://www.scrapingcourse.com/cloudflare-challenge",
        "mode": "premium",
        "ok": null,
        "http_status": 403,
        "seconds": 0.3218839950131951,
        "bytes": 288,
        "credits_used": null,
        "validation_passed": false,
        "result": "unavailable"
      }
    },
    {
      "source_line": 49,
      "observation": {
        "timestamp": "2026-10-18T19:12:22.326539+00:00",
        "vendor": "scraperapi",
        "target": "course-antibot",
        "url": "https://www.scrapingcourse.com/antibot-challenge",
        "mode": "js",
        "ok": false,
        "http_status": 500,
        "seconds": 55.528264067994314,
        "bytes": 208,
        "credits_used": null,
        "validation_passed": false
      }
    },
    {
      "source_line": 50,
      "observation": {
        "timestamp": "2026-10-18T19:12:23.635604+00:00",
        "vendor": "scraperapi",
        "target": "course-antibot",
        "url": "https://www.scrapingcourse.com/antibot-challenge",
        "mode": "premium",
        "ok": null,
        "http_status": 403,
        "seconds": 0.3083725519973086,
        "bytes": 288,
        "credits_used": null,
        "validation_passed": false,
        "result": "unavailable"
      }
    },
    {
      "source_line": 51,
      "observation": {
        "timestamp": "2026-10-18T19:12:26.305726+00:00",
        "vendor": "scraperapi",
        "target": "wikipedia",
        "url": "https://en.wikipedia.org/wiki/Web_scraping",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 1.6498182569921482,
        "bytes": 236477,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 52,
      "observation": {
        "timestamp": "2026-10-18T19:12:31.239338+00:00",
        "vendor": "scraperapi",
        "target": "httpbin",
        "url": "https://httpbin.org/html",
        "mode": "plain",
        "ok": true,
        "http_status": 200,
        "seconds": 3.9328095950040733,
        "bytes": 3741,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 53,
      "observation": {
        "timestamp": "2026-10-19T05:00:02.418994+00:00",
        "vendor": "scrapingbee",
        "target": "books",
        "url": "https://books.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 1.2767274030047702,
        "bytes": 51294,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 54,
      "observation": {
        "timestamp": "2026-10-19T05:00:04.286969+00:00",
        "vendor": "scrapingbee",
        "target": "books-page-2",
        "url": "https://books.toscrape.com/catalogue/page-2.html",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 0.8616945440007839,
        "bytes": 50877,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 55,
      "observation": {
        "timestamp": "2026-10-19T05:00:06.008352+00:00",
        "vendor": "scrapingbee",
        "target": "quotes",
        "url": "https://quotes.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 0.7189875839976594,
        "bytes": 11064,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 56,
      "observation": {
        "timestamp": "2026-10-19T05:00:07.833970+00:00",
        "vendor": "scrapingbee",
        "target": "quotes-page-2",
        "url": "https://quotes.toscrape.com/page/2/",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 0.8220666510023875,
        "bytes": 13745,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 57,
      "observation": {
        "timestamp": "2026-10-19T05:00:10.409855+00:00",
        "vendor": "scrapingbee",
        "target": "quotes-js",
        "url": "https://quotes.toscrape.com/js/",
        "mode": "js",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 1.5739791999949375,
        "bytes": 8985,
        "credits_used": 5.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 58,
      "observation": {
        "timestamp": "2026-10-19T05:00:12.628203+00:00",
        "vendor": "scrapingbee",
        "target": "course-ecommerce",
        "url": "https://www.scrapingcourse.com/ecommerce/",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 1.2136467660020571,
        "bytes": 82409,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 59,
      "observation": {
        "timestamp": "2026-10-19T05:00:15.873779+00:00",
        "vendor": "scrapingbee",
        "target": "course-infinite",
        "url": "https://www.scrapingcourse.com/infinite-scrolling",
        "mode": "js",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 2.243145957996603,
        "bytes": 17000,
        "credits_used": 5.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 60,
      "observation": {
        "timestamp": "2026-10-19T05:00:18.811600+00:00",
        "vendor": "scrapingbee",
        "target": "course-load-more",
        "url": "https://www.scrapingcourse.com/button-click",
        "mode": "js",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 1.93578275499749,
        "bytes": 13952,
        "credits_used": 5.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 61,
      "observation": {
        "timestamp": "2026-10-19T05:00:27.372277+00:00",
        "vendor": "scrapingbee",
        "target": "course-cloudflare",
        "url": "https://www.scrapingcourse.com/cloudflare-challenge",
        "mode": "js",
        "ok": false,
        "result": "failure",
        "http_status": 500,
        "seconds": 7.559884595990297,
        "bytes": 7274,
        "credits_used": 0.0,
        "validation_passed": false
      }
    },
    {
      "source_line": 62,
      "observation": {
        "timestamp": "2026-10-19T05:01:05.543535+00:00",
        "vendor": "scrapingbee",
        "target": "course-cloudflare",
        "url": "https://www.scrapingcourse.com/cloudflare-challenge",
        "mode": "premium",
        "ok": false,
        "result": "failure",
        "http_status": 200,
        "seconds": 37.169434574985644,
        "bytes": 4282,
        "credits_used": 75.0,
        "validation_passed": false
      }
    },
    {
      "source_line": 63,
      "observation": {
        "timestamp": "2026-10-19T05:01:10.254532+00:00",
        "vendor": "scrapingbee",
        "target": "course-antibot",
        "url": "https://www.scrapingcourse.com/antibot-challenge",
        "mode": "js",
        "ok": false,
        "result": "failure",
        "http_status": 500,
        "seconds": 3.710016329991049,
        "bytes": 7265,
        "credits_used": 0.0,
        "validation_passed": false
      }
    },
    {
      "source_line": 64,
      "observation": {
        "timestamp": "2026-10-19T05:02:26.590775+00:00",
        "vendor": "scrapingbee",
        "target": "course-antibot",
        "url": "https://www.scrapingcourse.com/antibot-challenge",
        "mode": "premium",
        "ok": false,
        "result": "failure",
        "http_status": 200,
        "seconds": 75.33493502700003,
        "bytes": 4270,
        "credits_used": 75.0,
        "validation_passed": false
      }
    },
    {
      "source_line": 65,
      "observation": {
        "timestamp": "2026-10-19T05:02:27.930085+00:00",
        "vendor": "scrapingbee",
        "target": "wikipedia",
        "url": "https://en.wikipedia.org/wiki/Web_scraping",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 0.3140671199944336,
        "bytes": 236478,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 66,
      "observation": {
        "timestamp": "2026-10-19T05:02:31.531620+00:00",
        "vendor": "scrapingbee",
        "target": "httpbin",
        "url": "https://httpbin.org/html",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 2.6005078409943962,
        "bytes": 3741,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 67,
      "observation": {
        "timestamp": "2026-10-19T05:02:36.845018+00:00",
        "vendor": "scraperapi",
        "target": "books",
        "url": "https://books.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 4.306586720995256,
        "bytes": 51294,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 68,
      "observation": {
        "timestamp": "2026-10-19T05:02:39.735643+00:00",
        "vendor": "scraperapi",
        "target": "books-page-2",
        "url": "https://books.toscrape.com/catalogue/page-2.html",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 1.884498182000243,
        "bytes": 50877,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 69,
      "observation": {
        "timestamp": "2026-10-19T05:02:44.023209+00:00",
        "vendor": "scraperapi",
        "target": "quotes",
        "url": "https://quotes.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 3.2843504000047687,
        "bytes": 11064,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 70,
      "observation": {
        "timestamp": "2026-10-19T05:02:47.723598+00:00",
        "vendor": "scraperapi",
        "target": "quotes-page-2",
        "url": "https://quotes.toscrape.com/page/2/",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 2.696696735001751,
        "bytes": 13745,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 71,
      "observation": {
        "timestamp": "2026-10-19T05:02:56.679068+00:00",
        "vendor": "scraperapi",
        "target": "quotes-js",
        "url": "https://quotes.toscrape.com/js/",
        "mode": "js",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 7.952379621012369,
        "bytes": 8985,
        "credits_used": 10.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 72,
      "observation": {
        "timestamp": "2026-10-19T05:02:58.929617+00:00",
        "vendor": "scraperapi",
        "target": "course-ecommerce",
        "url": "https://www.scrapingcourse.com/ecommerce/",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 1.2435720370121999,
        "bytes": 82776,
        "credits_used": 10.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 73,
      "observation": {
        "timestamp": "2026-10-19T05:03:17.216348+00:00",
        "vendor": "scraperapi",
        "target": "course-infinite",
        "url": "https://www.scrapingcourse.com/infinite-scrolling",
        "mode": "js",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 17.283201155005372,
        "bytes": 16977,
        "credits_used": 20.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 74,
      "observation": {
        "timestamp": "2026-10-19T05:03:26.924154+00:00",
        "vendor": "scraperapi",
        "target": "course-load-more",
        "url": "https://www.scrapingcourse.com/button-click",
        "mode": "js",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 8.705172165995464,
        "bytes": 13952,
        "credits_used": 20.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 75,
      "observation": {
        "timestamp": "2026-10-19T05:04:23.971536+00:00",
        "vendor": "scraperapi",
        "target": "course-cloudflare",
        "url": "https://www.scrapingcourse.com/cloudflare-challenge",
        "mode": "js",
        "ok": false,
        "result": "failure",
        "http_status": 500,
        "seconds": 56.04672627100081,
        "bytes": 208,
        "credits_used": null,
        "validation_passed": false
      }
    },
    {
      "source_line": 76,
      "observation": {
        "timestamp": "2026-10-19T05:04:25.349144+00:00",
        "vendor": "scraperapi",
        "target": "course-cloudflare",
        "url": "https://www.scrapingcourse.com/cloudflare-challenge",
        "mode": "premium",
        "ok": null,
        "result": "unavailable",
        "http_status": 403,
        "seconds": 0.37679588799073827,
        "bytes": 288,
        "credits_used": null,
        "validation_passed": false
      }
    },
    {
      "source_line": 77,
      "observation": {
        "timestamp": "2026-10-19T05:05:22.323939+00:00",
        "vendor": "scraperapi",
        "target": "course-antibot",
        "url": "https://www.scrapingcourse.com/antibot-challenge",
        "mode": "js",
        "ok": false,
        "result": "failure",
        "http_status": 500,
        "seconds": 55.9742598090088,
        "bytes": 208,
        "credits_used": null,
        "validation_passed": false
      }
    },
    {
      "source_line": 78,
      "observation": {
        "timestamp": "2026-10-19T05:05:23.622808+00:00",
        "vendor": "scraperapi",
        "target": "course-antibot",
        "url": "https://www.scrapingcourse.com/antibot-challenge",
        "mode": "premium",
        "ok": null,
        "result": "unavailable",
        "http_status": 403,
        "seconds": 0.29829523801163305,
        "bytes": 288,
        "credits_used": null,
        "validation_passed": false
      }
    },
    {
      "source_line": 79,
      "observation": {
        "timestamp": "2026-10-19T05:05:30.177514+00:00",
        "vendor": "scraperapi",
        "target": "wikipedia",
        "url": "https://en.wikipedia.org/wiki/Web_scraping",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 5.528330040004221,
        "bytes": 236477,
        "credits_used": 1.0,
        "validation_passed": true
      }
    },
    {
      "source_line": 80,
      "observation": {
        "timestamp": "2026-10-19T05:05:43.565271+00:00",
        "vendor": "scraperapi",
        "target": "httpbin",
        "url": "https://httpbin.org/html",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 12.386844801003463,
        "bytes": 3741,
        "credits_used": 1.0,
        "validation_passed": true
      }
    }
  ],
  "excluded_observations": [
    {
      "source_line": 34,
      "reason": "legacy_premium_60s_timeout",
      "observation": {
        "timestamp": "2026-10-18T19:08:26.522141+00:00",
        "vendor": "scrapingbee",
        "target": "course-cloudflare",
        "url": "https://www.scrapingcourse.com/cloudflare-challenge",
        "mode": "premium",
        "ok": null,
        "http_status": null,
        "seconds": 60.08610454099835,
        "bytes": 0,
        "credits_used": null,
        "validation_passed": false,
        "result": "timeout_60s_old"
      }
    },
    {
      "source_line": 36,
      "reason": "legacy_premium_60s_timeout",
      "observation": {
        "timestamp": "2026-10-18T19:09:33.888455+00:00",
        "vendor": "scrapingbee",
        "target": "course-antibot",
        "url": "https://www.scrapingcourse.com/antibot-challenge",
        "mode": "premium",
        "ok": null,
        "http_status": null,
        "seconds": 60.088234663999174,
        "bytes": 0,
        "credits_used": null,
        "validation_passed": false,
        "result": "timeout_60s_old"
      }
    },
    {
      "source_line": 81,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:05:44.933022+00:00",
        "vendor": "scrapingdog",
        "target": "books",
        "url": "https://books.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 0.36209048800810706,
        "bytes": 51295,
        "credits_used": null,
        "validation_passed": true
      }
    },
    {
      "source_line": 82,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:05:46.272686+00:00",
        "vendor": "scrapingdog",
        "target": "books-page-2",
        "url": "https://books.toscrape.com/catalogue/page-2.html",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 0.33238043199526146,
        "bytes": 50878,
        "credits_used": null,
        "validation_passed": true
      }
    },
    {
      "source_line": 83,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:05:47.984168+00:00",
        "vendor": "scrapingdog",
        "target": "quotes",
        "url": "https://quotes.toscrape.com/",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 0.708815145000699,
        "bytes": 11064,
        "credits_used": null,
        "validation_passed": true
      }
    },
    {
      "source_line": 84,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:05:49.295606+00:00",
        "vendor": "scrapingdog",
        "target": "quotes-page-2",
        "url": "https://quotes.toscrape.com/page/2/",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 0.3085338800010504,
        "bytes": 13745,
        "credits_used": null,
        "validation_passed": true
      }
    },
    {
      "source_line": 85,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:05:55.727454+00:00",
        "vendor": "scrapingdog",
        "target": "quotes-js",
        "url": "https://quotes.toscrape.com/js/",
        "mode": "js",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 5.430023016990162,
        "bytes": 8985,
        "credits_used": null,
        "validation_passed": true
      }
    },
    {
      "source_line": 86,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:05:57.676480+00:00",
        "vendor": "scrapingdog",
        "target": "course-ecommerce",
        "url": "https://www.scrapingcourse.com/ecommerce/",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 0.9445921900041867,
        "bytes": 82776,
        "credits_used": null,
        "validation_passed": true
      }
    },
    {
      "source_line": 87,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:06:08.474470+00:00",
        "vendor": "scrapingdog",
        "target": "course-infinite",
        "url": "https://www.scrapingcourse.com/infinite-scrolling",
        "mode": "js",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 9.795659644005354,
        "bytes": 17404,
        "credits_used": null,
        "validation_passed": true
      }
    },
    {
      "source_line": 88,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:06:21.466046+00:00",
        "vendor": "scrapingdog",
        "target": "course-load-more",
        "url": "https://www.scrapingcourse.com/button-click",
        "mode": "js",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 11.989471833992866,
        "bytes": 13952,
        "credits_used": null,
        "validation_passed": true
      }
    },
    {
      "source_line": 89,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:06:45.165571+00:00",
        "vendor": "scrapingdog",
        "target": "course-cloudflare",
        "url": "https://www.scrapingcourse.com/cloudflare-challenge",
        "mode": "js",
        "ok": false,
        "result": "failure",
        "http_status": 400,
        "seconds": 22.69774187299481,
        "bytes": 112,
        "credits_used": null,
        "validation_passed": false
      }
    },
    {
      "source_line": 90,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:07:12.951155+00:00",
        "vendor": "scrapingdog",
        "target": "course-cloudflare",
        "url": "https://www.scrapingcourse.com/cloudflare-challenge",
        "mode": "premium",
        "ok": false,
        "result": "failure",
        "http_status": 400,
        "seconds": 26.785021928997594,
        "bytes": 112,
        "credits_used": null,
        "validation_passed": false
      }
    },
    {
      "source_line": 91,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:07:39.172170+00:00",
        "vendor": "scrapingdog",
        "target": "course-antibot",
        "url": "https://www.scrapingcourse.com/antibot-challenge",
        "mode": "js",
        "ok": false,
        "result": "failure",
        "http_status": 400,
        "seconds": 25.220299717999296,
        "bytes": 112,
        "credits_used": null,
        "validation_passed": false
      }
    },
    {
      "source_line": 92,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:08:02.497244+00:00",
        "vendor": "scrapingdog",
        "target": "course-antibot",
        "url": "https://www.scrapingcourse.com/antibot-challenge",
        "mode": "premium",
        "ok": false,
        "result": "failure",
        "http_status": 400,
        "seconds": 22.324422974998015,
        "bytes": 112,
        "credits_used": null,
        "validation_passed": false
      }
    },
    {
      "source_line": 93,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:08:03.968616+00:00",
        "vendor": "scrapingdog",
        "target": "wikipedia",
        "url": "https://en.wikipedia.org/wiki/Web_scraping",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 0.4443993699969724,
        "bytes": 236478,
        "credits_used": null,
        "validation_passed": true
      }
    },
    {
      "source_line": 94,
      "reason": "other_vendor",
      "observation": {
        "timestamp": "2026-10-19T05:08:05.205093+00:00",
        "vendor": "scrapingdog",
        "target": "httpbin",
        "url": "https://httpbin.org/html",
        "mode": "plain",
        "ok": true,
        "result": "success",
        "http_status": 200,
        "seconds": 0.2353786549938377,
        "bytes": 3741,
        "credits_used": null,
        "validation_passed": true
      }
    }
  ],
  "input_observations": 94,
  "matched_attempts": 78,
  "evidence_date": "2026-10-19",
  "inputs": {
    "evidence/results-2026-10-19.jsonl": "3590eea3109f454b2acc922695b3bb7f46058ccbbdeed6560bef4e2103771c94",
    "targets.json": "0cf174a7bb31c8fda58ce6bdc7bb153c9044b52f43cde85f5e0766906ec92102",
    "run.py": "c91cd1ee03abb6ed71aa860447d825eebaa239d5d870783b8c3a6c578947ea44",
    "report.py": "92d42451380893e031a814d4851f06d549c7ab0912191ae8463c04d7ae8d1f1f",
    "vendors.py": "55ee75e71766e42adc24e4101c106a63a543a0747d1d10df03bb976c0eaa2f06",
    "data/summary.json": "3f08338d5cb94321dfe56e09552fefcd7c968b80a7335a19f945d0ac505dc438",
    "compare.py": "f7671d87e75b43e69ab23b27b7198eaff03fd603af876ceb6701ce01226fba2c",
    "evidence/provenance-2026-10-19.json": "cfe86dc964790f36b4ad1e26aea1647bd60bec0f845152bbb72cfb2d2c161577"
  },
  "provenance": [
    {
      "source": "/home/dev/venture/products/apibench/data/results.jsonl",
      "source_mtime_utc": "2026-10-19T05:08:05.204049+00:00",
      "sha256": "3590eea3109f454b2acc922695b3bb7f46058ccbbdeed6560bef4e2103771c94",
      "saved_as": "products/apibench/evidence/results-2026-10-19.jsonl"
    },
    {
      "source": "/home/dev/venture/products/apibench/data/summary.json",
      "source_mtime_utc": "2026-10-19T05:08:06.277861+00:00",
      "sha256": "3f08338d5cb94321dfe56e09552fefcd7c968b80a7335a19f945d0ac505dc438",
      "saved_as": "products/apibench/data/summary.json"
    }
  ]
}
