{"openapi":"3.1.0","info":{"title":"CDXZipGeo","summary":"ZIP/postal geo, demographics, geocoding, routing & USPS verification — credit-metered.","description":"**CDXZipGeo** — ZIP/postal geocoding, distance & radius, demographics, geocoding, routing, and USPS\naddress verification as a stateless HTTPS/JSON API. Powers the CDXZipStream add-ins (Excel, Google\nSheets, LibreOffice) and any third-party caller.\n\n### Base URL\n`https://api.cdxzipstream.com`\n\n### Authentication\nSend your key in the **`X-API-Key`** header (or `?key=` query param) on every `/v1` call. Get a key\nfrom your CDXZipStream account. Click **Authorize** above to paste your key, then use **Try it out**\non any endpoint. (`/admin/*` provisioning endpoints are server-to-server and use the separate\n`X-Admin-Token`.)\n\n### Credits & the account model\nBilling is **credit-based and pooled per account**. An account holds one monthly credit grant + an\noptional prepaid top-up balance; an API key is just a credential. **All keys on an account draw from\nthe same pool** — issuing more keys never adds capacity. Per-call cost varies by operation (see\n`GET /v1/pricing`): local lookups (ZIP, distance, demographics) = 1 credit/unit; ops that make a paid\nprovider call per unit are dearer — geocoding / reverse geocoding = 4, static maps = 3, routing = 3 per\npair; route optimization is stops x a method weight. A `route` endpoint given a STREET ADDRESS rather\nthan a ZIP / postal code / `lat,lng` also pays one geocode rate for that endpoint, since locating it\ncosts a provider call. Census tracts and USPS verification stay at 2:\nthey look provider-backed but are free for us to serve.\n\n### Error codes\n| Code | Meaning |\n|------|---------|\n| `401` | Missing / invalid / revoked key (or suspended account) |\n| `402` | Out of credits — the account's monthly grant **and** top-up balance are exhausted (`X-Credits-Remaining: 0`) |\n| `413` | Request exceeds a per-call cap for the tier (e.g. batch size, optimize stops, `radius` reach) |\n| `429` | Rate limit (pooled per account) — each request costs one token, and a completed request also debits the provider calls it made, so a provider-heavy call can `429` the next one; pause briefly rather than shrinking the request |\n\nRow limits are the exception to `413`: `find` / `radius` / `closest` **clamp** to the plan's row\nallowance (`caps.list_max_rows`, published per plan on `GET /v1/pricing` → `caps`) rather than\nerroring. Omit `limit` to get the full allowance; the response reports the `limit` actually applied\nand whether the result was `truncated`.\n\nThose three ops are billed **per row returned** — `ceil(rows / rows_per_credit)`, minimum 1 credit,\nwith `rows_per_credit` on `GET /v1/pricing` → `pricing`. So `limit` is also the cost control: you pay\nfor the rows you receive. If your balance can't cover the full row allowance you get fewer rows rather\nthan a `402`, again reported via `limit` + `truncated`.\n\n`closest-in-list` is billed on its **input**: `ceil(candidates / rows_per_credit)`, minimum 1. Its\noutput is fixed at three ranks, but the search you are buying is exactly as big as the list you send,\nso the price tracks that (`input_priced_ops` on `GET /v1/pricing`).\n","contact":{"name":"CDXZipStream support","url":"https://cdxzipstream.com/account/support"},"version":"0.1.0"},"servers":[{"url":"https://api.cdxzipstream.com","description":"production"},{"url":"http://127.0.0.1:8010","description":"local dev"}],"paths":{"/v1/health":{"get":{"tags":["meta"],"summary":"Health","operationId":"health_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/pricing":{"get":{"tags":["meta"],"summary":"Pricing Card","description":"Public rate card: credit cost per operation, the purchasable tier grants, and which feature\nbuckets each tier/add-on unlocks. Open (no key) so the portal pricing page + usage calculator\nand the in-app dashboard read canonical, override-aware rates instead of hardcoding them.\nThe pricing/tiers/gating subset of /admin/config — without secrets, caps, or provider.","operationId":"pricing_card_v1_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/account":{"get":{"tags":["meta"],"summary":"Account","description":"Entitlement + usage for the supplied key. Powers the dashboard/panel.\nAuthenticated but NOT quota-gated, so an over-quota user can still see their usage.","operationId":"account_v1_account_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"ApiKey":[]}]}},"/v1/zip/{zip_code}":{"get":{"tags":["geo"],"summary":"Get Zip","operationId":"get_zip_v1_zip__zip_code__get","security":[{"ApiKey":[]}],"parameters":[{"name":"zip_code","in":"path","required":true,"schema":{"type":"string","title":"Zip Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/zip/batch":{"post":{"tags":["geo"],"summary":"Post Zip Batch","operationId":"post_zip_batch_v1_zip_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZipBatchIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/v1/demographics/{zip_code}":{"get":{"tags":["geo"],"summary":"Get Demographics","operationId":"get_demographics_v1_demographics__zip_code__get","security":[{"ApiKey":[]}],"parameters":[{"name":"zip_code","in":"path","required":true,"schema":{"type":"string","title":"Zip Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/distance":{"get":{"tags":["geo"],"summary":"Get Distance","operationId":"get_distance_v1_distance_get","security":[{"ApiKey":[]}],"parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string","title":"From"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","title":"To"}},{"name":"unit","in":"query","required":false,"schema":{"type":"string","default":"miles","title":"Unit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["geo"],"summary":"Post Distance","operationId":"post_distance_v1_distance_post","security":[{"ApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistanceIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/radius":{"post":{"tags":["geo"],"summary":"Post Radius","operationId":"post_radius_v1_radius_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RadiusIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/v1/closest":{"post":{"tags":["geo"],"summary":"Post Closest","operationId":"post_closest_v1_closest_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosestIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/v1/closest-in-list":{"post":{"tags":["geo"],"summary":"Post Closest In List","description":"Closest ZIP(s) to a target among a caller-supplied candidate list. Billed on the SIZE OF THAT\nLIST — `ceil(candidates / rows_per_credit)`, minimum 1 — because the search is the deliverable and\nit is exactly as big as the list you hand over. Returns all three ranks; pick a `field` or read\nthem from the record.","operationId":"post_closest_in_list_v1_closest_in_list_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosestInListIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/v1/find":{"post":{"tags":["geo"],"summary":"Post Find","operationId":"post_find_v1_find_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/v1/geocode":{"post":{"tags":["geo"],"summary":"Post Geocode","operationId":"post_geocode_v1_geocode_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeocodeIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/v1/verify":{"post":{"tags":["geo"],"summary":"Post Verify","description":"USPS address verification (ZIP+4). A provider-backed geocoding op, metered 2 credits / address —\navailable on every tier (any account with grant or top-up credits can call it).","operationId":"post_verify_v1_verify_post","security":[{"ApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["geo"],"summary":"Get Verify","description":"GET variant of /v1/verify for migrating CDXGeoData callers — single address via query params,\nusable with the ?key= shim. Same gating + metering as the POST.","operationId":"get_verify_v1_verify_get","security":[{"ApiKey":[]}],"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","title":"Address"}},{"name":"city","in":"query","required":false,"schema":{"type":"string","default":"","title":"City"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}},{"name":"zip","in":"query","required":false,"schema":{"type":"string","default":"","title":"Zip"}},{"name":"secondary","in":"query","required":false,"schema":{"type":"string","default":"","title":"Secondary"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/verify/batch":{"post":{"tags":["geo"],"summary":"Post Verify Batch","description":"Bulk USPS verification — one Azure batch call for the whole list (deliberately kept off the\n/v1/batch dispatcher, which would make a separate provider call per address). 2 credits / address.","operationId":"post_verify_batch_v1_verify_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyBatchIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/v1/staticmap-url":{"post":{"tags":["geo"],"summary":"Post Staticmap Url","description":"Resolve the point(s) and mint a signed /v1/staticmap URL for the cell's =IMAGE().\nMetered (1 unit); the GET re-fetches are free + cached. Gated like other geocoding ops.\ntype=\"marker\" pins `center`; type=\"route\" draws `center`->`to` (HERE geometry, or a straight\nline if no provider); type=\"markers\" pins a whole list (`points`), auto-fit.","operationId":"post_staticmap_url_v1_staticmap_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaticMapUrlIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/v1/revgeocode":{"post":{"tags":["geo"],"summary":"Post Revgeocode","operationId":"post_revgeocode_v1_revgeocode_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevgeoIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/v1/tract":{"post":{"tags":["geo"],"summary":"Post Tract","description":"Census tract FIPS for a list of addresses / ZIPs / 'lat,lng' points. Gated like other\ngeocoding ops (an address input hits the provider geocoder). Metered 1 unit per location.","operationId":"post_tract_v1_tract_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TractIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/v1/route":{"post":{"tags":["geo"],"summary":"Post Route","operationId":"post_route_v1_route_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/v1/optimize":{"post":{"tags":["geo"],"summary":"Post Optimize","operationId":"post_optimize_v1_optimize_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptimizeIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/v1/batch":{"post":{"tags":["geo"],"summary":"Post Batch","operationId":"post_batch_v1_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}}},"components":{"schemas":{"BatchIn":{"properties":{"operations":{"items":{"$ref":"#/components/schemas/BatchOp"},"type":"array","title":"Operations"}},"type":"object","required":["operations"],"title":"BatchIn","example":{"operations":[{"args":["10001","94105"],"op":"distance"},{"args":["80401"],"op":"zip"},{"args":["90210"],"op":"geocode"}]}},"BatchOp":{"properties":{"op":{"type":"string","title":"Op"},"args":{"items":{},"type":"array","title":"Args","default":[]},"fn":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Fn"}},"type":"object","required":["op"],"title":"BatchOp"},"ClosestIn":{"properties":{"center":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Center"},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lat"},"lng":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lng"},"n":{"type":"integer","minimum":1.0,"title":"N","default":5},"unit":{"type":"string","title":"Unit","default":"miles"}},"type":"object","title":"ClosestIn","example":{"center":"80401","n":5,"unit":"miles"}},"ClosestInListIn":{"properties":{"target":{"type":"string","title":"Target"},"candidates":{"items":{"type":"string"},"type":"array","maxItems":1000,"title":"Candidates","default":[]},"field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field"}},"type":"object","required":["target"],"title":"ClosestInListIn","example":{"candidates":["10001","94105","90210"],"target":"80401"}},"DistanceIn":{"properties":{"pairs":{"items":{"items":{"type":"string"},"type":"array"},"type":"array","title":"Pairs","description":"[[zip1, zip2], ...]"},"unit":{"type":"string","title":"Unit","default":"miles"}},"type":"object","required":["pairs"],"title":"DistanceIn","example":{"pairs":[["10001","94105"],["90210","80401"]],"unit":"miles"}},"FindIn":{"properties":{"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"limit":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Limit","description":"Max rows to return. Omit for your plan's full allowance; a value above it is clamped down to it."},"fn":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Fn"}},"type":"object","title":"FindIn","example":{"city":"Golden","state":"CO"}},"GeocodeIn":{"properties":{"addresses":{"items":{"type":"string"},"type":"array","title":"Addresses"},"field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field"}},"type":"object","required":["addresses"],"title":"GeocodeIn","example":{"addresses":["1600 Pennsylvania Ave NW, Washington, DC 20500","90210"]}},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"OptimizeIn":{"properties":{"stops":{"items":{"type":"string"},"type":"array","title":"Stops"},"method":{"type":"string","title":"Method","default":"straight"},"round_trip":{"type":"boolean","title":"Round Trip","default":false},"fixed_start":{"type":"boolean","title":"Fixed Start","default":true},"fixed_end":{"type":"boolean","title":"Fixed End","default":false},"optimize_by":{"type":"string","title":"Optimize By","default":"distance"},"travel":{"type":"string","title":"Travel","default":"driving"},"gpx":{"type":"boolean","title":"Gpx","default":false}},"type":"object","required":["stops"],"title":"OptimizeIn","example":{"method":"straight","round_trip":false,"stops":["80401","80228","80403","10001"]}},"RadiusIn":{"properties":{"center":{"type":"string","title":"Center"},"radius":{"type":"number","maximum":25000.0,"exclusiveMinimum":0.0,"title":"Radius","description":"Search radius in `unit`. Must be > 0."},"unit":{"type":"string","title":"Unit","default":"miles"},"limit":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Limit","description":"Max rows to return. Omit for your plan's full allowance; a value above it is clamped down to it."}},"type":"object","required":["center","radius"],"title":"RadiusIn","example":{"center":"80401","radius":25,"unit":"miles"}},"RevgeoIn":{"properties":{"points":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Points","description":"[[lat, lng], ...]"},"field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field"}},"type":"object","required":["points"],"title":"RevgeoIn","example":{"points":[[40.7484,-73.9967],[37.7864,-122.3892]]}},"RouteIn":{"properties":{"pairs":{"items":{"$ref":"#/components/schemas/RoutePair"},"type":"array","title":"Pairs"},"calculation":{"type":"string","title":"Calculation","default":"distance_mi"},"travel":{"type":"string","title":"Travel","default":"driving"}},"type":"object","required":["pairs"],"title":"RouteIn","example":{"calculation":"distance_mi","pairs":[{"from":"80401","to":"80228"}],"travel":"driving"}},"RoutePair":{"properties":{"from":{"type":"string","title":"From"},"to":{"type":"string","title":"To"}},"type":"object","required":["from","to"],"title":"RoutePair"},"StaticMapUrlIn":{"properties":{"center":{"type":"string","title":"Center","default":""},"type":{"type":"string","title":"Type","default":"marker"},"to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"},"points":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Points"},"travel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Travel"},"zoom":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Zoom"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size"}},"type":"object","title":"StaticMapUrlIn","example":{"points":["10001","94105","90210"],"size":"600x400","type":"markers"}},"TractIn":{"properties":{"locations":{"items":{"type":"string"},"type":"array","title":"Locations","description":"addresses / ZIPs / 'lat,lng' to look up"},"field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field"}},"type":"object","required":["locations"],"title":"TractIn","example":{"locations":["90210","40.7484,-73.9967"]}},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerifyBatchIn":{"properties":{"addresses":{"items":{"$ref":"#/components/schemas/VerifyIn"},"type":"array","title":"Addresses"}},"type":"object","required":["addresses"],"title":"VerifyBatchIn","example":{"addresses":[{"address":"1600 Pennsylvania Ave NW","city":"Washington","state":"DC","zip":"20500"},{"address":"350 Fifth Ave","city":"New York","state":"NY","zip":"10118"}]}},"VerifyIn":{"properties":{"address":{"type":"string","title":"Address"},"city":{"type":"string","title":"City","default":""},"state":{"type":"string","title":"State","default":""},"zip":{"type":"string","title":"Zip","default":""},"secondary":{"type":"string","title":"Secondary","default":""}},"type":"object","required":["address"],"title":"VerifyIn","example":{"address":"1600 Pennsylvania Ave NW","city":"Washington","state":"DC","zip":"20500"}},"ZipBatchIn":{"properties":{"zips":{"items":{"type":"string"},"type":"array","title":"Zips"}},"type":"object","required":["zips"],"title":"ZipBatchIn","example":{"zips":["10001","94105","M5H 2N2"]}}},"securitySchemes":{"ApiKey":{"type":"apiKey","description":"Your CDXZipStream API key (cdx_live_…).","in":"header","name":"X-API-Key"}}},"tags":[{"name":"meta","description":"Open endpoints — health, pricing rate card, type-ahead, account status, static-map URLs. No credits charged (account is authenticated but not gated)."},{"name":"geo","description":"Metered data endpoints: ZIP/postal lookup, distance, radius, closest, find, demographics/census, geocoding, routing, optimization, USPS verification, batch. Require `X-API-Key`; each call debits the account's pooled credits."}]}