Texas Property Tax Data ServiceAdmin

Errors

Errors are structured JSON — never made-up results. Invalid or unavailable queries return documented codes.

Envelope

Error response
{
  "detail": {
    "code": "PARCEL_NOT_FOUND",
    "message": "No parcel 9999999999999 in county 48201."
  }
}

Errors live under a detail key (FastAPI's convention). code is stable and machine-readable; message is for humans and may be omitted. Some errors carry only a plain-string detail (e.g. FastAPI validation errors on malformed query params).

Codes

HTTPCodeWhen
400INVALID_INPUTMissing required filters or malformed query
401MISSING_API_KEYNo X-API-Key header
401INVALID_API_KEYUnknown key
403API_KEY_REVOKEDKey revoked
403ADMIN_REQUIREDAdmin-tier endpoint with a non-admin key
404PARCEL_NOT_FOUNDNo parcel for (county_fips, account_number, year)
404COUNTY_NOT_FOUNDUnknown county FIPS
404TAXING_UNIT_NOT_FOUNDUnknown unit code
404COLLECTOR_NOT_FOUNDUnknown collector id
404APPRAISAL_DISTRICT_NOT_FOUNDUnknown district id
404KEY_NOT_FOUNDAdmin: unknown key id
409KEY_ALREADY_REVOKEDAdmin: revoking an already-revoked key
422INVALID_TIERAdmin: tier not in free/standard/internal/admin
429RATE_LIMIT_EXCEEDEDOver tier limit; Retry-After header set

Data-quality semantics

  • Null means unresolved, not missing. A taxing unit code that could not be resolved stays null — it is never guessed or dropped.
  • Values carry status. value_status distinguishes preliminary, certified and supplemented rolls; "no notice issued" is a distinct state from "notice value unknown".
  • History is archived on receipt. Certified values change year-round via supplements; every value row carries as_of.