- MCP
- Streamable HTTP, OAuth 2.1 + DCR
- Free tier
- 100 calls + 5,000 tiles / month
- Credits
- $0.01 each, billed per field with data
Quickstart
1. Get a key
curl -X POST https://www.parceled.ai/api/v1/accounts \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com"}'
# -> { "apiKey": "prc_live_...", "tier": "free", ... } (shown once: store it)Email is optional; `{}` creates an anonymous account whose key is its only credential. MCP clients skip this step: they run OAuth automatically against `https://www.parceled.ai/api/mcp`. Per-client setup is on the install page.
2. Check coverage (free, no key needed)
curl 'https://www.parceled.ai/api/v1/check-availability?lat=39.7392&lng=-104.9903'3. Fetch a property
curl 'https://www.parceled.ai/api/v1/parcels?lat=39.7392&lng=-104.9903&include=parcel,taxAssessor,zoning' \
-H 'Authorization: Bearer prc_live_...'Authentication
- Bearer key: `Authorization: Bearer prc_live_...` on MCP, REST and GraphQL.
- OAuth 2.1 + PKCE + Dynamic Client Registration (RFC 7591): a request without a key returns 401 with `WWW-Authenticate` pointing at `/.well-known/oauth-protected-resource` (RFC 9728). Compliant MCP clients (Claude, ChatGPT, Cursor, Claude Code, Zed, Cline) complete sign-in with an emailed magic link.
- Account creation is rate-limited to 10 per IP per hour.
MCP tools
| Tool | What it does | Cost |
|---|---|---|
| `check_availability` | Which datasets exist at a lat/lng or parcel | Free |
| `search_parcels` | One property by lat/lng or parcelId; choose fields with `include` | Per field with data |
| `search_properties` | Bulk filtered search by location, assessor, permits, zoning, screens, hail, historic | Per row, per field |
| `count_properties` | Count matches for the same filters (capped at 10,000) | 1 credit |
| `render_map` | Inline map in the chat; highlights a search's exact result set | 1 credit with filters |
| `get_tile_endpoints` | Vector tile URL templates for your own map | Free (tiles metered) |
| `get_layer_sources` | Layers and their filterable fields | Free |
| `get_market_research_hints` | For up to 25 search results: building names, owner entity, last sale, recent permits and ready-made web search queries to check market status | Free |
| `get_pricing`, `get_balance`, `get_usage_history` | Pricing, balance, recent calls | Free |
| `purchase_credits`, `enable_payg`, `update_budget_cap` | Stripe checkout links for credits and pay-as-you-go, and the monthly cap. Not in ChatGPT or Codex: buy on your account page | Free |
Fields and prices
| include key | Contents | Credits |
|---|---|---|
| `parcel` | Address, APN, county, lat/lng, owner + mailing address, land size, last sale | 1 |
| `taxAssessor` | Values, year built, building area, beds/baths, stories, use | 2 |
| `roofPermits` | Roofing permits with date, status, type, source link | 2 |
| `zoning` | Zone code, normalized category, jurisdiction, overlap | 1 |
| `parcelScreens` | Vacant, developable, ADU, split potential, coverage | 1 |
| `buildings` | Building footprints with heights | 1 |
| `buildingCode` | Adopted building code and roofing requirements | 2 |
| `hailAreas` / `currentHailAreas` | Hail history / last 14 days (MESH) | 1 each |
| `historic` | National Register and local landmark designations | 1 |
`search_properties` rows bill per row with data: `parcel` 1, `taxAssessor` 2, `zoning` 1, `permits` (all types) 2, `screens` 1, `historic` 1. Up to 500 rows per page with keyset pagination (`after` = last row's `hailProId`).
Bulk property search
Every search needs a location: `state`, `county` (3-digit FIPS with `state`), `zip5`, `bounds` or `nearPoint`. Assessor, permit, zoning and screen filters need county, ZIP or map scope (not statewide). Filters combine with AND.
{
"name": "search_properties",
"arguments": {
"state": "TX", "county": "113",
"taxAssessor": { "yearBuiltMax": 2000, "likelyRenterOccupied": false },
"hail": { "dateAfter": "2026-03-01", "minSizeInches": 1.5 },
"permits": { "permitType": "roofing", "issuedAfter": "2026-03-01", "absent": true },
"include": ["parcel", "taxAssessor"],
"limit": 200
}
}REST endpoints
| Method and path | Auth | Purpose |
|---|---|---|
| `GET /api/v1/ping` | None | Liveness, version and endpoint map |
| `GET /api/v1/pricing` | None | Current credit costs |
| `GET /api/v1/check-availability?lat=&lng=` | None (60/min/IP) | Dataset booleans for a point |
| `POST /api/v1/accounts` | None (10/hr/IP) | Create an account and key |
| `GET /api/v1/parcels?lat=&lng=&include=` | Bearer | Property record |
| `GET /api/v1/balance` | Bearer | Credits and tier |
OpenAPI spec: /.well-known/openapi.yaml.
GraphQL
POST queries to `https://www.parceled.ai/api` with the same Bearer key. The schema is introspectable and mirrors the MCP tools (`getParcel`, `searchProperties`, `countProperties`, `checkAvailability`, `getTileEndpoints`...). Opening the endpoint in a browser shows an explorer.
Vector tiles
`get_tile_endpoints` returns `{z}/{x}/{y}` URL templates (Mapbox Vector Tiles, pbf) for parcels, hail and other layers, plus the `source-layer` name. Keep your key server-side. 5,000 tile requests a month are free, then 1 credit per 1,000. Walkthrough: add parcel boundaries to Mapbox or MapLibre.
Pricing and billing
| Tier | How it works |
|---|---|
| Free | 100 API calls and 5,000 tile requests per month, every field available, no card |
| Credits | Prepaid packs: 1,000 for $10, 5,000 for $50, 25,000 for $250. Credits do not expire |
| Pay as you go | Same per-credit prices billed monthly via Stripe, with an optional monthly cap |
Every billable call runs a pre-flight check; a call that would exceed your balance or cap returns a billing error (HTTP 402 on REST) instead of charging.
Buy credits or set up pay-as-you-go on your account page, or with `purchase_credits` / `enable_payg`, which return a Stripe checkout link. Plans: pricing.
Full reference
- llms.txt: short machine-readable overview.
- llms-full.txt: every tool, response shape and error mode.
- MCP manifest and OpenAPI spec.
- Coverage by state and county.
Frequently asked questions
Is there a free property data API?
Parceled's free tier includes 100 API calls and 5,000 map tile requests a month with every field available and no credit card. Coverage checks are always free.
Which AI assistants can use Parceled?
Any client that supports remote MCP servers: Claude (web, desktop, Claude Code), ChatGPT developer mode, Cursor, Zed, Cline and others. Agents without MCP can call the REST API or the OpenAPI spec.
Do I pay for empty results?
No. Billing is per field that returns data; a property with no permits costs nothing for the permits field.