> This page is for version v6.0 (default).
> For other versions, use one of these documentation indexes:
> - v6.0 (default): https://docs.zip.tax/v-6-0/llms.txt
> - v5.0: https://docs.zip.tax/v-5-0/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.zip.tax/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.zip.tax/_mcp/server.

# Quickstart

Five minutes, five steps, one real rate. At the end of this page you'll
have an API key, a working curl call, and an SDK-based version of the
same lookup in the language of your choice.

#### Create a Ziptax account

Head to [platform.zip.tax](https://platform.zip.tax) and sign up.
You can create a Starter Plan account for free and start using the
API in minutes. More information on our plans and request tiers can
be found on our [pricing page](https://zip.tax/pricing).

#### Create API Key

After signing in, navigate to `Develop > API Keys` using the side
navigation menu. Create a new key and copy the value. It looks like
a long opaque string. Keep it out of client-side code and source
control.

For a step-by-step walkthrough with screenshots, see
[How to create an API key](how-to-create-an-api-key).

#### Make your first call

Replace `YOUR_API_KEY` and run this:

```bash
curl -H "X-API-KEY: YOUR_API_KEY" \
  "https://api.zip-tax.com/request/v60?address=200+Spectrum+Center+Dr+Irvine+CA"
```

If the key and address are valid, you'll get a JSON response that
looks like this (trimmed):

```json
{
  "metadata": {
    "version": "v60",
    "response": { "code": 100, "name": "RESPONSE_CODE_SUCCESS" }
  },
  "taxSummaries": [
    { "rate": 0.0775, "taxType": "SALES_TAX", "summaryName": "Total Base Sales Tax" }
  ],
  "addressDetail": {
    "normalizedAddress": "200 Spectrum Center Dr, Irvine, CA 92618-5003, United States",
    "geoLat": 33.65253,
    "geoLng": -117.74794
  }
}
```

`taxSummaries[0].rate` is the combined sales tax rate at that
address. For 200 Spectrum Center Dr it's 7.75% at the time of
writing.

> **Info**
>
> Didn't get a `code: 100`? Look up what the code means on the
> [Response Codes](../reference/response-codes) page. `101` means the
> key wasn't accepted, `109` means the address didn't resolve.

#### Do the same call from an SDK

The REST endpoint is easy to hit from any language, but the SDKs
add typed models, retries, and convenience helpers. Pick one:

#### Python

```python
# pip install ziptax
from ziptax import Ziptax

client = Ziptax(api_key="YOUR_API_KEY")
rate = client.by_address(
    address="200 Spectrum Center Dr, Irvine CA"
)
print(rate.tax_summaries[0].rate)  # 0.0775
```

#### Node.js

```javascript
// npm install ziptax
import { Ziptax } from "ziptax";

const client = new Ziptax({ apiKey: "YOUR_API_KEY" });
const rate = await client.byAddress({
  address: "200 Spectrum Center Dr, Irvine CA",
});
console.log(rate.taxSummaries[0].rate); // 0.0775
```

#### Go

```go
// go get github.com/ziptax/sdk-go
client := ziptax.New("YOUR_API_KEY")

rate, err := client.ByAddress(ctx, ziptax.ByAddressRequest{
    Address: "200 Spectrum Center Dr, Irvine CA",
})
// rate.TaxSummaries[0].Rate == 0.0775
```

#### Pick your next step

You're integrated. Now find the shape that matches your use case:

#### [SDKs](../sdks/overview)

Idiomatic Go, Python, and Node.js clients with typed models.

#### [REST API](../rest-api/overview)

Learn when to use address vs. lat/lng vs. postal code, and the
full parameter set.

#### [Agents & LLMs](../agents-and-llms/overview)

Give an AI agent direct access to Ziptax via MCP or the Claude
Skill.

#### [Taxability Information Codes](../product-rules/taxability-information-codes)

Attach a product category for accurate tax on clothing, food,
SaaS, and so on.

## Troubleshooting

#### \`code: 101\`, key wasn't accepted

Double-check for trailing whitespace or wrapping quotes in the
header. Regenerate the key from the Ziptax platform if in doubt.
The header name is case-sensitive in some clients, so use exactly
`X-API-KEY`.

#### \`code: 109\`, address didn't resolve

Usually a typo or a ZIP that doesn't match the city. Try the
address without the ZIP, or drop the ZIP+4 suffix if present.

#### Rate limit after a test loop

If you hit `code: 108`, you've tripped the per-minute request
limit. The window is 60 seconds, so wait and retry. Read the
[Rate Limiting guide](../reference/rate-limiting-errors) before
wiring this into a tight loop.

#### Want historical rates or Canadian coverage

Both are available on Pro and Enterprise plans via the `historical`
and `countryCode=CAN` parameters respectively. See the
[REST API guide](../rest-api/overview) for the full parameter list.