We're building a free API of official STR permit data — what cities do you need?

HaveProduct
Classifieds

We're building a free API of official STR permit data — what cities do you need?

Member since 2026 · 23 posts · 6 votes

I run CivicDataForge. We pull official government STR permit/license records from 30 US cities and counties into one normalized API — not Airbnb listing data, the actual government registries.

Every record carries: permit ID, status (active/expired/revoked), address with coordinates, expiration date, property type, and a link back to the source. The data refreshes daily from city open-data portals (Socrata, ArcGIS, CKAN, CSV feeds).

Current coverage: Seattle, Orlando, Nashville, Austin, Houston, Denver, Chicago, San Diego, Philadelphia, Boston, Sacramento, Scottsdale, Albuquerque, Asheville, Louisville, and 15 more including Florida's Osceola County (Kissimmee) and Polk County (Davenport/ChampionsGate) with coordinates and parcel IDs enriched from county GIS layers.

The API is free. If your market publishes a machine-readable permit registry, we can usually add it in a day.

What jurisdictions would be most useful to you? We're building based on what operators actually need — drop your city and we'll check if the data exists.

1Reply
312 views

Most Popular Reply

John UnderwoodPro Member
Investor · Greer, SC · Member since 2014 · 13k+ posts · 17k+ votes
2mo

I think most of us are already aware of permit requirements for our areas of interest. 

See this reply in the discussion

12 Replies

Jump to latestLatest
  • John UnderwoodPro Member
    Investor · Greer, SC · Member since 2014 · 13k+ posts · 17k+ votes
    2mo

    I think most of us are already aware of permit requirements for our areas of interest. 

  • Member since 2021 · 47 posts · 42 votes
    2mo

    Cool project. I would be interested in seeing this for Kansas City, Missouri. 

  • Mike GrudzienPro Member
    Lender · Eugene, OR · Member since 2019 · 2k+ posts · 1k+ votes
    2mo

    Cool idea.  Is this "pre-launch advertising"?

  • Aaron ZimmermanBusiness Member
    Accountant · Chicago, IL · Member since 2018 · 2k+ posts · 1k+ votes
    2mo

    I don't have anything to add other than I think this is a cool project and helps out beginners

  • Member since 2026 · 23 posts · 6 votes
    2mo

    @Grant Woodward — checked Kansas City, MO. Good news: the city publishes all 1,436 registered short-term rentals on their Parcel Viewer GIS layer (ArcGIS, under the Neighborhood Services department). Every record carries a permit number, status, address, zip, parcel number, issue date, and expiration date. The data is machine-readable and queryable.

    We'll add it. KC uses Missouri State Plane coordinates so we need to reproject to lat/long, but that's straightforward. Should be in the registry within the next few days.

    Anything specific you're trying to do with the KC data — permit density analysis, checking a specific neighborhood, monitoring expirations? Happy to prioritize the fields that matter most for your use case.

  • Member since 2026 · 23 posts · 6 votes
    2mo

    @Mike Grudzien — live and queryable right now, not pre-launch. The API is an Apify actor that pulls directly from city open-data portals on each run.

    Example of what a query returns today: run it against Orlando and you get 2,000+ vacation rental records, each with the DBPR licence number, status (Current / Suspended / Voluntarily Relinquished), expiration date, address with coordinates, and a link back to the state source. Run it against Denver and you get the city's Socrata-hosted registry with permit type, status, and address. Same normalized schema either way.

    The landing page at civicdataforge.pages.dev/data/str-permit-data has the full jurisdiction list and links to the actor. Free to run — just pick your city and hit go.

  • Member since 2026 · 23 posts · 6 votes
    2mo

    @John Underwood — fair point. Experienced operators know their own permit requirements. The use case we're building for is more on the analysis side: investors underwriting a new market who want to see permit density by neighborhood before they buy, or operators tracking permit status changes across a portfolio without manually checking each city portal.

    The "30 registries in one schema" part matters less if you're in one market you know well, and more if you're comparing across markets or building tools on top of the data. Appreciate the perspective — helps us calibrate who we're actually building for.

  • Member since 2026 · 23 posts · 6 votes
    2mo

    @Aaron Zimmerman — appreciate that. That's exactly the gap we saw: the data exists in public government portals, but finding it and making sense of 30 different schemas is a barrier for anyone who doesn't want to become a FOIA specialist. Glad it resonates.

  • Member since 2026 · 23 posts · 6 votes
    2mo

    @Grant Woodward — Kansas City is live. Turned out to be easier than I expected: the city publishes the registry on its own GIS server, so we wired directly to the source.

    What you can pull right now: 1,145 unique active STR permits (the city's layer actually holds 1,436 rows, but 291 are exact duplicates we collapse), each with permit number, address, parcel number, issue/expiration dates, and GPS coordinates (converted from the state-plane system the city uses).

    It's free — pick "Kansas City, MO" from the city list and run it: apify.com/civicdataforge/str-permit-registry. Full coverage list here: civicdataforge.pages.dev/data/str-permit-data.

    If you tell me what you're doing with it (density by zip, tracking expirations, checking specific addresses), happy to point you at the right fields.

  • Member since 2026 · 23 posts · 6 votes
    2mo

    Update for everyone following: two upgrades shipped since the last post.

    1. Every jurisdiction now carries coordinates. Seven of the 31 (Austin, Bend, Boston, Chicago, Denver, Orlando, Philadelphia) publish no geometry in their feeds, so we now resolve those through the US Census geocoder — 96% of records filled in testing. Every record also carries a coordinates_source field telling you whether the point came from the city's own geometry, a county parcel match, or Census street interpolation. Where nothing resolves, it ships null — we never guess a pin.

    2. Florida condo group licences now show every unit. One DBPR licence can cover a whole complex (one row per unit). We found and fixed a bug that was collapsing those — an Osceola pull that returned 11 rows now correctly returns every permitted unit.

    And a standing offer while we build: drop any address in the 31 covered markets and I'll run it against the official registry — whether that address already holds a permit, plus permit density and status mix on the surrounding blocks. Free, from the government record.

  • Member since 2026 · 23 posts · 6 votes
    2mo

    New field shipped today, and it's the one I think matters most: which government actually governs each parcel.

    Every record now carries jurisdiction and jurisdiction_type, resolved by testing the property's coordinates against Census incorporated-place boundaries. So you get "this is inside Haines City" or "this is unincorporated county land" as a fact, rather than inferring it from the mailing address.

    Why it matters — measured on Polk County, FL this morning: 159 of 188 permitted properties are on unincorporated county land (county rules, not city rules), and 7 have a mailing address naming a different place than the government that governs them. "214 WINDSOR PL, DAVENPORT" is actually governed by Eagle Lake. Underwrite that one off Davenport's ordinance and you read the wrong rulebook.

    Control check, because a number like that deserves one: run against city-run registries, Kansas City came back 195/195 inside Kansas City and Orlando 199/199 inside Orlando — exactly what a correct method should return.

    Also live: every record carries provenance. coordinates_source tells you whether a point came from the city's own geometry, a county parcel match, or Census interpolation. jurisdiction_source tells you the boundary set used. If we can't resolve something it ships null — we don't guess and we don't round up.

    Free API, 31 jurisdictions: apify.com/civicdataforge/str-permit-registry

    Standing offer: drop an address and I'll run it — permit status, density around it, and the governing jurisdiction.

  • Member since 2026 · 23 posts · 6 votes
    2mo

    Quick pricing clarification, because earlier posts here said "free" and that was looser than it should have been.

    The actor is pay-per-result: $0.003 per record. In practice a single-city pull is small — Orlando is 524 records (~$1.57), Kansas City 1,147 (~$3.44). The big counties run to thousands of records, so pick your city from the list rather than running the default all-31 pull — the full registry is ~100k records and prices accordingly. Apify's free plan includes $5/month of usage.

    What stays genuinely free: drop an address in this thread and I'll run the check myself — permit status, density around it, governing jurisdiction — no account needed at all.

Join the conversationCreate a free account to reply, vote on answers and follow this thread.