For developers and property software teams
Rental rules, with the sources attached.
Give your users a useful first answer about a rental in England. Connect an AI tool or your own application to our public rule catalogue and council licensing research.
Free public access. 77 cited rules. 63 of 296 English councils researched. No API key required. Coverage is still growing.
Connect your MCP client
Add a remote server with URL https://lettance.com/mcp and Streamable HTTP transport. Client interfaces differ; use the remote-server settings in your client. This stateless endpoint returns JSON and does not open a server event stream.
curl https://lettance.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"your-app","version":"1.0.0"}}}'After initialization, send notifications/initialized without an ID, then tools/list or tools/call. Include the negotiated MCP-Protocol-Version header on later requests. Each POST carries one message. Successful notifications return an empty 202; tool calls return JSON-RPC results.
curl https://lettance.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2025-11-25' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"council_licensing","arguments":{"council":"southwark"}}}'Server-side clients can connect directly. Browser integrations require an allowed Origin; use your own backend or contact us to allow your site. Default request limit: 120 per IP in ten minutes, subject to operational changes. On HTTP 429, respect Retry-After. There is no uptime or freshness SLA for the free service.
Use the TypeScript client
Download the dependency-free TypeScript client and save it as lettance-sdk.ts in your project. Use Bun or a TypeScript bundler. This is an early source release, not a published npm package.
curl -fsS https://lettance.com/developers/sdk -o lettance-sdk.tsimport { LettanceClient, LettanceError } from "./lettance-sdk";
const lettance = new LettanceClient();
const council = await lettance.councilLicensing("southwark");
if (council.researched) {
console.log(council.researched_at, council.open_questions);
for (const scheme of council.schemes) {
console.log(scheme.name, scheme.confidence, scheme.source_urls);
}
} else {
console.log(council.message); // Unknown coverage is not no licence.
}
const { results } = await lettance.searchRules("gas safety");
if (results[0]) {
const rule = await lettance.getRule(results[0].id);
console.log(rule.status, rule.legal_basis);
}The client initializes automatically, preserves structured responses and throws LettanceError for HTTP, protocol and tool errors. It uses a 25-second timeout and does not automatically retry or submit private records. Set timeoutMs or inject fetch in the constructor when needed; HTTP errors expose status and retryAfter.
Four read-only tools
| Tool | Arguments | Result |
|---|---|---|
| check_address | postcode, household? | Licence verdict for one postcode and household type, matching schemes, register window and planning context. A postcode cannot resolve a street-level boundary. |
| search_rules | query | Up to ten matching rule summaries, with status and a link to the full cited rule. |
| get_rule | id | Full rule, legal basis, guidance, requirement, deadlines, evidence and confidence. |
| council_licensing | council | Council schemes, source links, research dates and open questions; researched: false where the catalogue is incomplete. |
household accepts single (default), small_hmo or large_hmo. Use tools/list for the current input schemas. Public tools cannot access accounts, saved properties, certificates, notices, repairs or documents.
Keep the evidence in your interface
- Rules: show
status,confidenceandlegal_basis. Link to the rule page and the cited legislation or guidance. Proposed rules are not current obligations. - Council licensing: retain
source_urls,researched_at,verified_atandopen_questions. These are source snapshots, not a promise of live verification. Fees may depend on exemptions or discounts. - Location: postcodes.io resolves the postcode and ward. Planning Data provides planning context. Show each dataset's
planningAvailability: unavailable arrays arenull, while empty arrays mean a successful lookup found no mapped matches at the postcode centre. Missing data is not evidence that no designation exists; confirm the precise property against council maps. - Reuse: links identify the underlying sources; public access does not grant a blanket licence to republish third-party material. Review each source’s terms for your intended use. EPC address records are excluded from this public interface.
Information for privately rented homes in England, not legal advice. Confirm consequential decisions with the responsible council or a qualified adviser. Read our sources and methodology.
Building a paid property product?
The public MCP tools and repository SDK are free today. We are exploring authenticated higher-volume access, change feeds and agreed support for property software teams. These are not available paid endpoints yet.