Scrapebench API
Nightly golden-diff verification of production scrapers. Every actor runs against its live source each night and is diffed against a frozen fixture — including CAPTCHA-walled state license portals.
The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.
Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.
Accepts
The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.
Pay 0.08 USDC on Base to 0x1bd1…02abf. The signed payment is good for 5 minutes.
- Paid to
- 0x1bd1…02abf
- USD Coin contract
- 0x8335…02913
- Payment window
- 5 minutes
- As published
- 80000 smallest units
The catalog’s raw entry
[
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x1bd1e9431c00ba6ff992a3dda541282079d02abf",
"amount": "80000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
]Extensions
{
"bazaar": {
"info": {
"input": {
"body": {
"name": "engineering"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"page": 0,
"rows": [
{
"city": "LA CROSSE",
"email": "bdougherty@cornerstoneusa.net",
"state": "VA",
"address": "1272 NELLIE JONES RD",
"country": null,
"zip_code": "23950",
"source_url": "https://www.dpor.virginia.gov/RegulantLists",
"specialties": [
"EMW",
"ENV"
],
"license_rank": "A",
"license_type": "Class A Contractor",
"business_name": "CORNERSTONE ENGINEERING AND CONSULTING SERVICES PLLC",
"license_number": "082040",
"expiration_date": "02/29/2028",
"individual_name": null,
"certification_date": "02/03/2004"
},
{
"city": "HOUSTON",
"email": "licensing@woodplc.com",
"state": "TX",
"address": "17325 PARK ROW",
"country": null,
"zip_code": "77084",
"source_url": "https://www.dpor.virginia.gov/RegulantLists",
"specialties": [
"EMC",
"H/H"
],
"license_rank": "A",
"license_type": "Class A Contractor",
"business_name": "WOOD GROUP USA INC",
"license_number": "175352",
"expiration_date": "04/30/2027",
"individual_name": null,
"certification_date": "04/06/2021"
},
{
"city": "NIAGARA FALLS",
"email": "na-licensing@ghd.com",
"state": "NY",
"address": "2055 NIAGARA FALLS BLVD STE # 3",
"country": null,
"zip_code": "14304",
"source_url": "https://www.dpor.virginia.gov/RegulantLists",
"specialties": [
"H/H"
],
"license_rank": "A",
"license_type": "Class A Contractor",
"business_name": "GHD SERVICES INC",
"license_number": "068419",
"expiration_date": "04/30/2028",
"individual_name": null,
"certification_date": "04/22/2002"
}
],
"service": "va-contractor-licenses",
"next_page": null,
"page_size": 25
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"title": "Input",
"properties": {
"city": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"title": "City",
"default": null,
"description": "Case-insensitive substring of the licensee's city."
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"title": "Name",
"default": null,
"description": "Case-insensitive substring of the individual or business name."
},
"license_types": {
"type": "array",
"items": {
"enum": [
"class_a",
"class_a_legacy",
"class_b",
"class_c",
"temporary",
"residential_tradesman",
"backflow_prevention",
"elevator_mechanic",
"water_well_provider",
"accessibility_mechanic",
"energy_analyst",
"energy_analyst_firm",
"sprinkler_inspector"
],
"type": "string"
},
"title": "License Types",
"maxItems": 13,
"description": "Which DPOR licence lists to search. Default: Class A, B and C contractors."
}
}
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"title": "VaContractorLicensesPage",
"required": [
"service",
"page",
"page_size",
"next_page",
"rows"
],
"properties": {
"page": {
"type": "integer",
"title": "Page",
"description": "Zero-based page number of this response."
},
"rows": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "Output",
"required": [
"source_url",
"license_number"
],
"properties": {
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "City",
"default": null,
"description": "Mailing-address city."
},
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Email",
"default": null,
"description": "Email address on file with DPOR, when published."
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "State",
"default": null,
"description": "Mailing-address state code."
},
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Address",
"default": null,
"description": "Mailing address, both lines joined by a comma."
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Country",
"default": null,
"description": "Country for non-US addresses, else null."
},
"zip_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Zip Code",
"default": null,
"description": "ZIP, with the +4 extension when DPOR has one."
},
"scraped_at": {
"type": "string",
"title": "Scraped At",
"format": "date-time",
"description": "UTC timestamp of the read."
},
"source_url": {
"type": "string",
"title": "Source Url",
"description": "The URL or endpoint this record was read from."
},
"specialties": {
"type": "array",
"items": {
"type": "string"
},
"title": "Specialties",
"description": "DPOR specialty codes, e.g. ELE, PLB, HVA."
},
"license_rank": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "License Rank",
"default": null,
"description": "DPOR licence rank code."
},
"license_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "License Type",
"default": null,
"description": "Licence list the row came from, e.g. 'Class A Contractor'."
},
"business_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Business Name",
"default": null,
"description": "Licensed business name."
},
"license_number": {
"type": "string",
"title": "License Number",
"description": "DPOR certificate (licence) number."
},
"expiration_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Expiration Date",
"default": null,
"description": "Licence expiry, MM/DD/YYYY as DPOR writes it."
},
"individual_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Individual Name",
"default": null,
"description": "Licensee's name when licensed as an individual."
},
"certification_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Certification Date",
"default": null,
"description": "Date first certified, MM/DD/YYYY."
}
},
"additionalProperties": false
},
{
"type": "object",
"title": "Notice",
"required": [
"notice"
],
"properties": {
"notice": {
"type": "string",
"title": "Notice",
"description": "Human-readable reason, and what to send instead if the input was the problem."
},
"scraped_at": {
"type": "string",
"title": "Scraped At",
"format": "date-time",
"description": "UTC timestamp of the read."
},
"source_url": {
"type": "string",
"title": "Source Url",
"default": "",
"description": "Empty: a notice is about the request, not about a page."
},
"notice_type": {
"type": "string",
"title": "Notice Type",
"default": "input_error",
"description": "Machine-readable reason: input_error, no_results, blocked, truncated, source_changed, not_ready or stale."
}
},
"description": "A free row explaining why a page has no (or partial) data. Never charged.",
"additionalProperties": false
}
]
},
"title": "Rows",
"description": "Data rows, or free Notice rows explaining a gap."
},
"service": {
"type": "string",
"title": "Service",
"description": "The service that answered."
},
"next_page": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Next Page",
"description": "Page to request next, or null when this is the last."
},
"page_size": {
"type": "integer",
"title": "Page Size",
"description": "Most rows a page can hold; one page is one price."
}
}
}
}
}
}
}
}
}Provenance
- Seen in the source catalog
- 2026-10-16 04:01Z
- Last indexed by Roundhouse
- 2026-10-24 08:20Z
- Last enriched (probe, favicon, geo)
- 2026-10-16 01:15Z
- x402 version
- 2
- Max timeout
- 300s
- Liveness probe
- HTTP 405
Hand this page to an agent
Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.
GET api.roundhouseai.io/v0/endpoints
This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 11 snapshots so far. Verified volume counts only settlements with an on-chain EIP-3009 marker.
Show the promptHide the prompt
Using Roundhouse, look up the x402 service Scrapebench API and tell me whether it is worth paying: what a call costs, whether the endpoint answered when last probed, and what its payment record actually shows. curl -s 'https://api.roundhouseai.io/v0/endpoints?q=Scrapebench%20API' curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>' Then call it: read the price from the live 402 at https://api.scrapebench.dev/v1/va-contractor-licenses, never from a cached figure, and pay with an x402 client. The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except /v0/unified* and /v0/endpoints. Either pay over x402 (mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402), or ask me for an organization key, which I create at https://roundhouseai.io/dashboard/connections. If you have neither, ask before going further. If you do not have Roundhouse tools or skills installed, read https://roundhouseai.io/skill.md first — it is the whole procedure.