API reference
Generated from the live OpenAPI 3.1 document (version 2026-10-01). Base URL:
Download openapi.json Try in playground
Endpoints
GET /rates/lookup— Look up every tax for a paycheckGET /jurisdictions— List jurisdictions and their tax programsGET /jurisdictions/{code}— All taxes in force for one jurisdictionGET /versions/{id}— One published (or superseded) version, by idGET /changes— Change feed (Starter plan and up)GET /status— Service status and data freshnessGET /openapi.json— This specification
Look up every tax for a paycheck
Returns all federal taxes plus the work state's taxes (and the residence state's income tax withholding if different) in force on `pay_date`. Taxes without a published version for that date are listed in `meta.unavailable` — never silently omitted.
| Parameter | Type | Description |
|---|---|---|
work_staterequired | query · string | Two-letter state where the work is performed |
pay_date | query · string (date) | Defaults to today (UTC) |
residence_state | query · string | Employee's resident state, if different |
filing_status | query · string | Filters per-status values and brackets (single, married_joint, head_of_household, …) |
include | query · string | Comma list: federal, state |
as_of | query · string (date-time) | Answer exactly as the API would have at this moment (Growth plan and up) |
Responses: 200 Taxes in force · 400 Invalid parameter · 401 Missing or invalid API key · 402 Trial ended · 403 Account suspended, or the feature is not in your plan (PLAN_FEATURE) · 404 Not found · 429 Rate limit (RATE_LIMITED) or monthly quota (QUOTA_EXCEEDED) reached
List jurisdictions and their tax programs
Responses: 200 Jurisdictions · 400 Invalid parameter · 401 Missing or invalid API key · 402 Trial ended · 403 Account suspended, or the feature is not in your plan (PLAN_FEATURE) · 404 Not found · 429 Rate limit (RATE_LIMITED) or monthly quota (QUOTA_EXCEEDED) reached
All taxes in force for one jurisdiction
| Parameter | Type | Description |
|---|---|---|
coderequired | path · string | US for federal, or a state code |
date | query · string (date) |
Responses: 200 Jurisdiction taxes · 400 Invalid parameter · 401 Missing or invalid API key · 402 Trial ended · 403 Account suspended, or the feature is not in your plan (PLAN_FEATURE) · 404 Not found · 429 Rate limit (RATE_LIMITED) or monthly quota (QUOTA_EXCEEDED) reached
One published (or superseded) version, by id
| Parameter | Type | Description |
|---|---|---|
idrequired | path · string |
Responses: 200 Version · 400 Invalid parameter · 401 Missing or invalid API key · 402 Trial ended · 403 Account suspended, or the feature is not in your plan (PLAN_FEATURE) · 404 Not found · 429 Rate limit (RATE_LIMITED) or monthly quota (QUOTA_EXCEEDED) reached
Change feed (Starter plan and up)
Versions published or superseded since a timestamp. Poll it daily, or after each payroll run.
| Parameter | Type | Description |
|---|---|---|
since | query · string (date-time) | Defaults to 30 days ago |
Responses: 200 Changes · 400 Invalid parameter · 401 Missing or invalid API key · 402 Trial ended · 403 Account suspended, or the feature is not in your plan (PLAN_FEATURE) · 404 Not found · 429 Rate limit (RATE_LIMITED) or monthly quota (QUOTA_EXCEEDED) reached
Service status and data freshness
No authentication
Responses: 200 Status
This specification
No authentication
Responses: 200 OpenAPI document
Schemas
Meta
| Field | Type | Description |
|---|---|---|
request_id | string | |
processing_ms | integer | |
api_version | string |
Bracket
| Field | Type | Description |
|---|---|---|
table | string | |
filing_status | string | |
period | string | |
over | string | |
not_over | string | null | |
rate | string | |
base_tax | string |
Tax
| Field | Type | Description |
|---|---|---|
tax_code | string | |
tax_type | string | |
name | string | |
jurisdiction | object | |
applies_to | federal | work | residence | |
rate_structure | string | |
effective_from | string (date) | |
effective_to | string,null (date) | Exclusive end: the first date this version no longer applies. null while open-ended. |
tax_year | integer | |
parameters | object | |
brackets | array of Bracket | |
notes | string | null | |
version | object | |
sources | array of object |
LookupResponse
| Field | Type | Description |
|---|---|---|
data | object | |
meta |
Jurisdiction
| Field | Type | Description |
|---|---|---|
code | string | |
state | string | null | |
name | string | |
level | string | |
has_wage_income_tax | boolean | |
taxes | array of object |
Error
| Field | Type | Description |
|---|---|---|
error | object |