US Building Permits Scraper | Construction & Real Estate Leads avatar

US Building Permits Scraper | Construction & Real Estate Leads

Pricing

from $1.97 / 1,000 results

Go to Apify Store
US Building Permits Scraper | Construction & Real Estate Leads

US Building Permits Scraper | Construction & Real Estate Leads

Find fresh US construction leads from public building permits. Scrape any Socrata city portal and extract permit details, project value, contractor, owner, address, coordinates and work description. Filter by date, trade, keywords and project value.

Pricing

from $1.97 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

19 days ago

Last modified

Categories

Features

Limited permissions

Share

US Open Data Scraper — Socrata Permits & Public Records

Extract building permits and other public records from any open-data portal powered by Socrata. Point the actor at a city domain and dataset ID, and it returns clean, deduplicated rows with permit numbers, dates, addresses, contractor details, valuations and coordinates. Built for roofing, solar and HVAC contractors, building-material suppliers, real-estate investors and construction-market researchers.

How It Works

How the US Open Data Scraper works: a Socrata domain and dataset ID become mapped permit records plus the original raw row.

The actor downloads the dataset's public CSV export from https://{domain}/api/views/{datasetId}/rows.csv?accessType=DOWNLOAD, reads it as a stream, applies your filters and saves mapped records. There is no login, no API key and no browser.

Socrata portals publish thousands of different schemas, so the actor maps common permit columns through alias lists. For example, permit_number can come from job_filing_number, permit_number, permit_no, permitid, permit_id or filing_number. The full original row is always preserved in raw, so no source column is lost when a dataset uses an unfamiliar name.

What You Can Scrape

  • Building and construction permits — NYC DOB, Chicago, San Francisco, Austin, Seattle, Los Angeles and hundreds of other Socrata portals.
  • Contractor and owner leads — applicant business name, licence number, owner name and job address, ready for CRM enrichment.
  • Job valuations — filter by estimated cost to find larger projects.
  • Geocoded records — latitude and longitude when the source dataset publishes them.
  • Any tabular Socrata dataset — the same mapping works for business licences, inspections, code violations and other public records with permit-like columns.

Input

FieldTypeRequiredDefaultNotes
domainstringYes—Socrata host, for example data.cityofnewyork.us or data.sfgov.org. Do not include https://.
datasetIdstringYes—Four-by-four dataset identifier from the portal URL, for example ipu4-2q9a.
searchQuerystringNo—Case-insensitive full-text search across every text column, applied locally while streaming.
dateFieldstringNo—Column to filter by date, for example issued_date.
dateFromstringNo—Keep rows on or after this date (YYYY-MM-DD). Requires dateField.
dateTostringNo—Keep rows on or before this date (YYYY-MM-DD). Requires dateField.
whereClausestringNo—Simple filter such as borough='MANHATTAN' or estimated_job_costs > 50000. Supports =, !=, >, >=, <, <= and AND.
selectstringNo—Comma-separated source columns to keep inside raw. It does not remove the 14 mapped fields.
limitintegerNo1000Maximum records to return (1–50,000).
offsetintegerNo0Records to skip in the filtered stream.
proxyConfigurationobjectNoApify ProxyOptional. Useful for very large downloads or rate-limited portals.

Example input

{
"domain": "data.cityofnewyork.us",
"datasetId": "ipu4-2q9a",
"dateField": "issued_date",
"dateFrom": "2025-01-01",
"whereClause": "borough='BROOKLYN' AND estimated_job_costs > 50000",
"limit": 500
}

Output

One dataset item per filtered source row. The actor returns 14 mapped fields plus raw:

FieldSource examplesDescription
permit_numberjob_filing_number, permit_numberPermit or filing identifier
permit_typework_type, permit_typeWork or permit category
statuspermit_status, statusCurrent permit status
issue_dateissued_date, issuance_dateIssue or approval date
addressaddress, site_addressSite address
work_descriptionjob_description, descriptionScope of work
valuationestimated_job_costs, job_costDeclared job value
contractor_nameapplicant_business_name, contractor_nameContractor or applicant business
contractor_licenseapplicant_license, license_numberContractor licence
owner_nameowner_name, owner_business_nameProperty owner
latitudelatitude, lat, gis_latitudeLatitude when published
longitudelongitude, lon, lngLongitude when published
citycity, borough, municipalityCity or borough
parcel_idbbl, parcel_id, lotParcel, block/lot or lot identifier
rawall columnsOriginal CSV row, optionally narrowed with select

Missing or unmapped values are returned as null; the actor does not invent data.

Data Behaviour and Limits

  • One dataset per run. Use separate runs for different cities or datasets.
  • Filters run locally. searchQuery, dateFrom, dateTo and whereClause are evaluated while the CSV is streamed; they are not pushed down as SoQL. Large portals can therefore download a large file even when limit is small.
  • Scan cap. The actor reads at most 200,000 rows in one run to protect memory. limit can be up to 50,000.
  • Date sorting. When dateField is set, the actor needs the filtered list before slicing, so expect a longer scan on very large datasets.
  • Column aliases are finite. Most permit portals match the built-in aliases. If a dataset uses a completely different schema, mapped fields can be null while raw still contains the values.
  • Coordinates are source-dependent. The actor does not geocode addresses.
  • CSV export must be public. Private or disabled exports return an HTTP error.

Pricing

Pay-per-result with no subscription:

EventPriceWhat triggers it
Actor start$0.00005Once per run
Result row$0.002Each saved dataset item

That is $2 per 1,000 rows. Free Apify accounts can preview 10 rows; paid runs are bounded by limit (default 1,000, maximum 50,000).

FAQ

How do I find the Socrata domain and dataset ID?

Open the dataset in your browser. The domain is the host, such as data.cityofnewyork.us. The dataset ID is the four-by-four code in the path, such as ipu4-2q9a in /d/ipu4-2q9a.

Do I need a Socrata API token?

No. The actor uses the public CSV export, which does not require an app token. A proxy can help if the portal rate-limits repeated large downloads.

Does this work outside the US?

Technically it works with any public Socrata portal, but the field aliases and documentation are optimised for US municipal permit data.

Can I get every original column?

Yes. raw contains the full source row. Use select if you want to keep only specific columns inside raw.

SEO Keywords

socrata scraper, open data scraper, us building permits, building permit data, construction leads, contractor leads, nyc dob permits, socrata api alternative, permit dataset, public records scraper, construction market research, solar leads, roofing leads, hvac leads, socrata csv export

This actor accesses publicly available open-data exports. You are responsible for complying with the source portal's terms, local laws and any restrictions on using permit or contractor data for marketing. Verify records before making business or legal decisions.