Look up sales tax for an address, ZIP, or coordinates
GET /v1/tax/{state}
Returns the applicable combined sales tax rate plus a per-jurisdiction breakdown for a U.S. location. Provide exactly one input:
address=— full street address (most precise).location=— a place or city name.zip=— 5-digit ZIP; returns the applicable rate with a confidence signal.lat=&lng=— coordinates.
Historical rates. Pass as_of=YYYY-MM-DD to get the rate in effect on that date; where historical data isn’t available, the current rate is returned.
Warnings. If a supplied city name doesn’t match the jurisdiction that actually applies at the address, a place_input_mismatch warning is included so you don’t charge the wrong rate.
Response shape. mode=simple (the default) returns a flat single-rate object plus a meta block; mode=full returns the verbose per-jurisdiction body. Any other mode is a 400. Rate-bearing fields are fixed 5-decimal strings; the X-TaxQL-Mode response header echoes the shape served.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Query Parameters
Section titled “Query Parameters ”Response shape. simple (default) — a flat single-rate object plus a diagnostic meta block. full — the verbose per-jurisdiction body (rows, components, ambiguity envelope). Every rate field renders as a 5-decimal string in both shapes. Any other value is a 400. The response X-TaxQL-Mode header echoes the shape served.
Response shape. simple (default) — a flat single-rate object plus a diagnostic meta block. full — the verbose per-jurisdiction body (rows, components, ambiguity envelope). Every rate field renders as a 5-decimal string in both shapes. Any other value is a 400. The response X-TaxQL-Mode header echoes the shape served.
Input-normalization mode. Omitted or off/false/0 (default) — permissive: malformed-but-recoverable input is normalized and the change is disclosed in meta.normalization; the ZIP is authoritative for the state. on/true/1 — strict: input that would be normalized is rejected (400) with a suggested correction. Any other value is a 400. Accepted and ignored for lat/lng mode.
Header Parameters
Section titled “Header Parameters ”Responses
Section titled “ Responses ”Successful lookup. Default (mode=simple): a flat single-rate object plus a meta block. mode=full: the verbose per-jurisdiction body. Rate fields are 5-decimal strings; the X-TaxQL-Mode header echoes the shape. meta fields: resolved_via, confidence, warnings, and two effective-date fields — effective_date (ISO YYYY-MM-DD, the served rate’s legal-effect date; populated ONLY where the source publishes a genuine per-row effective date, else null) and effective_date_basis (always present: publisher_effective_date | edition_only | no_published_date — describes the provenance of the date, not a legal characterization; for edition_only/no_published_date the currency/edition signal lives on /v1/freshness). meta.period is DEPRECATED: it carried a quarter-edition code for some states and an ISO date for others and is null for most; prefer effective_date + effective_date_basis, or /v1/freshness.source_period for the edition.
object
Invalid input — missing required parameter or malformed value.
Missing or invalid X-API-Key / Authorization header.
State not supported, or address could not be resolved.
Validation Error
object
object
object
Monthly lookup quota exceeded for this API key’s tier.
Upstream temporarily unavailable; retry shortly.