For developers & agents
STR rules and lodging tax, callable by an agent
A travel, proptech or tax agent mid-task needs to know whether a city allows a short-term rental and what a guest pays in lodging tax, with a citation it can show its user. LodgeDeck exposes the same cited dataset behind the site as a REST API and a hosted MCP server, so an agent calls a tool instead of guessing at an ordinance.
Quickstart
No key, no signup, one call
Every endpoint works at the anonymous rate with no key. Ask for a city's rules and get each field back with the source it came from and a confidence flag.
request
curl "https://lodgedeck.vercel.app/api/v1/str-rules?city=austin-tx"
response 200
{
"data": {
"slug": "austin-tx",
"city": "Austin",
"state": "Texas",
"state_code": "TX",
"summary": "Austin licenses short-term rentals annually through Development Services and requires the licence number in every listing. Hosts collect the Texas state hotel occupancy tax plus the city hotel occupancy tax, and platforms are required to collect and remit.",
"rules": {
"permit_required": {
"value": true,
"source": "https://www.austintexas.gov/department/license-my-short-term-rental",
"confidence": "reported",
"note": "A city STR licence is required for each unit; licences are valid for two years."
},
"primary_residence_required": {
"value": false,
"source": "https://www.austintexas.gov/development-services/short-term-rentals",
"confidence": "reported",
"note": "Austin uses licence types (owner-occupied Type 1 and non-owner-occupied Type 2); a primary residence is not required for all types."
},
"night_cap": {
"value": null,
"source": null,
"confidence": "unverified",
"note": "No annual night cap identified for Austin STRs."
},
"zoning_restricted": {
"value": true,
"source": "https://www.austintexas.gov/development-services/short-term-rentals",
"confidence": "reported",
"note": "Type 2 (non-owner-occupied) STRs are restricted in residential zones."
},
"listing_number_display_required": {
"value": true,
"source": "https://www.austintexas.gov/department/license-my-short-term-rental",
"confidence": "reported",
"note": "Operators must include a valid licence number in ads or listings."
},
"registration_url": {
"value": "https://www.austintexas.gov/department/license-my-short-term-rental",
"source": "https://www.austintexas.gov/department/license-my-short-term-rental",
"confidence": "reported"
},
"enforcement": {
"value": "New marketplace rules effective 1 July 2026 require platforms to ensure Austin listings carry a valid licence number and to remove non-compliant listings within 10 days of notice.",
"source": "https://www.austintexas.gov/news/austin-city-council-adopts-short-term-rental-code-amendments",
"confidence": "reported"
}
},
"last_verified": "2026-07-18"
},
"request_id": "req_2f9c41a7b0e84d15"
}Note the confidence and source on every field, and that an unconfirmed field is null rather than a guess. See the full API reference for the FACT shape, error codes and the hosted MCP endpoint at https://lodgedeck.vercel.app/api/mcp.
Built for agents
What an agent actually needs from this API
One cited dataset behind everything
The REST API, the MCP server and the website all read the same cited dataset. There is no separate ingestion path to drift, and no field returns a rate or rule without the source URL it was read from.
A source and a confidence on every field
Each rule and tax field is a FACT: a value, the source it came from, and a confidence flag. A field that is not confirmed on an official page comes back value null, confidence "unverified", so your agent never repeats a guess as if it were law.
Single-key auth
One key unlocks the REST API and the MCP server. Send Authorization: Bearer ld_live_... or ld_test_.... No OAuth dance, no per-endpoint credentials.
Machine-readable docs
A full reference, a spec at /api/openapi, and a plain-text summary at /llms.txt so an agent can onboard itself without a human reading a page first.
Deterministic, no model in the path
Every response is a projection of the dataset plus deterministic arithmetic. The same query always returns the same answer, and check-eligibility says so when the governing rules are unknown rather than inventing a verdict.
Free to try, safe by default
Every endpoint works with no key, throttled to 4/min and 20/day per IP. A free ld_test_ key raises that to 10/min against the real dataset and never bills, so an agent loop cannot run up a surprise charge while you build.
REST API
Every endpoint
Base URL https://lodgedeck.vercel.app/api/v1. Every endpoint is free at the anonymous rate and needs no key to try. Send `Authorization: Bearer ld_live_…` (or `x-api-key`) to lift the throttle to your plan's quota. A `ld_test_…` key runs the real dataset, is throttled, and never bills.
/api/v1/jurisdictions
Key optionalList every jurisdiction covered, with its slug, city, state and a coverage count of how many rule and tax fields are confirmed. Free, keyless, throttled by IP. The index an agent reads first to learn what it can ask about.
request
curl https://lodgedeck.vercel.app/api/v1/jurisdictions
/api/v1/str-rules
Key optionalShort-term rental rules for one jurisdiction: whether a licence is required, primary-residence rule, night cap, zoning, listing-number display, and enforcement notes. Every field carries a source URL and a confidence flag; an unconfirmed field is null with confidence "unverified", never guessed.
request
curl "https://lodgedeck.vercel.app/api/v1/str-rules?city=austin-tx"
/api/v1/lodging-tax
Key optionalLodging / occupancy tax for one jurisdiction: state rate, local transient occupancy tax, the combined rate a guest pays, whether the cleaning fee is taxable, and whether the marketplace collects and remits. Each field is source-cited with a confidence flag.
request
curl "https://lodgedeck.vercel.app/api/v1/lodging-tax?city=san-diego-ca"
/api/v1/check-eligibility
Key optionalDeterministic "can I run an STR here?" answer for a jurisdiction and use type. Returns a verdict, the requirements, the cautions, a confidence, and the citations behind them. No model: same input always gives the same answer. When the governing rules are unknown it says so rather than guessing.
request
curl -X POST https://lodgedeck.vercel.app/api/v1/check-eligibility \
-H "Content-Type: application/json" \
-d '{"city":"nashville-tn","use_type":"whole_home"}'/api/v1/pricing
Key optionalMachine-readable pricing: plans, saved-property limits, included API calls, per-call overage, rate limits and features.
request
curl https://lodgedeck.vercel.app/api/v1/pricing
LodgeDeck reports publicly available short-term rental rules and lodging tax rates and cites the source of each field. It is not legal or tax advice and it does not replace your own review. Ordinances and tax rates change often and automated collection can lag, so every field shows the source it came from and a confidence flag, and unconfirmed values are marked Unverified. Confirm with the jurisdiction before you rely on a rule or rate.
Keys are not being issued yet.
Accounts open at launch, so you cannot mint a ld_test_ or ld_live_ key on this deployment today. Every endpoint still works right now with no key at the anonymous rate, and the MCP server answers the same way. Everything below describes how a key lifts the throttle once accounts open.
A key lifts the throttle, it does not gate the data
Every endpoint is free at the anonymous rate. A ld_test_ key is free on every plan, runs the real dataset, and never bills, so you can build against the whole surface before you pay. A ld_live_ key raises you to your plan's quota. See /api/v1/pricing for the machine-readable version.
See plans & quotas