Scrapebench API
Look up Virginia contractor and trade licences (DPOR) by business or person name and city, returning licence number, class, address, expiry, specialties and email. Statewide roster, refreshed nightly from DPOR's official regulant lists.
Offering
- Provider
- api.scrapebench.dev
- Method
- POST
- Offering type
- Api Endpoint
- Transport type
- http
- Category
- Legal And Compliance
- Delivery
- Not provided
- Pricing model
- Not provided
- x402 version
- 2
Endpoint context
- URL
https://api.scrapebench.dev/v1/va-contractor-licenses- MIME type
- Not provided
- First seen
- 2026-10-16T01:50:19.913Z
- Last seen
- Tags
- contractors, licenses, virginia, public-records, leads
Payment pricing
x402 payment terms are the authoritative price for calling this endpoint.
- Payment option 1
- 0.08 USDC
Atomic price: 80000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "80000",
"payTo": "0x1bd1e9431c00ba6ff992a3dda541282079d02abf"
}
]Observed health
- Status
- Reachable
- Latest latency
- 1160 ms
- Average latency
- 989 ms
- HTTP status
- 405
- Last checked
- Reachability
- 100% over 14 checks
Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.
Input schema
{
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"city": {
"anyOf": [
{
"maxLength": 100,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Case-insensitive substring of the licensee's city.",
"title": "City"
},
"license_types": {
"description": "Which DPOR licence lists to search. Default: Class A, B and C contractors.",
"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"
},
"maxItems": 13,
"title": "License Types",
"type": "array"
},
"name": {
"anyOf": [
{
"maxLength": 100,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Case-insensitive substring of the individual or business name.",
"title": "Name"
}
},
"title": "Input",
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
}Output schema
{
"properties": {
"example": {
"properties": {
"next_page": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Page to request next, or null when this is the last.",
"title": "Next Page"
},
"page": {
"description": "Zero-based page number of this response.",
"title": "Page",
"type": "integer"
},
"page_size": {
"description": "Most rows a page can hold; one page is one price.",
"title": "Page Size",
"type": "integer"
},
"rows": {
"description": "Data rows, or free Notice rows explaining a gap.",
"items": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Mailing address, both lines joined by a comma.",
"title": "Address"
},
"business_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Licensed business name.",
"title": "Business Name"
},
"certification_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Date first certified, MM/DD/YYYY.",
"title": "Certification Date"
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Mailing-address city.",
"title": "City"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Country for non-US addresses, else null.",
"title": "Country"
},
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Email address on file with DPOR, when published.",
"title": "Email"
},
"expiration_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Licence expiry, MM/DD/YYYY as DPOR writes it.",
"title": "Expiration Date"
},
"individual_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Licensee's name when licensed as an individual.",
"title": "Individual Name"
},
"license_number": {
"description": "DPOR certificate (licence) number.",
"title": "License Number",
"type": "string"
},
"license_rank": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "DPOR licence rank code.",
"title": "License Rank"
},
"license_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Licence list the row came from, e.g. 'Class A Contractor'.",
"title": "License Type"
},
"scraped_at": {
"description": "UTC timestamp of the read.",
"format": "date-time",
"title": "Scraped At",
"type": "string"
},
"source_url": {
"description": "The URL or endpoint this record was read from.",
"title": "Source Url",
"type": "string"
},
"specialties": {
"description": "DPOR specialty codes, e.g. ELE, PLB, HVA.",
"items": {
"type": "string"
},
"title": "Specialties",
"type": "array"
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Mailing-address state code.",
"title": "State"
},
"zip_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "ZIP, with the +4 extension when DPOR has one.",
"title": "Zip Code"
}
},
"required": [
"source_url",
"license_number"
],
"title": "Output",
"type": "object"
},
{
"additionalProperties": false,
"description": "A free row explaining why a page has no (or partial) data. Never charged.",
"properties": {
"notice": {
"description": "Human-readable reason, and what to send instead if the input was the problem.",
"title": "Notice",
"type": "string"
},
"notice_type": {
"default": "input_error",
"description": "Machine-readable reason: input_error, no_results, blocked, truncated, source_changed, not_ready or stale.",
"title": "Notice Type",
"type": "string"
},
"scraped_at": {
"description": "UTC timestamp of the read.",
"format": "date-time",
"title": "Scraped At",
"type": "string"
},
"source_url": {
"default": "",
"description": "Empty: a notice is about the request, not about a page.",
"title": "Source Url",
"type": "string"
}
},
"required": [
"notice"
],
"title": "Notice",
"type": "object"
}
]
},
"title": "Rows",
"type": "array"
},
"service": {
"description": "The service that answered.",
"title": "Service",
"type": "string"
}
},
"required": [
"service",
"page",
"page_size",
"next_page",
"rows"
],
"title": "VaContractorLicensesPage",
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}