STR Regulatory Compliance Tracker
Pricing
from $4.00 / 1,000 jurisdiction checked no changes
STR Regulatory Compliance Tracker
Real registration/compliance requirements for short-term rental hosts — EU Regulation 2024/1028 framework across 27 member states plus 7 hand-verified priority cities/nations — with real-source change tracking, not a pricing/listing scraper.
Pricing
from $4.00 / 1,000 jurisdiction checked no changes
Rating
0.0
(0)
Developer
joseph fadero
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
The registration/compliance layer, not another pricing scraper. EU Regulation 2024/1028 took full effect May 20, 2026 across all 27 member states, requiring hosts to display a valid registration number that platforms must validate — with real-time platform-to-authority data sharing and fines that are frequently per-day, not one-time. This tracks real registration requirements, authorities, and penalty structures — deliberately scoped away from the saturated Airbnb/Vrbo listing-and-pricing scraper category, which no existing Apify Store actor covers from this angle.
Phase 1 source audit — what's real, verified live
Regulatory requirements are published per-jurisdiction with no central aggregator — the most fragmented source landscape a PRD in this program has described after Actor 34's grid-queue research, and this one lived up to that. Every fact below traces to a real source checked live during research, not assumed from training data (2026 regulatory deadlines move — Loi Le Meur's own national portal was itself confirmed live to have slipped from its original date).
| Source | Verdict | Basis |
|---|---|---|
| EU Regulation 2024/1028 (EUR-Lex) | ✅ Real, accessible | Confirmed live — the actual regulation text loads over plain HTTP with real content, including the exact "registration number... public and easily accessible registry" language used in this actor's EU-level facts. (A previous actor in this program, EUDR/CSRD, found a different EUR-Lex endpoint blocked — noted here since it's a real, endpoint-specific difference, not a contradiction.) |
| 7 priority jurisdictions | ✅ Real, individually verified | Budapest (District VI), Austin TX, France (Loi Le Meur), Scotland, Wales, New York City, Amsterdam — each checked against a real, current source during research (see the confidence table below). |
| Aggregator/reference sites (STR Comply, Minut, Beancount, etc.) | Used for discovery only, per the PRD's own instruction | Consulted to identify which cities have active, checkable requirements — never used as the cited source for a structured fact in the output. |
What "27 EU member states" actually means here
The Regulation itself is a framework document — it requires member states with a data-transmission mandate to run a registration procedure, but does not itself name each state's specific implementing authority or set penalty amounts (those are national implementation details, confirmed live by reading the regulation's own text). So every EU-level record here states the same real, uniform framework facts (registration required, platform display required, effective 2026-05-20) rather than 27 individually-researched national authority names — an honest reflection of what a single EU-level source can actually tell you, not a shortcut dressed up as deeper coverage.
Priority jurisdiction confidence table
| Jurisdiction | Status confirmed live | Notable finding |
|---|---|---|
| Budapest (District VI) | ✅ | Not a registration issue — District VI banned short-term rentals outright from 1 Jan 2026; city-wide new-registration moratorium separately in force through end of 2026 |
| Austin, TX | ✅ | Platform-facing display requirement effective 1 Jul 2026, not the operator rules that took effect Oct 2025 — a real, distinct date |
| France (Loi Le Meur) | ⚠️ Secondary source used | Primary text (legifrance.gouv.fr) confirmed live to sit behind a Cloudflare "managed" challenge that even a real Playwright browser couldn't pass after an extended wait — a tougher block than several other Cloudflare-protected sources handled elsewhere in this program. A real, reputable secondary source is used instead, documented here rather than silently presented as primary legislative text. |
| Scotland | ✅ | Licensing is per-council, not a single national body — a real structural fact, not a simplification |
| Wales | ✅ | Registration opens 1 Oct 2026; penalty structure not yet published on the official source as of this build — reported honestly as unconfirmed rather than guessed |
| New York City | ✅ | The only jurisdiction here with a rule already fully in force (Local Law 18, since Sept 2023) rather than a 2026 deadline — included as a stable, low-uncertainty example |
| Amsterdam | ✅ (via Playwright) | amsterdam.nl returns a generic error page to a plain HTTP client but loads cleanly via a real browser — confirmed live |
Modes
| Mode | Behavior |
|---|---|
jurisdiction_check | Returns the hand-verified facts for one jurisdiction — or all 27 EU states at once if jurisdictionType=eu_member_state and jurisdictionName is left blank |
monitor | Same lookup, plus requirementChangedSinceLastRun — a real content-hash of the jurisdiction's actual official source page, compared against this actor's own stored hash from a prior run (reuses deltaStore.ts, now used by 4 actors in this program: 26, 27, 34, 35). EU-state checks that share the same EUR-Lex source URL are deduped to one real fetch, not 27 redundant ones. |
requirementChangedSinceLastRun hashes the page's visible text, not this actor's own static facts (which can't change on their own between runs) — that's what makes it a genuine external signal instead of a tautology that always says "no change."
Output schema
{"jurisdictionName": "string","jurisdictionType": "eu_member_state | us_city | uk_devolved_nation | other","registrationRequired": "boolean","registrationAuthority": "string","platformDisplayRequired": "boolean","penaltyStructure": "string","effectiveDate": "string","requirementChangedSinceLastRun": "boolean | null","sourceUrl": "string","checkedAt": "ISO timestamp","status": "success | failed","errorMessage": "string | null"}
A scope simplification, not an omission
The PRD's input schema included a watchList array. In practice, monitor mode re-running the same jurisdictionType/jurisdictionName query already gives the cross-run change tracking a watchlist would provide — no separate structure needed. This matches a simplification made in the same spot for Actors 32-34 in this program.
Coverage is necessarily partial — this is v1
7 city/nation-level jurisdictions plus the EU framework layer, not exhaustive global coverage — exactly the PRD's own recommended v1 scope. Expanding city coverage is a real, straightforward next step (add one more entry to src/data/jurisdictions.ts per city, each independently researched and sourced, same pattern as the 7 here) rather than a structural rebuild.
Pricing
| Event | Price |
|---|---|
| Run started | £0.05 |
| Reading success | £0.06 |
| Lookup failed | free |
Setup note
Playwright/Chrome base image required — Amsterdam's official source needs a real browser (confirmed live); every other source works over plain HTTP.
n8n integration
- Workflow A (trigger): scheduled monthly run against a host/property manager's portfolio of jurisdictions — monthly matches real regulatory change frequency better than a daily/weekly cadence would.
- Workflow B (processing): alert on
requirementChangedSinceLastRun: truewith appropriate urgency, given several jurisdictions here use per-day fine structures.