Skip to main content
Every billable call spends credits. One plan, one credit pool, no overage — there is no per-endpoint contract to negotiate and no per-record data licence for you to sign, except where county parcel data forces one (see Parcel data). Credits reset on the 1st of each month (UTC) and do not roll over.

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:
Every billable response also carries the credits it actually consumed, so an agent can meter itself mid-run rather than reconciling a bill later.

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 returns 429 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.
Absent fields are billed. A field that correctly resolves to absent at your coordinate still costs its credit — the work happened and the answer is a real one. Only failure-shaped fields are refunded. This matters most on wide presets: if you are screening at volume and only need part of a bundle, name the fields rather than taking the preset.
There is no one-time credit pack today; more credits means moving up a plan.