API Documentation
Integrate proprietary real estate intelligence directly into your models and CRMs.
Authentication
All API requests require an API key passed via the x-api-key header or as a query parameter ?apiKey=.
curl -H "x-api-key: YOUR_KEY" https://addressintel.co/api/v1/market-signalsEndpoints
/api/v1/market-signalsRetrieves top investment opportunities scored by our proprietary engine. For the Peninsula, properties are scored on teardown potential. For Nantucket, properties are scored on flippability and historic charm.
Query Parameters
market(Optional) Filter by market ("peninsula" or "nantucket"). Defaults to peninsula.city(Optional) Filter by city name (e.g., "Atherton")address(Optional) Search for a specific address
Response
{
"success": true,
"count": 25,
"data": [
{
"id": "abc-123",
"address": "123 Main St",
"city": "Menlo Park",
"price": 2400000,
"status": "Active",
"teardownScore": 95.5,
"flippabilityScore": 0,
"conditionScore": 3.5,
"visionAnalysis": "...",
"proformaROI": -11.3,
"proforma": {
"roiPct": -11.3,
"buildSqft": 3000,
"arvPerSqft": 1325,
"capital": 3775000,
"resaleNet": 3776250,
"compCount": 9,
"compsCityMatched": true,
"compsTypeMatched": true,
"unmodellableReason": null,
"assumptions": {
"costPerSqft": 400,
"softCosts": 150000,
"demoCost": 25000,
"sellingCostPct": 5,
"buildSizeBasis": "zoning envelope (allowableFloorAreaSqft), capped at 4x existing"
}
},
"metadata": {
"sqft": 1100,
"lotSize": 14500,
"daysOnMarket": 4
}
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 480,
"returned": 25,
"nextOffset": 25
},
"asOf": "2026-06-20T15:30:00.000Z"
}Interactive Playground
Test the API directly from your browser. Click the button below to fetch live data using a demo API key.
/api/v1/market-signals?apiKey=demoClick "Run Request" to see a live demo of the API response.
Using the demo API key restricts results to 2 items.
/api/v1/properties/:idFree TierRetrieves detailed intelligence for a single property, including aggregated comp data and proprietary scores.
Path Parameters
idThe unique identifier of the property
Response
{
"success": true,
"data": {
"id": "abc-123",
"address": "123 Main St",
"city": "Menlo Park",
"price": 2400000,
"intelligence": {
"teardownScore": 95.5,
"flippabilityScore": 0,
"marketHeatIndex": 82,
"biddingWarPredictor": 65
},
"comparables": {
"recentSalesCount": 5,
"avgPricePerSqft": 1250
}
}
}/api/v1/permitsFree TierSearches issued building permits across our Peninsula coverage. Returns the scope description alongside the project type, which matters because several cities file nearly every job under one generic type label and only the description says what the work actually is.
Query Parameters
city(Optional) Filter by city name (e.g., "Menlo Park"). Partial matches allowed.q(Optional) Keyword matched against address, project type, scope description, contractor, architect and permit number.minValuation(Optional) Only permits valued at or above this dollar amount. Permits filed without a valuation are excluded when this is set.
Response
{
"success": true,
"count": 1,
"data": [
{
"permitId": "B26-0499",
"city": "Menlo Park",
"address": "123 Main St",
"projectType": "Demolition",
"description": "Demolish existing SFR",
"valuation": 150000,
"sqft": 2100,
"psf": 71.4,
"contractor": "Acme Builders",
"architect": null,
"issuedDate": "2026-07-14",
"status": "Issued",
"permitUrl": "https://addressintel.co/permit/menlo-park/B26-0499"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 312,
"returned": 1,
"nextOffset": 1,
"truncated": false
},
"asOf": "2026-08-05T15:30:00.000Z"
}Every endpoint above is also exposed as a read-only Model Context Protocol server, so Claude, ChatGPT or your own agent can answer permit and parcel questions directly instead of you writing glue code. Ask "what demolition permits were issued in Menlo Park this year?" and the agent calls the API itself.
Tools
search_permitsIssued building permits by city, keyword, or minimum valuation.list_sb9_inventoryListings eligible for an SB 9 lot split or duplex, with block reasons for those that are not.list_adu_leadsParcels ranked by ADU feasibility, with estimated units and buildable square footage.list_redevelopment_leadsUnderbuilt parcels scored against their allowable building envelope.list_market_signalsListings ranked by teardown or flip potential.get_property_intelligenceFull scores and comparable sales for a single property id.
Setup
No install step: npx fetches the server on demand. It runs locally over stdio and calls this API with your key, so your plan's rate limits and row ceilings apply unchanged. Without a key it falls back to the demo tier, so you can try it before you have one.
claude mcp add addressintel \
-e ADDRESSINTEL_API_KEY=YOUR_KEY \
-- npx -y addressintel-mcpSource and tool reference: addressintel-mcp on npm. Need a key? Grab a free one and it will be emailed to you.
Usage & Limits
Limits are enforced per API key based on your plan. Exceeding your rate limit returns a 429.
Demo
- Up to 5 results per request
- 10 requests / minute
- Full history
- No webhooks
Free
Self-serve- Up to 25 results per request
- 30 requests / minute
- Last 30 days of permits and sales
- No webhooks
Pro
- Up to 500 results per request
- 120 requests / minute
- Full history
- Real-time webhooks
Pagination
Use the limit and offset query parameters to page through results. Every list response includes a pagination object with total and a nextOffset (null on the last page), plus an asOf timestamp indicating data freshness.
History Window
Free keys read a rolling 30 day window of dated records: permits by issue date, and sold properties by sale date. Active listings are never windowed, so the inventory feeds return in full on every plan. Pro reads the complete corpus.
When a window applies, the response carries a historyWindow object with the days and the oldest date included, so a quiet 30 days is distinguishable from an empty result. It is null when no window was applied. Free keys issued before 4 September 2026 keep full history and continue to see null.
Rate Limit Headers
Every response carries X-RateLimit-Limit and X-RateLimit-Remaining headers. When you exceed your plan's per-minute limit the API responds with 429.
Error Handling
Errors use standard HTTP status codes and a consistent JSON envelope: success: false, a human-readable error message, and a stable machine-readable code.
{
"success": false,
"error": "Unauthorized. Missing API Key.",
"code": "unauthorized"
}Real-time Webhooks
ProPush real estate intelligence directly into your CRM or internal systems. Subscribe to webhook events to receive real-time notifications when major construction or demolition permits are filed. Webhook registration requires a Pro API key.
Subscribing to Webhooks
You can register your webhook endpoint via the API or using the form below.
Register via UI
Register via API
curl -X POST https://addressintel.co/api/v1/webhooks/register \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://your-domain.com/webhook"}'Supported Events
permit.created- Fired when a new high-value permit is recordedproperty.score_updated- Fired when a property's teardown or flippability score changes
Example Payloads
{
"event": "permit.created",
"market": "sf-peninsula",
"data": {
"permitId": "B24-1052",
"type": "Demolition",
"address": "123 Main St, Menlo Park",
"estimatedValue": 150000,
"status": "Issued"
},
"timestamp": "2026-06-12T15:30:00Z"
}Verifying Signatures
Every delivery is signed. Compute an HMAC-SHA256 of the raw request body using the signingSecret returned at registration, and compare it (constant-time) against the X-AddressIntel-Signature header. Reject any request that doesn't match.
import crypto from "crypto";
// `secret` is the signingSecret returned when you registered the webhook.
function verify(rawBody, signatureHeader, secret) {
const expected = "sha256=" + crypto
.createHmac("sha256", secret)
.update(rawBody)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(signatureHeader),
Buffer.from(expected)
);
}
// In your handler:
const ok = verify(rawBody, req.headers["x-addressintel-signature"], secret);
if (!ok) return res.status(401).end();Plans & Pricing
Most builders start with Concierge: book a call and we do the deal-sourcing for you. Prefer to build on the raw data yourself? Grab a free API key or go Pro.
Free
- 25 results per request
- 30 requests / minute
- Last 30 days of permits and sales
- Community support
- Key delivered to your inbox
Concierge
Done-for-you deal sourcing · custom to your area
+ $5,000 finder's fee per closed deal
- Curated spec/rebuild plays in your area, weekly
- Developer ROI & teardown analysis done for you
- Off-market & new-permit alerts
- Direct line: work 1:1 with the founder
- Full Pro data access included
- You only pay the finder's fee when you close
Pro API
- 500 results per request
- 120 requests / minute
- Real-time webhooks
- Full permit and sales history
- Priority support
Enter your email for Free or Pro API. The free key is emailed to you. Concierge is set up over a quick call.
Build on Silicon Valley real estate intelligence
The AddressIntel API exposes the same proprietary data that powers our real estate investment screener and building permit tracker: teardown scores, projected developer ROI, comparable sales, and real-time permit events across the Silicon Valley Peninsula. Use it to enrich your CRM, train models, or trigger workflows the moment a high-value permit is filed.
New to how we score properties? The developer guides walk through teardown ROI, Floor Area Ratio, and the demolition permit process that underpin every value in these endpoints.
Explore the platform
See the data in action across the AddressIntel product before you integrate.
Investment Screener
The market-signals endpoint, visualized: filter properties by teardown score and developer ROI.
Building Permit Tracker
The live feed behind the permit.created webhook, demolition and renovation permits as they post.
How to Calculate Teardown ROI
How to underwrite a lot by hand. The API's proformaROI field runs exactly this arithmetic, on the same comps and the same assumptions the per-property page shows, so the two cannot disagree.
Peninsula Locations Directory
See the geographic coverage available through the city and market query parameters.