US payroll tax rates.
One API call.

Federal, state, and local tax rates for 4,246 jurisdictions across all 50 states + DC. Pass a state and pay date, get back every rate you need.

Get a free API key Read the docs
4,246
Jurisdictions covered
<50ms
p95 response time
51
States + DC
Request
Terminal
# Look up all taxes for a CA employee
curl "https://payrolltaxapi.com/v1/rates/lookup\
  ?workState=CA\
  &payDate=2026-01-01\
  &filingStatus=single\
  &grossWages=5000\
  &payPeriod=biweekly" \
  -H "Authorization: Bearer ptx_free_..."
Response (abridged)
JSON
{
  "pay_date": "2026-01-01",
  "work_state": "CA",
  "taxes": [
    {
      "tax_type_code": "FED_FICA_SS_EE",
      "name": "Social Security",
      "rate": 0.062,
      "wage_base": 176100
    },
    {
      "tax_type_code": "CA_INCOME_EE",
      "name": "CA State Income Tax",
      "rate_structure": "graduated",
      "brackets": [...]
    },
    {
      "tax_type_code": "CA_SDI_EE",
      "rate": 0.009
    }
  ],
  "meta": { "processing_ms": 11 }
}

What you get

4,246 jurisdictions

Federal, all 50 states + DC, plus locals. 3,278 cities, 200+ counties, 713 school districts (PA EIT + OH SDIT), and Indiana's 92 counties.

Sub-100ms responses

Indexed PostgreSQL + Redis caching. p95 under 50ms on warm cache. Fast enough for real-time payroll runs, even in batch.

One endpoint, JSON out

GET /v1/rates/lookup with Bearer token auth. No SDK, no SOAP, no XML. Returns every applicable tax in one JSON response.

Effective-date versioned

Every rate tracked by effective date. Pass any pay_date and get the rates that were in effect. Run payroll for last quarter without guessing.

Rates updated as agencies publish

We monitor IRS publications, state revenue departments, and local tax authorities. You stop maintaining spreadsheets.

Works with anything

Plain JSON over HTTPS. Use it from Node, Python, Go, Ruby, C#, or curl. TypeScript type definitions included if you want them.

What developers are saying

We were maintaining a 4,000-line tax table in a Google Sheet and updating it by hand every January. Switched to PayrollTax API and deleted the whole thing. The local coverage for Ohio municipalities alone saved us weeks.

Sarah K.
Engineering Lead, Payroll SaaS

I integrated it in about two hours. One GET request, JSON back, done. We were evaluating Symmetry but their sales cycle was 6 weeks and we still didn't have pricing. This had a free key in 30 seconds.

Marcus T.
CTO, HR Tech Startup

The effective-date versioning is the real differentiator. We run retroactive payroll corrections and need last quarter's rates, not just today's. Every other API I found only returns current rates.

James L.
Senior Developer, Accounting Platform

Used in production by payroll software companies, HR platforms, and accounting tools.

Pricing

Free tier included. No credit card to start.

Free
$0
1,000 requests / month
  • All 50 states + federal
  • Rate lookup endpoint
  • 20 req/min limit
  • Community support
Get free key
Growth
$299/mo
2,000,000 requests / month
  • Everything in Starter
  • Rate change webhooks
  • Mid-period change endpoint
  • 200 req/min limit
  • Priority support
Start Growth
Enterprise
Custom
Unlimited requests
  • Everything in Growth
  • Custom rate limits
  • SLA guarantees
  • Dedicated support
  • White-label / on-prem
Contact us

Stop maintaining tax tables by hand

Free API key in 30 seconds. 1,000 requests/month, no credit card.

Get a free API key