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.04 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
- 40000 smallest units
The catalog’s raw entry
[
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x1bd1e9431c00ba6ff992a3dda541282079d02abf",
"amount": "40000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
]Extensions
{
"bazaar": {
"info": {
"input": {
"body": {
"county": "Alameda",
"license_class": "C-10"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"page": 0,
"rows": [
{
"city": "SAN LEANDRO",
"phone": "(510) 686 9900",
"state": "CA",
"county": "Alameda",
"status": "CLEAR",
"address": "1933 WILLIAMS STREET",
"zip_code": "94577",
"issue_date": "07/01/1932",
"source_url": "https://www.cslb.ca.gov/onlineservices/checklicenseII/LicenseDetail.aspx?LicNum=22726",
"bond_number": "354811",
"business_name": "RANSOME COMPANY",
"business_type": "Corporation",
"license_number": "22726",
"surety_company": "HARCO NATIONAL INSURANCE COMPANY",
"classifications": [
"A",
"C10"
],
"expiration_date": "10/31/2027",
"workers_comp_type": "Workers' Compensation Insurance",
"workers_comp_company": "TRAVELERS PROPERTY CASUALTY COMPANY OF AMERICA"
},
{
"city": "PLEASANTON",
"phone": "(510) 378 2118",
"state": "CA",
"county": "Alameda",
"status": "CLEAR",
"address": "3005 BADGER DR",
"zip_code": "94588",
"issue_date": "02/09/2004",
"source_url": "https://www.cslb.ca.gov/onlineservices/checklicenseII/LicenseDetail.aspx?LicNum=831991",
"bond_number": "100126425",
"business_name": "KEENE MICHAEL WAYNE",
"business_type": "Sole Owner",
"license_number": "831991",
"surety_company": "AMERICAN CONTRACTORS INDEMNITY COMPANY",
"classifications": [
"C10"
],
"expiration_date": "02/29/2028",
"workers_comp_type": "Exempt",
"workers_comp_company": null
},
{
"city": "OAKLAND",
"phone": "(510) 830 6119",
"state": "CA",
"county": "Alameda",
"status": "CLEAR",
"address": "3014 NICOL AVENUE",
"zip_code": "94602",
"issue_date": "05/31/2005",
"source_url": "https://www.cslb.ca.gov/onlineservices/checklicenseII/LicenseDetail.aspx?LicNum=859771",
"bond_number": "100078134",
"business_name": "LOPEZ ELECTRIC",
"business_type": "Sole Owner",
"license_number": "859771",
"surety_company": "MERCHANTS BONDING COMPANY (MUTUAL)",
"classifications": [
"C10"
],
"expiration_date": "05/31/2027",
"workers_comp_type": "Workers' Compensation Insurance",
"workers_comp_company": "NATIONAL LIABILITY AND FIRE INSURANCE COMPANY"
}
],
"service": "ca-contractor-directory",
"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",
"required": [
"license_class",
"county"
],
"properties": {
"county": {
"type": "string",
"title": "County",
"maxLength": 40,
"minLength": 1,
"description": "California county name, e.g. 'Los Angeles' ('County' suffix and case are ignored)."
},
"license_class": {
"type": "string",
"title": "License Class",
"maxLength": 40,
"minLength": 1,
"description": "CSLB classification code, e.g. 'A', 'B', 'C-10' (electrical), 'C-36' (plumbing)."
}
}
},
"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": "CaContractorDirectoryPage",
"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",
"business_name"
],
"properties": {
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "City",
"default": null,
"description": "City of record."
},
"phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Phone",
"default": null,
"description": "Business phone on file with CSLB."
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "State",
"default": null,
"description": "State code of record."
},
"county": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "County",
"default": null,
"description": "County of record."
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Status",
"default": null,
"description": "Licence status, e.g. CLEAR."
},
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Address",
"default": null,
"description": "Street address of record."
},
"zip_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Zip Code",
"default": null,
"description": "ZIP code of record."
},
"issue_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Issue Date",
"default": null,
"description": "Licence issue date as CSLB writes it."
},
"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."
},
"bond_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Bond Number",
"default": null,
"description": "Contractor bond number."
},
"business_name": {
"type": "string",
"title": "Business Name",
"description": "Licensed business name."
},
"business_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Business Type",
"default": null,
"description": "Entity type, e.g. Corporation, Sole Owner."
},
"license_number": {
"type": "string",
"title": "License Number",
"description": "CSLB licence number; source_url is its public detail page."
},
"surety_company": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Surety Company",
"default": null,
"description": "Contractor bond surety company."
},
"classifications": {
"type": "array",
"items": {
"type": "string"
},
"title": "Classifications",
"description": "Every classification the licence holds."
},
"expiration_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Expiration Date",
"default": null,
"description": "Licence expiry date as CSLB writes it."
},
"workers_comp_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Workers Comp Type",
"default": null,
"description": "Workers' comp coverage type, e.g. Exempt."
},
"workers_comp_company": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Workers Comp Company",
"default": null,
"description": "Workers' comp insurer."
}
},
"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:00Z
- Last indexed by Roundhouse
- 2026-10-24 07:00Z
- 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/ca-contractor-directory, 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.