Plans
Every plan hard-stops at its included credits — the API returns
402 credits_exhausted rather than billing you past the allowance. Nothing
you do can produce a surprise invoice. Enterprise adds SLAs, dedicated market
coverage, and better parcel economics.
These numbers are served live and unauthenticated from
GET /v1/meta/plans. If this table
and that endpoint ever disagree, the endpoint is right.What each call costs
Batch calls (
/v1/fetch/batch and
/v1/runs) bill fields × locations at the same
per-field rate. Batching saves round trips and rate limit, not credits.
Quote before you run
The mistake to avoid is discovering the price of a 5,000-site screen after you’ve run it.POST /v1/fetch/quote prices a
request without executing it and tells you whether your remaining allowance
covers it:
Parcel data is priced differently
A short list of fields —parcel_owner, parcel_apn, parcel_zoning,
parcel_boundary_geojson, developable_acres_proxy, and the wetland and
easement acreage derived from the boundary — comes from county parcel data
licensed per record.
A request touching any of them bills a flat 300 credits per location
on self-serve plans (150 on Enterprise tiers), charged once per location,
not once per field, on top of the normal per-field cost of everything else
in the same call. It is one record, so it is one charge.
The practical consequence for pipelines: run your free and cheap gates
first, and only resolve parcels on the sites that survive. The full field
list is in the parcel_field_group array of
GET /v1/meta/plans.
Hitting the ceiling
Rate limits are per plan and per minute. Exceeding one returns429 rate_limited with a Retry-After header.
Every finite plan blocks at its allowance. There is no overage on any
tier, so a runaway loop costs you availability, never money:
overage_rate_usd_per_1k is null on every plan in
GET /v1/meta/plans because there is
no overage to rate. Branch on 402 credits_exhausted, not on that field.
You can also set your own monthly spend limit below the plan allowance.
When your limit is what stopped a request, the 402 says so in
self_imposed_limit — upgrading would not help, so the body points you at
account settings instead. See Errors
for the full 402 contract.
There is no one-time credit pack today; more credits means moving up a plan.