← Docs

Tax

Sales tax rates and US property-tax medians in paid place detail.

Tax data belongs to the place you look up. Add ?deep=true on a paid plan for sales tax reference rates or US property-tax medians. There is no separate tax endpoint or meter.

Sales tax

deep.tax names the sales tax, VAT, or GST. deep.tax_rate is a percentage: 7.9 means 7.9%. Choose the geographic scope you need; do not add rates across lookups.

GET
api.parseapi.com/country/{code}?deep=true
Standard national reference rate. US is null
Explore
Parameters 2
codestring · path · required

ISO 3166-1 alpha-2 or alpha-3, or a country name (germany)

deepboolean · query · optional

Country profiles, statistics, regional conventions, tax references and alternate identifiers. Included on paid plans.

GET
api.parseapi.com/state/{code}?deep=true
State or province reference rate
Explore
Parameters 3
codestring · path · required

State or province code or name (NC, colorado, ontario)

countrystring · query · optional

ISO2, ISO3, or a country name. Optional when the code or name is globally unique. A collision 404s asking for it.

deepboolean · query · optional

Population, area, capital, area codes and tax references. Included on paid plans.

GET
api.parseapi.com/postal/{code}?country=US&deep=true
Combined local reference rate for a US ZIP
Explore
Parameters 3
codestring · path · required

Postal or ZIP code. Unique codes resolve bare (SW1A 1AA). Use ?country=JP for 100-0001, whose digits also occur in Portugal.

countrystring · query · optional

ISO2, ISO3, or a country name. Optional when the code exists in exactly one covered country. Both five-digit and seven-digit codes can collide.

deepboolean · query · optional

Population, area, elevation, tax references, nearby postal codes and metropolitan areas. Included on paid plans.

Deep examples run with your own key. Check this API’s included units and pricing before running.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.country("de", { deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "country": "DE",
  "name": "Germany",
  "deep": {
    "tax": "VAT",
    "tax_rate": 19,
    "tax_id_format": "DE999999999"
  }
}

Deep examples run with your own key. Check this API’s included units and pricing before running.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.country("us", { deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "country": "US",
  "name": "United States",
  "deep": {
    "tax": null,
    "tax_rate": null
  }
}

Deep examples run with your own key. Check this API’s included units and pricing before running.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.state("colorado", { deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "state": "CO",
  "name": "Colorado",
  "deep": {
    "tax": "Sales tax",
    "tax_rate": 2.9
  }
}

Deep examples run with your own key. Check this API’s included units and pricing before running.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.postal("53202", { country: "US", deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "postal": "53202",
  "city": "Milwaukee",
  "state": "WI",
  "state_name": "Wisconsin",
  "deep": {
    "tax": "Sales tax",
    "tax_rate": 7.9,
    "tax_rate_state": 5,
    "tax_rate_county": 0.9,
    "tax_rate_city": 2,
    "tax_rate_special": null,
    "property_tax": null
  }
}

Deep examples run with your own key. Check this API’s included units and pricing before running.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.postal("97201", { country: "US", deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "postal": "97201",
  "city": "Portland",
  "state": "OR",
  "state_name": "Oregon",
  "deep": {
    "tax": null,
    "tax_rate": 0,
    "tax_rate_state": 0,
    "tax_rate_county": null,
    "tax_rate_city": null,
    "tax_rate_special": null,
    "property_tax": null
  }
}

ZIP components are already included in the combined rate. 0 is a known zero for the reported scope; null means unavailable or not applicable. A zero state rate does not mean local taxes are zero. ZIP boundaries can cross tax jurisdictions, so the rate at an exact address can differ. These lookups do not calculate the tax owed on an order or determine filing requirements.

Property tax

deep.property_tax gives the median annual real-estate tax payable on owner-occupied housing in a US ZIP area or county. annual_median is an amount in USD, adjusted to the final year of period. For example, 2020-2024 describes a five-year estimate in 2024 dollars. This is a regional statistic, not a percentage or an individual property bill.

GET
api.parseapi.com/postal/{code}?country=US&deep=true
Median annual property tax for a US ZIP area
Explore
Parameters 3
codestring · path · required

Postal or ZIP code. Unique codes resolve bare (SW1A 1AA). Use ?country=JP for 100-0001, whose digits also occur in Portugal.

countrystring · query · optional

ISO2, ISO3, or a country name. Optional when the code exists in exactly one covered country. Both five-digit and seven-digit codes can collide.

deepboolean · query · optional

Population, area, elevation, tax references, nearby postal codes and metropolitan areas. Included on paid plans.

GET
api.parseapi.com/district/{code}?country=US&deep=true
Median annual property tax for a US county; code is the county FIPS code
Explore
Parameters 4
codestring · path · required

District code or name (08031, guilford county, E09000033)

countrystring · query · optional

ISO2, ISO3, or a country name. Optional when the code or name is unique.

statestring · query · optional

ADM1 code or name. Narrows name lookups (washington matches 31 districts). Prefer louisiana over LA, which collides across countries.

deepboolean · query · optional

Population, area, the seat of government and US county property-tax medians. Included on paid plans.

Deep examples run with your own key. Check this API’s included units and pricing before running.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.postal("28202", { country: "US", deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "postal": "28202",
  "city": "Charlotte",
  "city_local": null,
  "district": "37119",
  "district_name": "Mecklenburg",
  "district_name_local": null,
  "state": "NC",
  "state_name": "North Carolina",
  "state_name_local": null,
  "country": "US",
  "country_name": "United States",
  "latitude": 35.227271,
  "longitude": -80.844194,
  "timezone": "America/New_York",
  "deep": {
    "elevation": 245,
    "elevation_ft": 804,
    "population": 17653,
    "population_period": null,
    "area": 4.68,
    "land_area": 4.67,
    "water_area": 0.01,
    "currency": "USD",
    "tax": "Sales tax",
    "tax_rate": 8.25,
    "tax_rate_state": 4.75,
    "tax_rate_county": 2,
    "tax_rate_city": null,
    "tax_rate_special": 1.5,
    "property_tax": {
      "annual_median": 3346,
      "currency": "USD",
      "period": "2020-2024"
    },
    "neighbors": [
      "28280",
      "28282",
      "28244",
      "28204",
      "28203",
      "28206",
      "28207",
      "28274"
    ],
    "metros": [
      {
        "code": "16740",
        "name": "Charlotte-Concord-Gastonia, NC-SC",
        "type": "metropolitan",
        "share": 1,
        "residential_share": 1,
        "business_share": 1,
        "other_share": 1
      }
    ]
  }
}

Deep examples run with your own key. Check this API’s included units and pricing before running.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.district("37119", { deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "district": "37119",
  "name": "Mecklenburg County",
  "type": "county",
  "state": "NC",
  "state_name": "North Carolina",
  "country": "US",
  "country_name": "United States",
  "latitude": 35.246862,
  "longitude": -80.833832,
  "timezone": "America/New_York",
  "timezones": [
    "America/New_York"
  ],
  "deep": {
    "population": 1206285,
    "population_period": null,
    "property_tax": {
      "annual_median": 2890,
      "currency": "USD",
      "period": "2020-2024"
    },
    "area": 1414.34,
    "land_area": 1356.15,
    "water_area": 58.19,
    "seat": "Charlotte"
  }
}

Estimates cover the 50 states plus DC, with values where a usable estimate is published. Missing, censored, or unsupported estimates return property_tax: null. Compare the same geographic scope and period. Dividing median property tax by median home value does not give a median effective tax rate.

Response fields

deep.tax
Levy name (VAT, GST, Sales tax). Null when unavailable or no levy is named
deep.tax_rate
Reference rate in percent: 7.9 means 7.9%. Country is national, state is the subdivision reference, and ZIP is combined. Do not add geographic scopes
deep.tax_rate_state
ZIP only. State piece of the combined rate, percent. Null when unavailable or not applicable
deep.tax_rate_county
ZIP only. County piece of the combined rate, percent. Null when unavailable or not applicable
deep.tax_rate_city
ZIP only. City piece of the combined rate, percent. Null when unavailable or not applicable
deep.tax_rate_special
ZIP only. Special district piece of the combined rate, percent. Null when unavailable or not applicable
deep.property_tax
Median annual real-estate tax payable on owner-occupied housing, in US dollars adjusted to the final year of period. Available US ZIP-area and county estimates only. Not a percentage or an individual property bill. Null when missing, censored or unsupported.
deep.property_tax.annual_median
Median annual amount in currency. Dollars adjusted to the final year of period
deep.property_tax.period
Observation period, such as 2020-2024

Use /vat for VAT number checks and /tariff for US import duties.

Questions? Email