← 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

Country returns the national levy and percentage at deep.tax.name and deep.tax.rate. State and ZIP use deep.tax and deep.tax_rate. A rate of 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 rate is null
Explore
Parameters 4
formatstring · query · optional

json by default. geojson returns simplified country land outlines for map display as Polygon/MultiPolygon Features with stable ISO2 IDs. Very small islands and holes may be omitted. Missing outlines retain null geometry; unavailable geometry storage returns 503. Selected country facts and existing Deep access are preserved. API 2.0.0.

Default: json

Values: json, geojson

codestring · path · required

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

langstring · query · optional

Display language as one BCP 47 tag, such as fr or zh-Hant. Changes supported display labels only; IDs, codes, native names, facts, parsing and deep access stay unchanged. Omit for the original response. Unsupported regions use the supported language base; unsupported languages or scripts use English. Missing labels retain their source value. Accept-Language is not read automatically. Available on the current API contract; frozen 1.0.0 is unchanged.

Length: 2 to 64 characters

deepboolean · query · optional

Country profiles, physical geography, 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 5
formatstring · query · optional

json by default. geojson returns simplified administrative Polygon/MultiPolygon outlines with country-qualified IDs and selected facts in properties. Coordinates are longitude first. Missing or ambiguous outlines retain null geometry. Unavailable boundary storage returns 503. Collections retain parent context. Existing Deep access and pooled allowance apply. API 2.0.0 only.

Default: json

Values: json, geojson

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.

langstring · query · optional

Display language as one BCP 47 tag, such as fr or zh-Hant. Changes supported display labels only; IDs, codes, native names, facts, parsing and deep access stay unchanged. Omit for the original response. Unsupported regions use the supported language base; unsupported languages or scripts use English. Missing labels retain their source value. Accept-Language is not read automatically. Available on the current API contract; frozen 1.0.0 is unchanged.

Length: 2 to 64 characters

deepboolean · query · optional

Population, area and tax references. Core includes State identifiers, area codes and capital. Included on paid plans.

GET
api.parseapi.com/postal/{code}?country=US&deep=true
Combined local reference rate for a US ZIP
Explore
Parameters 4
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.

langstring · query · optional

Display language as one BCP 47 tag, such as fr or zh-Hant. Changes supported display labels only; IDs, codes, native names, facts, parsing and deep access stay unchanged. Omit for the original response. Unsupported regions use the supported language base; unsupported languages or scripts use English. Missing labels retain their source value. Accept-Language is not read automatically. Available on the current API contract; frozen 1.0.0 is unchanged.

Length: 2 to 64 characters

deepboolean · query · optional

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

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

Run this Deep example with a paid-plan key. Deep is included in the pooled request, with no separate lookup charge.

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 (excerpt)

This example shows selected fields or shortened lists. Run the request for the full response.

{
  "country": "DE",
  "iso_alpha3": "DEU",
  "iso_numeric": 276,
  "name": "Germany",
  "name_full": "Federal Republic of Germany",
  "name_local": "Deutschland",
  "demonym": "German",
  "continent": "EU",
  "region": "Europe",
  "subregion": "Western Europe",
  "currency": "EUR",
  "currency_name": "Euro",
  "currency_symbol": "€",
  "calling_code": "+49",
  "flag": "🇩🇪",
  "languages": [
    "de"
  ],
  "timezones": [
    "Europe/Berlin",
    "Europe/Zurich"
  ],
  "borders": [
    "AT",
    "BE",
    "CH",
    "CZ",
    "DK",
    "FR",
    "LU",
    "NL",
    "PL"
  ],
  "blocs": [
    "EEA",
    "EU",
    "EUROZONE",
    "G7",
    "NATO",
    "OECD",
    "SCHENGEN",
    "SEPA"
  ],
  "capital": {
    "name": "Berlin",
    "latitude": 52.52,
    "longitude": 13.4
  },
  "deep": {
    "population": 83516593,
    "gdp_usd": 5050922925047.05,
    "gdp_per_capita_usd": 60496.44,
    "population_growth_percent": -0.03,
    "urban_population_percent": 82.14,
    "internet_users_percent": 93.5,
    "area": 357021,
    "land_area": null,
    "water_area": null,
    "coastline": 2389,
    "lowest_point": {
      "name": "Neuendorf bei Wilster",
      "elevation": -3.5
    },
    "highest_point": {
      "name": "Zugspitze",
      "elevation": 2963
    },
    "elevation_average": 263,
    "tld": ".de",
    "week_start": "monday",
    "units": "metric",
    "driving_side": "right",
    "plugs": [
      "C",
      "F"
    ],
    "voltage": 230,
    "frequency": 50,
    "emergency": {
      "police": "110",
      "ambulance": "112",
      "fire": "112"
    },
    "postal_format": "#####",
    "postal_regex": "^(?:\\d{5})$",
    "tax": {
      "name": "VAT",
      "rate": 19
    },
    "ioc": "GER",
    "fifa": "GER",
    "plate": "D"
  }
}

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 its source observation period. Postal serves the current estimate and uses deep.currency. County detail also includes property_tax.currency and property_tax.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 4
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.

langstring · query · optional

Display language as one BCP 47 tag, such as fr or zh-Hant. Changes supported display labels only; IDs, codes, native names, facts, parsing and deep access stay unchanged. Omit for the original response. Unsupported regions use the supported language base; unsupported languages or scripts use English. Missing labels retain their source value. Accept-Language is not read automatically. Available on the current API contract; frozen 1.0.0 is unchanged.

Length: 2 to 64 characters

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 6
formatstring · query · optional

json by default. geojson returns simplified administrative Polygon/MultiPolygon outlines with country-qualified IDs and selected facts in properties. Coordinates are longitude first. Missing or ambiguous outlines retain null geometry. Unavailable boundary storage returns 503. Collections retain parent context. Existing Deep access and pooled allowance apply. API 2.0.0 only.

Default: json

Values: json, geojson

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. Prefer louisiana over LA, which collides across countries, or include country=US.

langstring · query · optional

Display language as one BCP 47 tag, such as fr or zh-Hant. Changes supported display labels only; IDs, codes, native names, facts, parsing and deep access stay unchanged. Omit for the original response. Unsupported regions use the supported language base; unsupported languages or scripts use English. Missing labels retain their source value. Accept-Language is not read automatically. Available on the current API contract; frozen 1.0.0 is unchanged.

Length: 2 to 64 characters

deepboolean · query · optional

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

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

Run this Deep example with a paid-plan key. Deep is included in the pooled request, with no separate lookup charge.

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 (excerpt)

This example shows selected fields or shortened lists. Run the request for the full 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",
  "type": "standard",
  "deep": {
    "elevation": 245,
    "elevation_ft": 804,
    "population": 17653,
    "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
    },
    "neighbors": [
      "28280",
      "28282",
      "28244",
      "28204",
      "28203",
      "28206",
      "28207",
      "28274"
    ],
    "metros": [
      {
        "code": "16740",
        "name": "Charlotte-Concord-Gastonia, NC-SC",
        "type": "metropolitan",
        "share_percent": 100
      }
    ]
  }
}

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.currencystring or null
Currency for the current Postal property-tax amount; USD for US ZIP estimates. County amounts use property_tax.currency
deep.taxstring or null
Levy name (VAT, GST, Sales tax). Null when unavailable or no levy is named
deep.tax_ratenumber or null
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_statenumber or null
ZIP only. State piece of the combined rate, percent. Null when unavailable or not applicable
deep.tax_rate_countynumber or null
ZIP only. County piece of the combined rate, percent. Null when unavailable or not applicable
deep.tax_rate_citynumber or null
ZIP only. City piece of the combined rate, percent. Null when unavailable or not applicable
deep.tax_rate_specialnumber or null
ZIP only. Special district piece of the combined rate, percent. Null when unavailable or not applicable
deep.property_taxobject or null
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_medianinteger
Median annual amount in currency. Dollars adjusted to the final year of period
deep.property_tax.periodstring
Observation period, such as 2020-2024

Questions? Email