> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.zip.tax/v-5-0/guides/tutorials/quickstart/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. > Get your first sales tax rate back from Ziptax in under five minutes