Skip to content

Locus Data · first release

API / MCP Docs

Bring your own AI client. Read structured location evidence and the saved tenant research you permit, with the source and uncertainty attached.

Release in review. The endpoints below require the reviewed release and additive database migration before production use.

Connect to Locus Data

Use a remote MCP client that supports Streamable HTTP and OAuth authorization code with S256 PKCE. Ask Locus chat is optional. This release exposes MCP tools; a separate general-purpose REST query API is planned.

  1. Add the server URL to your client’s remote MCP connections.
  2. Sign in to Locus in the browser opened by your client. Review the client name and requested scopes before allowing access.
  3. Call list_data_capabilities, then get_data_dictionary. Query only a geographic slice that has current records.

Manage or revoke your connections

OAuth endpoints for client developers
Protected resource metadata
/.well-known/oauth-protected-resource/api/mcp/data
Authorization server metadata
/.well-known/oauth-authorization-server
Registration / authorization / token / revocation
/api/mcp/oauth/register
/api/mcp/oauth/authorize
/api/mcp/oauth/token
/api/mcp/oauth/revoke

Dynamic registration supports public clients using token_endpoint_auth_method: none. Redirects must exactly match a registered HTTPS or loopback URI. Authorization and token requests require the server URL as resource. Authorization requests also require state, scope and S256 PKCE. Authorization responses include the issuer in iss.

Access tokens last 15 minutes. OAuth metadata advertises offline_access for clients that request refresh access; it grants no additional data access. Refresh tokens rotate, retain the original 30-day deadline, and revoke the connection if an old refresh token is replayed. A revoked or expired connection needs fresh authorization. Tokens go in the Authorization header; never supply browser cookies or provider keys.

Read tools

Every tool is read-only. Reads do not call a model, acquire new evidence, start research or spend credits.

Discover

list_data_capabilities · get_data_dictionary · inspect_coverage

Start here. Inspect current scope, entitlement, loaded coverage, field names and original units.

Query structured data

query_data · read_evidence

Select one exact geography, a family and optional source or entity. Results include provenance, uncertainty, expiry and a continuation cursor.

Read a data family

query_demographics · query_local_supply · read_property · read_traffic_context · read_planning_context · read_market_observations · read_pulse_observations

The same bounded query, with family already selected. A tool name does not imply that records are loaded.

Read saved decisions

list_saved_reports · read_report · read_property_fit · read_property_comparison

List consented tenant reports, then read an exact artifactId. The three readers return the same frozen tenant comparison in this release.

Read projects

list_projects · read_project_candidates

List up to 50 projects; provide projectId to read up to 100 candidate decisions. Notes and arbitrary saved payloads are excluded.

Structured query examples

These are tool arguments for an authorized MCP client. Pilot results are limited observations, subject to their original expiry. An empty result cannot establish that a property, business or permit is absent.

English conservation-area context

{
  "name": "read_planning_context",
  "arguments": {
    "geography": "England:51.5407,-0.1464",
    "sourceId": "planning_constraints",
    "limit": 10
  }
}

A conservation-area designation is planning context. It is not a planning application or permission.

NYC property facts

{
  "name": "read_property",
  "arguments": {
    "geography": "NYC:1000010010",
    "sourceId": "nyc_pluto",
    "limit": 10
  }
}

Read tax-lot building and commercial gross area. These measures cannot establish the usable area of an individual unit.

Arguments, result fields and continuation

query_data, read_evidence and inspect_coverage require family and geography. Family readers omit family. Optional selectors are sourceId, entityId, limit (1–100, default 25), and after. Use the returned next as after with the same selectors when truncated is true.

Each row contains fields, units, entityId, entityKind, geography, sourceId, sourceUrl, attribution, vintage, retrievedAt, expiresAt and uncertainty. Preserve these alongside any derived answer. Buildings, parcels, identifiers, titles and commercial units are different entities.

Coverage and availability

The review seed contains four observations: one English conservation-area record and three NYC tax-lot/permit observations. No national UK or US coverage is implied. UPRN, parcel, Overture Places and workplace import adapters have no continuing national import. Other UK jurisdictions, US states and local planning authorities remain gaps.

The authenticated capability catalogue reports what is currently loaded and permitted. “Reviewed” below means a source projection passed review; it does not mean records are loaded or your connection can read them.

SourceReview statusCoverage / interpretation
os_open_uprnreviewedGreat Britain; loaded extracts only. Identifier/coordinate context; no postal addresses or unit/parcel equivalence.
hmlr_inspirereviewedEngland/Wales; loaded local-authority extracts only. Indicative freehold polygon index; INSPIRE ID is not a title number.
ros_parcelsreviewedScotland; loaded subset only. Ground-level ownership polygons, incomplete cadastral subset.
nyc_plutoreviewedNYC; loaded tax-lot extracts only. Tax-lot building/commercial area, not usable unit area, availability or rent.
nyc_dobreviewedNYC DOB NOW Build approved permits; loaded extracts only. Excludes electrical, elevator, LAA and legacy systems. Permit is not completion or blanket use consent.
ons_censusreviewedUK source statistical areas; retained observations only. Source-area resident/workplace statistics, not footfall or catchment totals.
census_acsreviewedUS retained Census geographies only. ACS estimates; retain vintage and margins of error.
census_lodesreviewedUS selected state/block/vintage extracts only. Workplace job counts; publication lag/disclosure protection, not live headcount or footfall.
overture_placesreviewedLoaded release/geographic extracts only. Release-pinned places; incomplete business census, no expansion intent.
overture_buildingsrestrictedGlobal candidate. Mixed source licences including ODbL; per-feature rights/geometry pipeline not reviewed.
planning_londonrestrictedLondon. Guest API documented; current external-AI/redistribution rights and operational coverage not proven. No acquisition enabled.
planning_nationalunsupportedEngland. Official planning-application collection reports zero records/no providers (checked 21 October 2026).
planning_constraintsreviewedEngland; loaded local conservation-area observations only. Designation context, not a planning application, use consent or complete constraints search.
hmlr_ccodrestrictedEngland/Wales. No direct marketing; address reuse/redistribution restrictions. Not an owner-prospecting or external-AI feed.
nc_onemaprestrictedNorth Carolina, separate parcel candidate. External redistribution/protected fields review and bounded validation pending.
regridunsupportedUS. Nationwide paid access; trial is not a continuing free dependency.
voa_ratingsrestrictedEngland/Wales candidate. External-AI/redistribution terms unreviewed. Rateable value is not achieved commercial rent.

Access, limits and errors

data:public
Reviewed public extracts, subject to current plan access.
data:saved
Normalized saved evidence with reviewed external-AI rights. Legacy raw reports are withheld.
data:projects
Your permitted project metadata and candidate decisions. Private notes are excluded.
data:pulse
Reviewed normalized Pulse observations, subject to monitoring access. Legacy payloads are withheld.
data:briefs
Your saved tenant comparisons with separate, explicit per-report external-AI consent.

Scopes grant an upper bound. Each request also checks your current account, existing plan entitlement, ownership, source policy and evidence expiry. There is no separate MCP price or allowance. Reads never reset or renew an exhausted allocation.

  • 60 authenticated requests per account per minute, shared across connections.
  • 64 KiB request body; bounded query pages up to 100 rows; a 256 KiB total response ceiling.
  • No arbitrary SQL, provider credentials, model calls, owner prospecting or research-execution tools.
available / unavailable
Permitted current rows exist / no permitted current rows in this slice. No new acquisition is triggered.
restricted / unsupported
Rights, scope or entitlement withholds this capability / the release does not support it.
HTTP 401 / 429
Authorize again if the connection expired or was revoked / wait for the next read window. Do not loop retries.
RESPONSE_TOO_LARGE
Reduce the query limit. Report readers return an error if the frozen publication exceeds the response ceiling.

For protocol details, see the official MCP authorization specification. For Locus evidence interpretation, see Data sources and Methodology.