After Repair Value, ZIP-level market intelligence, and AI renovation
analytics — the same investor-grade methodology that powers icomps.io, served over a
clean REST API.
Every endpoint returns iComps-derived analysis or open-government data — the
high-value signal, computed with our methodology. Authenticate with a single API key.
POST
/v1/analyze
The flagship. One call, one credit — a complete property analysis: ARV with confidence and estimated range, the comparable sales used (similarity, weights, and adjustments), the full transparency breakdown, and a branded PDF report. Returns the sections in your implementation config.
iComps-derived · flagship · meteredPOST
/v1/arv
Lightweight After Repair Value — value, confidence, comp tier, and comp count from the 5-tier comparable-sales engine, when you need just the number and not the full analysis bundle.
iComps-derivedGET
/v1/zips/{zip}
ZIP market intelligence — income, population, owner/renter mix, fair-market rents, crime, and MSA unemployment.
Census · HUD · FBI · FREDGET
/v1/zips/{zip}/renovation-profile
AI renovation analytics — the distribution of finish levels and average renovation score across analyzed homes in a ZIP.
iComps AIGET
/v1/coverage
Which ZIP codes have active iComps data coverage, with property counts.
iComps-derivedGET
/v1/account · /v1/usage
Confirm your key and plan, and track your request usage over time for your dashboards.
Account & metering
Quickstart
First call in three steps.
Get a keySign in, add a payment method, and generate an API key from your iComps developer console. Your first 30 analyses each month are free. You see the raw key once.
Send it in x-api-keyEvery /v1 request carries your key in the header. No OAuth dance.
Read the resultPOST /v1/analyze returns the analysis object directly; errors are application/problem+json (RFC 7807) with a stable type and a request id. The data endpoints use the { success, data, error, meta } envelope.
# A full property analysis — one credit
curl -X POST https://api.icomps.io/v1/analyze \
-H "x-api-key: $ICOMPS_KEY" \
-H "content-type: application/json" \
-d '{"address":"123 Main St SW","zip":"30311","lat":33.72,"lon":-84.44,"beds":3,"baths":2,"sqft":1450}'
from icomps_data import IcompsData
client = IcompsData(api_key="YOUR_KEY")
result = client.analyze(address="123 Main St SW", zip="30311",
lat=33.72, lon=-84.44, beds=3, baths=2, sqft=1450)
result["arv"]["value"], result["pdf"]["url"] # insufficient_comps -> not charged
import { IcompsData } from"@icomps/data";
const client = new IcompsData({ apiKey: "YOUR_KEY" });
const result = await client.analyze({ address: "123 Main St SW", zip: "30311",
lat: 33.72, lon: -84.44, beds: 3, baths: 2, sqft: 1450 });
MCP server
Or skip the integration entirely.
iComps ships a first-party Model Context
Protocol server, so Claude, Cursor, and your own agents can call the same analysis
engine as a native tool. One line of configuration instead of an SDK integration —
same x-api-key, same free allowance, same metering.
Point your client at https://api.icomps.io/mcpStreamable HTTP, stateless, JSON responses. Nothing to install and nothing to run locally.
Send your key in the X-API-Key headerThe same key as REST. Analyses run through the same meter, so usage and invoices stay in one place.
Ask in plain language“Is 6233 E 11th St a deal at $135k with a $25k rehab?” — the agent calls evaluate_deal and comes back with an ARV, a maximum allowable offer, the comps behind it, and a PDF report.
# Every MCP request must accept both content types.
curl -X POST https://api.icomps.io/mcp \
-H "x-api-key: $ICOMPS_KEY" \
-H "content-type: application/json" \
-H "accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
TOOL
evaluate_deal
The one to reach for. Analyses the property and scores it against an asking price: maximum allowable offer on the 70% rule, spread, margin after selling costs, and rent yield — with a strong / workable / thin / pass verdict and the comps that justify it.
metered · one analysisTOOL
analyze_property
ARV with confidence, the comparable sales behind it, what was excluded and why, a rent estimate, and a branded PDF report.
metered · one analysisTOOL
reanalyze_with_changes
“What if I add a bathroom?” — re-runs an earlier analysis with new specs and shows the change in ARV.
metered · one analysisTOOL
check_coverage
Does iComps have sold-property data in this ZIP? Free, and worth asking before spending an analysis.
freeTOOL
get_zip_stats · get_renovation_profile
Market context and renovation mix for a ZIP — what a flip there would be competing against.
Re-read past analyses in full, and check your plan, remaining free allowance and request volume.
free
Auth is identical to REST. `/mcp` requires your key on every request —
including the handshake and the tool listing — enforced before the protocol layer, with the
same uniform 401 and instant revocation from your developer console.
Protocol traffic gets its own per-minute ceiling, so an agent's chatter never eats the
rate limit your REST integration depends on. Treat the key in your client config as the
secret it is: it is stored in plaintext by most MCP clients, so keep it out of shared
repositories and revoke it if a config file ever leaks.
Billing is identical to REST. Only the three analysis tools consume
an analysis; everything else is free. Each result tells the agent what the call cost and
how much free allowance is left, so it can warn you before you spend. Repeating the same
property with the same details within the hour replays the first result rather than
charging again. The server also ships prompts — analyze_listing,
offer_memo and neighborhood_scout — that walk an agent through
a full workflow, including drafting an offer memo from a finished analysis.
What access gives you
One key. Every product, by plan.
Your API key unlocks every product below. Higher tiers raise your rate limits;
analysis usage is metered — you pay per successful analysis, billed at graduated rates.
You can…
Endpoint
Starter
Pro
Enterprise
Run a full property analysis (ARV + comps + breakdown + PDF)
POST /v1/analyze
✓
✓
✓
Re-fetch & list your prior analyses
GET /v1/analyses
✓
✓
✓
Estimate After Repair Value for any address
POST /v1/arv
✓
✓
✓
Pull ZIP market intelligence (income, rents, crime, jobs)
GET /v1/zips/{zip}
✓
✓
✓
Read AI renovation profiles by ZIP
GET /v1/zips/{zip}/renovation-profile
✓
✓
✓
List active data coverage
GET /v1/coverage
✓
✓
✓
Track your own usage & plan
GET /v1/usage · /v1/account
✓
✓
✓
Call iComps from an AI agent (Claude, Cursor, your own)
POST /mcp
✓
✓
✓
Rate limit (requests / min)
—
300
1,200
6,000
Analyze / ARV requests / min
—
30
120
600
Property analyses
—
Metered
Metered
Volume terms
Support
—
Community
Email
Dedicated + SLA
Pricing
Pay per analysis. Start free.
One credit = one successful /v1/analyze call. Graduated rates apply
automatically as your monthly volume grows — no plans to pick, no overage cliffs.
You are only charged for successful analyses — if we cannot produce
an ARV for a property (insufficient_comps), that analysis is free,
automatically, and idempotent retries are never double-charged. Graduated rates bill each
analysis at its bracket's rate within the month, and the free 30 reset on the 1st. Live
usage, plan state, and this month's count are on your
developer console.