PullFirst
Contractor licenses, building permits, osha, and DLI enforcement in one place. Largest collection recent Minnesota Building permits. Programatically matched to verified Minnesota Contractor licenses. Joined to county, geocode, parcel values & more.
PullFirst endpoints
| Method | Endpoint | Description |
|---|---|---|
| AgEnforcement | ||
| GET |
/v1/ag-enforcement /v1/ag-enforcement |
Uses Gridify syntax for filtering. Examples: - `companyName=*Construction*` - company name contains - `city=Minneapolis` - exact city match - `orderType=Settlement` - filter by… |
| GET |
/v1/ag-enforcement/stats /v1/ag-enforcement/stats |
Returns aggregated AG enforcement data including: - Total cases and penalties - Cases by year - Cases by order type |
| GET |
/v1/ag-enforcement/{id} /v1/ag-enforcement/{id} |
|
| Enforcement | ||
| GET |
/v1/Enforcement/trends /v1/Enforcement/trends |
Returns aggregated enforcement data grouped by: - Year (count and total penalties) - Order type (Consent Order, Administrative Order, etc.) - Violation type (electrical,… |
| GET |
/v1/Enforcement /v1/Enforcement |
Uses Gridify syntax for filtering. Examples: - `companyName=*Roofing*` - company name contains - `city=Minneapolis` - exact city match - `orderType=Revocation` - filter by order… |
| GET |
/v1/Enforcement/recent /v1/Enforcement/recent |
|
| GET |
/v1/Enforcement/{id} /v1/Enforcement/{id} |
|
| GET |
/v1/Enforcement/by-license/{licenseNumber} /v1/Enforcement/by-license/{licenseNumber} |
|
| Licenses | ||
| GET |
/v1/Licenses/search /v1/Licenses/search |
Normalizes input (strips punctuation, handles spacing) and searches: - Company/person name - DBA (doing business as) name - License number Can be combined with filters for… |
| GET |
/v1/Licenses/batch /v1/Licenses/batch |
|
| GET |
/v1/Licenses/{licenseNumber}/osha /v1/Licenses/{licenseNumber}/osha |
|
| GET |
/v1/Licenses/{licenseNumber}/permits/locations /v1/Licenses/{licenseNumber}/permits/locations |
|
| GET |
/v1/Licenses/featured /v1/Licenses/featured |
|
| GET |
/v1/Licenses/{licenseNumber}/osha/summary /v1/Licenses/{licenseNumber}/osha/summary |
Returns OSHA workplace safety inspections linked to this contractor. Matches are based on fuzzy name matching and address correlation. Includes inspection details, violations,… |
| GET |
/v1/Licenses/cities /v1/Licenses/cities |
|
| GET |
/v1/Licenses/{licenseNumber} /v1/Licenses/{licenseNumber} |
|
| GET |
/v1/Licenses /v1/Licenses |
Uses Gridify syntax for filtering. Examples: - `city=Minneapolis` - exact match - `name=*Roofing*` - contains - `status=Issued,status=Expired` - OR condition -… |
| GET |
/v1/Licenses/suggest /v1/Licenses/suggest |
Returns contractor names matching the query prefix for autocomplete. Fast and lightweight - returns only name, license number, and type. Respects license type filter if provided. |
| GET |
/v1/Licenses/{licenseNumber}/related /v1/Licenses/{licenseNumber}/related |
Helps identify contractors operating from the same location or using the same contact info. Useful for detecting contractors who may have had licenses revoked and reopened under… |
| GET |
/v1/Licenses/{licenseNumber}/permits/summary /v1/Licenses/{licenseNumber}/permits/summary |
|
| GET |
/v1/Licenses/{licenseNumber}/full /v1/Licenses/{licenseNumber}/full |
Combines license details, enforcement history, and related contractors. Fast endpoint (~50ms) for immediate page render. |
| GET |
/v1/Licenses/stats /v1/Licenses/stats |
|
| GET |
/v1/Licenses/{licenseNumber}/permits /v1/Licenses/{licenseNumber}/permits |
Returns permits from the local database that have been matched to this contractor's license. Matches are created during data import using fuzzy name matching. Includes match… |
| GET |
/v1/Licenses/city/{city} /v1/Licenses/city/{city} |
|
| Osha | ||
| GET |
/v1/Osha/cities /v1/Osha/cities |
|
| GET |
/v1/Osha/{activityNumber} /v1/Osha/{activityNumber} |
Retrieves full inspection details including: - Establishment info and address - NAICS code and industry classification - Inspection type, scope, and dates - All violations with… |
| GET |
/v1/Osha/by-license/{licenseNumber} /v1/Osha/by-license/{licenseNumber} |
Returns OSHA inspections that have been matched to the specified contractor license. Matches are based on fuzzy name matching and address correlation. Only matches with… |
| GET |
/v1/Osha/search /v1/Osha/search |
Searches local OSHA inspection data for Minnesota establishments. Data comes from OSHA's Integrated Management Information System (IMIS) and includes both Federal OSHA and State… |
| GET |
/v1/Osha/stats /v1/Osha/stats |
Returns aggregate statistics about the OSHA inspection database including: - Total inspections and violations - Serious and willful violation counts - Fatality count - Total… |
| GET |
/v1/Osha /v1/Osha |
Uses Gridify syntax for filtering. Examples: - `siteCity=Minneapolis` - exact city match - `establishmentName=*Roofing*` - name contains - `totalPenalty>5000` - penalty… |
| Parcels | ||
| GET |
/v1/Parcels /v1/Parcels |
|
| GET |
/v1/Parcels/{id} /v1/Parcels/{id} |
|
| GET |
/v1/Parcels/{id}/permits /v1/Parcels/{id}/permits |
|
| PermitDownloads | ||
| GET |
/v1/permit-downloads/sample /v1/permit-downloads/sample |
|
| Permits | ||
| GET |
/v1/Permits/street-suggest /v1/Permits/street-suggest |
|
| GET |
/v1/Permits/density /v1/Permits/density |
|
| GET |
/v1/Permits/streets /v1/Permits/streets |
|
| GET |
/v1/Permits/cities /v1/Permits/cities |
|
| GET |
/v1/Permits/address-suggest /v1/Permits/address-suggest |
|
| GET |
/v1/Permits/points /v1/Permits/points |
|
| GET |
/v1/Permits/block /v1/Permits/block |
|
| Stats | ||
| GET |
/v1/Stats/system /v1/Stats/system |
|
| GET |
/v1/Stats/sources /v1/Stats/sources |
|
| Other endpoints | ||
| GET |
/v1/Permits/density /v1/Permits/density |
|
| GET |
/v1/Permits /v1/Permits |
Searches locally stored permit data from Minneapolis and St. Paul. Data is synced periodically from city ArcGIS APIs. Supports fuzzy contractor name matching, city filter, and… |
| GET |
/v1/Licenses/city/{city} /v1/Licenses/city/{city} |
|
| GET |
/v1/Permits/block /v1/Permits/block |
|
| GET |
/v1/Permits/area-locations /v1/Permits/area-locations |
|
| GET |
/v1/Permits/minneapolis /v1/Permits/minneapolis |
Queries Minneapolis's ArcGIS-hosted permit database (384K+ permits) for all building, mechanical, electrical, and plumbing permits associated with the given contractor name.… |
| GET |
/v1/Permits/cities /v1/Permits/cities |
|
PullFirst pricing
| Plan | Price | Rate limit | Quotas |
|---|---|---|---|
| BASIC | Free | — |
|