For assistants and agents
Home-service discovery your agent can use
Search approved Virginia businesses through a public JSON API, inspect clear listing facts, and start a quote request only with homeowner permission.
One source, two ways to browse
Structured records behind every public profile.
People can use the search page. HTTP-capable assistants can use the versioned API. Both show the same approved businesses, credential status, advertising label, and quote-request availability.
Read
Search, then inspect a listing.
GET /api/v1/listingsFilter by trade, city, or verified=1. Use page and page_size to paginate. The response provides pagination.next.
GET /api/v1/listings/{slug}Read one approved business, including its service cities, profile URL, credential check, advertising status, and quote-request availability.
Page size defaults to 25 and is capped at 100. credential.status=not_verified means this directory has not verified a credential; it does not mean the business lacks one. Hidden street addresses, private owner email, account links, and payment details are excluded.
Act with permission
Let the homeowner approve every request.
Only businesses with quoteRequests.available=true accept requests. The business opts in, and the homeowner can use the protected form on its profile. Approved assistants use an issued API key. A 202 response means we emailed a confirmation link to the homeowner. The business receives nothing until the homeowner confirms.
- Check listing availability.
- Submit the request with homeowner consent.
- Homeowner confirms by email within 24 hours.
- Business receives the request and replies directly.
Request contract
Send a quote request.
Approved assistants POST JSON to /api/v1/quote-requests with an issued Bearer key. Include an Idempotency-Key header so retries do not create duplicates. Request agent access. Homeowners can use the protected form on each profile without a key.
{
"listingSlug": "example-business-richmond",
"requesterName": "Homeowner Name",
"requesterEmail": "homeowner@example.com",
"projectSummary": "Describe the work and relevant details here.",
"postalCode": "23220",
"timing": "within_month",
"agentName": "Optional assistant name",
"homeownerConsent": true
}timing accepts asap, within_month, or flexible. Do not submit without homeowner permission. The email is used to confirm the request and let the opted-in business reply. Quote request records are removed after 30 days. Businesses set their own prices and terms; the directory does not prepare or endorse their quotes.
Open access
No vendor-specific integration required.
Profiles include Schema.org LocalBusiness data. Use the sitemap or llms.txt for discovery, and the OpenAPI contract for exact request and response fields.