Government and Public Records

Property Tax Record

/extract/json

Property tax assessment and payment record from a county assessor or tax collector.

Download the schemagov-public-records/property-tax-record.json

property-tax-record.schema

// names marked ? are optional

parcel_number:string// Assessor's parcel number (APN) or folio number. Commonly found in: county assessor website, tax collector portal.
address:string// Property street address. Commonly found in: county assessor website, tax records.
city:string// City of the property. Commonly found in: county assessor website.
county:string// County of the property. Commonly found in: county assessor website.
state:string// State of the property. Commonly found in: county assessor website.
zip_code?:string// ZIP code of the property. Commonly found in: county assessor website, property address.
latitude?:number// Latitude coordinate of the property. Commonly found in: geocoding API, GIS data.
longitude?:number// Longitude coordinate of the property. Commonly found in: geocoding API, GIS data.
owner_name?:string// Name of the property owner. Commonly found in: county assessor website, tax records.
owner_mailing_address?:string// Mailing address of the property owner. Commonly found in: county assessor website.
property_type?:string// Property use type (e.g., single family, commercial). Commonly found in: county assessor website, property details.
land_value_usd?:number// Assessed value of the land in USD. Commonly found in: county assessor website, assessment breakdown.
improvement_value_usd?:number// Assessed value of improvements in USD. Commonly found in: county assessor website, assessment breakdown.
total_assessed_value_usd:number// Total assessed value in USD. Commonly found in: county assessor website, tax bill.
market_value_usd?:number// Estimated market value in USD. Commonly found in: county assessor website, appraisal.
tax_year:number// Tax year for this record. Commonly found in: county assessor website, tax bill.
annual_tax_usd:number// Annual property tax amount in USD. Commonly found in: tax collector portal, tax bill.
tax_rate_pct?:number// Effective tax rate as a percentage. Commonly found in: county tax rate schedule.
exemptions?:string[]// Tax exemptions applied (e.g., homestead, senior). Commonly found in: county assessor website, exemption records.
tax_status?:string// Current tax payment status. Commonly found in: tax collector portal. One of: paid, delinquent, partial, exempt, other.
last_sale_price_usd?:number// Price from the most recent sale in USD. Commonly found in: county recorder, deed records.
last_sale_date?:string// Date of the most recent sale. Commonly found in: county recorder, deed records.
zoning?:string// Zoning classification of the property. Commonly found in: county assessor website, zoning map.
page_title?:string// Title of the source page. Tabstack auto-fills this from page metadata when left empty.
favicon?:string// Favicon URL of the source page. Tabstack auto-fills this from page metadata when left empty.

Try it live

A sample Property Tax Record document, generated from the schema. Edit it, or paste a real response, and see it checked against the schema instantly. It runs in your browser, nothing is sent anywhere.

your-output.json
validation

Valid, matches Property Tax Record

Every required field is present and each value matches its type. Extra fields are allowed. A field the page does not carry is not guaranteed to come back as null, so check values rather than only checking for null.

/extract/json

Copy-paste usage

The same call in TypeScript, Python, and curl. Point it at your own URL and go. The schema drives the response, so you get back the fields you asked for instead of a page to parse.

Features

  • Typed TypeScript and Python SDKs
  • One call, no parsing code and no second LLM pass
  • The same field names on every request, even when the page layout changes
property-tax-record.ts
// curl -sfLO https://raw.githubusercontent.com/Mozilla-Ocho/tabstack-schemas/main/gov-public-records/property-tax-record.json
import Tabstack from '@tabstack/sdk'
import schema from './property-tax-record.json' with { type: 'json' }

const client = new Tabstack() // reads TABSTACK_API_KEY from the environment

try {
  const data = await client.extract.json({
    url: 'https://records.example.gov/filing/12345',
    json_schema: schema,
    effort: 'standard', // 'min' | 'standard' | 'max'
  })

  console.log(data)
} catch (err) {
  console.error('Extraction failed:', err)
}

Ship this schema in one call.

Pass a URL, get matching JSON back. Free to start, no extraction layer to maintain.