Rhode Island Contractor Registration Lookup & List Scraper
Every Rhode Island CRLB contractor registration: status, expiry, complaints and violations, with phone, email and address where the board's quarterly lists carry them.
Verification
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
source_url | string|number|array|object|null |
listing_id | string|number|array|object|null |
name | string|number|array|object|null |
phone | string|number|array|object|null |
phone_e164 | string|number|array|object|null |
email | string|number|array|object|null |
website | string|number|array|object|null |
street | string|number|array|object|null |
city | string|number|array|object|null |
region | string|number|array|object|null |
postal_code | string|number|array|object|null |
country | string|number|array|object|null |
category | string|number|array|object|null |
categories | string|number|array|object|null |
lat | string|number|array|object|null |
lng | string|number|array|object|null |
source | string|number|array|object|null |
extras | string|number|array|object|null |
notice | string|null |
Sample row
{
"listing_id": "GC-3036",
"name": "GREENWICH BAY HOMES LLC",
"phone": "(401)241-3949",
"phone_e164": "+14012413949",
"email": "dan@gbhomes.net",
"street": "138 Atwells Ave",
"city": "Providence",
"region": "Rhode Island",
"postal_code": "02903",
"country": "US",
"category": "RESIDENTIAL/COMMERCIAL",
"categories": [
"RESIDENTIAL/COMMERCIAL"
],
"source": "snapshot",
"source_url": "https://datadbr.ri.gov/crb-search/contractor-search.php#GC-3036",
"extras": {
"status": "VALID",
"expires": "2027-08-19",
"contractor_names": [
"DANIEL SANTIS"
],
"complaints": 1,
"violations": 1
}
} Inputs
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
mode | string | no | "auto" | export: no names, just filters; returns the whole matching list. lookup / verify: put company names (matched if contained in the company name) or licence numbers (exact) in 'queries'. auto picks the mode for you. |
query | string | no | — | A business name (or listing number) to look up in the stored copy of the directory. Kept alongside 'queries' for saved tasks. |
queries | array | no | [] | A business name (or listing number) to look up in the stored copy of the directory. Several values in one run; combined with 'query'. |
status | string | no | — | Only listings in this status. Kept alongside 'statuses' for saved tasks. |
statuses | array | no | [] | Only listings in this status. Several values in one run; combined with 'status'. |
city | string | no | — | Only listings in this city. Kept alongside 'cities' for saved tasks. |
cities | array | no | [] | Only listings in this city. Several values in one run; combined with 'city'. |
categories | array | no | [] | Only these categories, in the source's own names. Available: commercial, commercial-roofer, home-inspector, home-inspector-associate, pump-installer, registration-type-unlisted, residential, residential-commercial, underground-utility, water-filtration-contractor, water-filtration-installer, well-driller. |
maxResults | integer | no | 500 | Per query in lookup mode; per run in export mode. |
proxyConfiguration | object | no | {"useApifyProxy":false} | Used only for live lookups; exports read the stored snapshot. |
Pricing
Pay per result (dataset-item) — no charge for empty runs.
Example: 1000 contractor registrations at $0.004/result ≈ $4.00.
FAQ
Where does the data come from?
Two public sources from the Rhode Island Contractors' Registration and Licensing Board: its contractor search (status, expiry, complaints, violations) and the quarterly contractor lists it posts on crb.ri.gov (phone, email, address). They are joined on the registration number.
Why do only some rows have a phone or email?
The board publishes contact details only in its quarterly lists, and each list covers the applications approved that quarter. On 2026-10-27, 2,837 of 10,482 valid registrations had a phone. Registrations run about a year, so each new list fills in more of them.
How do I get only active contractors?
Set status to VALID. A registration the board showed as VALID whose expiry date has since passed is returned as INVALID, with a status_note saying the status came from the date.
Can I verify a registration number?
Yes. Put one or more numbers (e.g. GC-3036) in queries. The actor returns each one's status, expiry, complaints and violations from the stored copy.
Which registration types are there?
residential, commercial, residential-commercial, commercial-roofer, underground-utility, well-driller, pump-installer, water-filtration-installer, water-filtration-contractor, home-inspector, home-inspector-associate, plus registration-type-unlisted for new registrations whose quarterly list does not say which of residential, commercial or both they hold.
How current is it?
The registry was read on 2026-10-27, and the stored copy is refreshed from each new quarterly list when it is older than a month and the actor is in use. The run log states the date of the copy, and a run served from a copy older than 45 days returns one free notice saying so.
How am I charged?
One event per registration returned. Notices are free.
Guides & use cases