Skip to content

Python SDK — Changelog

Backwards-compatibility policy: starting at v0.0.1, releases are additive. New fields are added with extra="allow", new methods are appended, deprecations are flagged at least one minor version before removal.

First release. Sync (TaxQL) + async (AsyncTaxQL) clients, typed response models, error hierarchy, retries with exponential backoff (honoring Retry-After on 429), forward-compatible models (extra="allow").

Public API:

  • TaxQL(api_key, *, base_url, timeout, max_retries, http_client)
  • client.lookup(state, *, address, city, zip, location, lat, lng, as_of, period) -> TaxResponse
  • client.health() -> HealthResponse
  • AsyncTaxQL mirror of the above
  • Response models: TaxResponse, TaxRow, Components, ResolvedPlace, PlaceComponent, BillingInfo, HealthResponse
  • Error classes: TaxQLError, AuthError, RateLimitError, NotFoundError, ValidationError, ServiceError, AmbiguousLookupError

Convenience properties on TaxResponse:

  • .combined_rate — single-row rate; raises AmbiguousLookupError for multi-row responses
  • .primary_row — single-row access with the same semantics
  • .resolved_place — single-row resolved-place metadata or None

Known gaps (planned for v0.1.0):

  • CLI tool (taxql lookup tx --address ...)
  • Custom retry policies (jitter, per-status-code backoff)
  • Streaming / batch lookup methods (not exposed by the API yet)
  • Telemetry hooks (deferred until customer signal)