---
title: "Search parcels"
method: GET
path: "/v1/parcel"
tags: ["parcel"]
---

# Search parcels

`GET /v1/parcel`

## Request

- Base URL: `http://localhost:3030`
- URL: `http://localhost:3030/v1/parcel`
- Auth: HTTP bearer

Searches parcels by address, parcel number, point or area.

To find a specific parcel, send one of `address`, `apn` (with
`jurisdiction` or `fips`), or `lat` with `lon`. Each result carries a
`match`, best match first.

To list parcels in an area, send `bbox`, or `lat`, `lon` and `radius`, or
`jurisdiction` or `fips`. Narrow the list with filters. Each range filter
has a `min_` and a `max_` form, and either can be sent alone. `sort` sets
the order.

## Query parameters

- `address` string, nullable: A street address, with city or postal code where known, such as `4516 Printer Ln, Raleigh NC 27613`. A state or city in the address limits results to parcels there. Results are the matching parcels, best match first.
- `apn` string, nullable: A parcel number, as published. Case and spaces are ignored. Requires `jurisdiction` or `fips`.
- `lat` number, nullable: Latitude, in WGS 84. Requires `lon`. Results are the parcels at the point, or around it with `radius`.
- `lon` number, nullable: Longitude, in WGS 84. Requires `lat`.
- `radius` number, nullable: Search radius around `lat` and `lon`, in meters. At most 25,000. Results are the parcels whose centroid is within it, nearest first.
- `bbox` string, nullable: A bounding box, as `west,south,east,north` in WGS 84. Results are limited to parcels that intersect it.
- `jurisdiction` string[], nullable: A jurisdiction id. Results are limited to parcels it assesses or that lie within it. Repeatable.
- `fips` string[], nullable: A Census GEOID: 2 digits for a state or 5 for a county, such as `48` or `48453`. Results are limited to parcels within it. Repeatable.
- `owner` string, nullable: An owner name, or words from it. Results are parcels with an owner name containing every word, best match first.
- `locality` string, nullable: City, town or village of the parcel's address. Case and accents are ignored. Parcels without an address never match.
- `postal_code` string, nullable: ZIP or postal code of the parcel's address. Parcels without an address never match.
- `use` string[], nullable: Land use code, as published by the assessor. Repeatable.
- `class` string[], nullable: Property class code, as published by the assessor. Repeatable.
- `land_use` string[], nullable: Standard land use, such as `vacant` or `residential.single_family`. A category also matches each of its kinds. Matches the parcel's land use or property class. Repeatable.
- `min_acres` number, nullable: Minimum area, in acres. Parcels without a boundary never match.
- `max_acres` number, nullable: Maximum area, in acres. Parcels without a boundary never match.
- `min_market_value` number, nullable: Minimum total market value, in US dollars. Parcels without a market value never match.
- `max_market_value` number, nullable: Maximum total market value, in US dollars. Parcels without a market value never match.
- `min_year_built` integer, nullable: Earliest year built. Parcels without a building never match.
- `max_year_built` integer, nullable: Latest year built. Parcels without a building never match.
- `min_building_area` number, nullable: Minimum gross building area, in square feet. Parcels without a building never match.
- `max_building_area` number, nullable: Maximum gross building area, in square feet. Parcels without a building never match.
- `min_sale_price` number, nullable: Minimum price of the most recent sale, in US dollars. Parcels without a sale never match.
- `max_sale_price` number, nullable: Maximum price of the most recent sale, in US dollars. Parcels without a sale never match.
- `min_sale_date` string, date, nullable: Earliest date of the most recent sale, as `YYYY-MM-DD`. Parcels without a sale never match.
- `max_sale_date` string, date, nullable: Latest date of the most recent sale, as `YYYY-MM-DD`. Parcels without a sale never match.
- `sort` string, nullable: Sort order. One of `acres`, `as_of`, `building_area`, `market_value`, `sale_date`, `sale_price`, `year_built`. Prefix with `-` for descending. Parcels without a value sort last. Not accepted with `address` or `owner`.
- `include` string, nullable: Comma-separated sections to include. One of `geometry` (each boundary, as GeoJSON).
- `format` 'json' | 'geojson': Response format. One of `json` (a list) or `geojson` (a FeatureCollection). Defaults to `json`. `Accept: application/geo+json` also selects `geojson`.
- `cursor` string, nullable: A cursor for pagination: the `next_cursor` from the previous page.
- `size` integer, nullable: Number of results per page, between 1 and 200. Defaults to 20.
- `total` boolean: Whether to include `total`, the count of all matches, on the first page. Defaults to `false`.

## Response `200`

A page of parcels.

- CollectionParcel
  - `object` 'list', required: The object's type. Always `list`.
  - `data` Parcel[], required: The results on this page.
    - `object` 'parcel', required: The object's type. Always `parcel`.
    - `id` string, required: A parcel id.
    - `number` Number, required: The parcel number the assessor keys the parcel by.
      - `scheme` string, required: Identifier scheme, such as `apn`, `pin` or `cad_prop_id`.
      - `value` string, required: The identifier, as published.
      - `normalized` string, required: The identifier in upper case, without spaces. The form `apn` matches against.
    - `identifiers` ParcelIdentifier[], required: Every parcel identifier, primary first.
      - `scheme` string, required: Identifier scheme, such as `apn`, `pin`, `cad_prop_id` or `cad_geo_id`.
      - `value` string, required: The identifier, as published.
      - `normalized` string, required: The identifier in upper case, without spaces. The form `apn` matches against.
      - `primary` boolean, required: Whether this is the parcel's primary identifier, in `number`.
    - `jurisdiction` ParcelJurisdictionRef, required: The jurisdiction that assesses the parcel.
      - `id` string, required: A jurisdiction id.
      - `name` string, required: The jurisdiction's common name.
      - `type` string, required: Kind of jurisdiction, in local terms, such as `county`, `parish`, `city` or `town`.
      - `fips` string, nullable: The Census GEOID. Null outside the US.
      - `href` string, required: The object's path in the API.
    - `within` ParcelWithin[], required: The jurisdictions that contain `jurisdiction`, largest first.
      - `id` string, required: A jurisdiction id.
      - `name` string, required: The jurisdiction's common name.
      - `tier` 'national' | 'region' | 'subregion' | 'local', required: Level of government. One of `national`, `region` (a state or province), `subregion` (a county or district) or `local` (a city, town, village or township).
      - `type` string, required: Kind of jurisdiction, in local terms, such as `county`, `parish`, `city` or `town`.
      - `fips` string, nullable: The Census GEOID. Null outside the US.
    - `status` string, required: Parcel status. Always `active`.
    - `type` Code, required: A coded value, as published, with its standard equivalent.
      - `code` string, nullable: Code, as published.
      - `description` string, nullable: Meaning of the code, as published. Null when not published.
      - `standard` string, nullable: Standard value, shared across jurisdictions. Null when not yet classified.
    - `area` Area, required: A parcel's size.
      - `sq_m` number, required: Area in square meters, measured from the boundary.
      - `acres` number, required: Area in acres, measured from the boundary. Used by `min_acres` and `max_acres`.
      - `stated_acres` number, nullable: Deeded or legal area in acres, as published. Null when not published.
    - `centroid` ParcelPoint, required: A point in WGS 84.
      - `lat` number, required: Latitude, in WGS 84.
      - `lon` number, required: Longitude, in WGS 84.
    - `addresses` ParcelAddress[], required: Addresses on the parcel, main address first. Empty when none are published.
      - `raw` string, required: Full address on one line: every line it is published on, in order, joined with a comma.
      - `recipient` string, nullable: Care-of or attention line, as published. Null when there is none.
      - `street_line_1` string, nullable: First street line: house number and street, or a PO box. Null when not published.
      - `street_line_2` string, nullable: Second street line: apartment, suite, unit or building. Null when there is none.
      - `street_number` string, nullable: House number. Null when not published.
      - `street_name` string, nullable: Street name, without its type. Null when not published.
      - `unit` string, nullable: Unit number. Null when there is none.
      - `locality` string, nullable: City, town or village. Null when not published.
      - `region` string, nullable: State, as its two-letter abbreviation. Null when not published.
      - `postal_code` string, nullable: ZIP or postal code. Null when not published.
      - `point` ParcelPoint: A point in WGS 84.
        - `lat` number, required: Latitude, in WGS 84.
        - `lon` number, required: Longitude, in WGS 84.
      - `role` string, required: Address role. Always `site`, the address of the property itself.
      - `primary` boolean, required: Whether this is the parcel's main address.
    - `owners` Owner[], required: Owners of record, in published order. Empty when none are published.
      - `name` string, required: Owner name, as published. One name can cover several people.
      - `kind` Code: A coded value, as published, with its standard equivalent.
        - `code` string, nullable: Code, as published.
        - `description` string, nullable: Meaning of the code, as published. Null when not published.
        - `standard` string, nullable: Standard value, shared across jurisdictions. Null when not yet classified.
      - `order` integer, nullable: Position in the list of owners, as published. Null when there is one owner.
      - `mailing` Address: A postal address, as published, with its parts where they are published separately.
        - `raw` string, required: Full address on one line: every line it is published on, in order, joined with a comma.
        - `recipient` string, nullable: Care-of or attention line, as published. Null when there is none.
        - `street_line_1` string, nullable: First street line: house number and street, or a PO box. Null when not published.
        - `street_line_2` string, nullable: Second street line: apartment, suite, unit or building. Null when there is none.
        - `street_number` string, nullable: House number. Null when not published.
        - `street_name` string, nullable: Street name, without its type. Null when not published.
        - `unit` string, nullable: Unit number. Null when there is none.
        - `locality` string, nullable: City, town or village. Null when not published.
        - `region` string, nullable: State, as its two-letter abbreviation. Null when not published.
        - `postal_code` string, nullable: ZIP or postal code. Null when not published.
        - `point` ParcelPoint: A point in WGS 84.
          - `lat` number, required: Latitude, in WGS 84.
          - `lon` number, required: Longitude, in WGS 84.
    - `assessment` Assessment, required: The latest assessment of the parcel.
      - `tax_year` integer, nullable: Tax year of the assessment. Null when not published.
      - `class` LandUseCode: A land use or property class code, as published, with its standard land use.
        - `code` string, nullable: Code, as published.
        - `description` string, nullable: Meaning of the code, as published. Null when not published.
        - `standard` 'residential' | 'residential.single_family' | 'residential.multi_family' | 'residential.condominium' | 'residential.mobile_home' | 'residential.common_area' | 'commercial' | 'commercial.retail' | 'commercial.office' | 'commercial.lodging' | 'commercial.recreation' | 'commercial.parking' | 'industrial' | 'industrial.manufacturing' | 'industrial.warehouse' | 'industrial.mining' | 'agricultural' | 'agricultural.timber' | 'vacant' | 'vacant.residential' | 'vacant.commercial' | 'vacant.industrial' | 'institutional' | 'institutional.government' | 'institutional.religious' | 'institutional.education' | 'institutional.health' | 'institutional.cemetery' | 'open_space' | 'open_space.conservation' | 'open_space.water' | 'open_space.recreation' | 'utility' | 'mixed' | 'exempt' | 'mineral_rights', nullable: Land use, shared across jurisdictions: a category, or a category and a kind joined by a dot. Null when the code is not classified.
      - `use` LandUseCode: A land use or property class code, as published, with its standard land use.
        - `code` string, nullable: Code, as published.
        - `description` string, nullable: Meaning of the code, as published. Null when not published.
        - `standard` 'residential' | 'residential.single_family' | 'residential.multi_family' | 'residential.condominium' | 'residential.mobile_home' | 'residential.common_area' | 'commercial' | 'commercial.retail' | 'commercial.office' | 'commercial.lodging' | 'commercial.recreation' | 'commercial.parking' | 'industrial' | 'industrial.manufacturing' | 'industrial.warehouse' | 'industrial.mining' | 'agricultural' | 'agricultural.timber' | 'vacant' | 'vacant.residential' | 'vacant.commercial' | 'vacant.industrial' | 'institutional' | 'institutional.government' | 'institutional.religious' | 'institutional.education' | 'institutional.health' | 'institutional.cemetery' | 'open_space' | 'open_space.conservation' | 'open_space.water' | 'open_space.recreation' | 'utility' | 'mixed' | 'exempt' | 'mineral_rights', nullable: Land use, shared across jurisdictions: a category, or a category and a kind joined by a dot. Null when the code is not classified.
      - `value` Value: Assessed values, by basis.
        - `market` MarketValue: Market values, in US dollars.
          - `land` number, nullable: Land value. Null when not published.
          - `improvement` number, nullable: Improvement value. Null when not published.
          - `total` number, nullable: Total market value. Null when not published.
        - `assessed` BasisTotal: A total value, in US dollars.
          - `total` number, nullable: Total value. Null when not published.
        - `taxable` BasisTotal: A total value, in US dollars.
          - `total` number, nullable: Total value. Null when not published.
      - `exemptions` Exemption[]: Tax exemptions. Empty when there are none.
        - `type` string, nullable: Exemption type, as published. Null when not published.
        - `code` string, nullable: Exemption code, as published. Null when not published.
        - `description` string, nullable: Meaning of the code, as published. Null when not published.
        - `standard` string, nullable: Standard value, shared across jurisdictions. Null when not yet classified.
        - `amount` number, nullable: Amount exempted, in US dollars. Null when not published.
        - `percentage` number, nullable: Share exempted, between 0 and 1. Null when not published.
    - `buildings` Building[], required: Buildings on the parcel, main building first. Empty when none are published.
      - `building_number` string, nullable: Building or card number on the parcel, as published. Null when not published.
      - `type` string, nullable: Building type, as published. Null when not published.
      - `description` string, nullable: Building description, as published. Null when not published.
      - `use_code` string, nullable: Building use code, as published. Null when not published.
      - `value` number, nullable: Market value of the building, in US dollars. Null when not published.
      - `year_built` integer, nullable: Year built. Null when not published.
      - `effective_year_built` integer, nullable: Effective year built, after major renovation. Null when not published.
      - `building_area_sq_ft` number, nullable: Gross building area, in square feet. Null when not published.
      - `living_area_sq_ft` number, nullable: Living area, in square feet. Null when not published.
      - `stories` number, nullable: Number of stories. Null when not published.
      - `unit_count` integer, nullable: Number of units. Null when not published.
      - `bedroom_count` number, nullable: Number of bedrooms. Null when not published.
      - `full_bath_count` number, nullable: Number of full bathrooms. Null when not published.
      - `half_bath_count` number, nullable: Number of half bathrooms. Null when not published.
      - `construction_type` string, nullable: Construction type, as published. Null when not published.
      - `quality_code` string, nullable: Construction quality code, as published. Null when not published.
      - `quality_description` string, nullable: Construction quality, as published. Null when not published.
      - `condition_code` string, nullable: Condition code, as published. Null when not published.
      - `condition_description` string, nullable: Condition, as published. Null when not published.
      - `garage_type` string, nullable: Garage type, as published. Null when not published.
      - `basement_type` string, nullable: Basement type, as published. Null when not published.
      - `fireplace` boolean, nullable: Whether the building has a fireplace. Null when not published.
      - `percent_complete` number, nullable: Share of construction complete, as a percentage. Null when not published.
      - `heating_type` string, nullable: Heating type, as published. Null when not published.
      - `style` string, nullable: Building style, as published. Null when not published.
      - `room_count` number, nullable: Number of rooms. Null when not published.
      - `bath_count` number, nullable: Number of bathrooms, with a half bath counted as `0.5`. Null when not published.
      - `exterior_wall` string, nullable: Exterior wall material, as published. Null when not published.
      - `roof_cover` string, nullable: Roof covering, as published. Null when not published.
      - `roof_type` string, nullable: Roof shape, as published. Null when not published.
      - `foundation_type` string, nullable: Foundation type, as published. Null when not published.
      - `cooling_type` string, nullable: Cooling type, as published. Null when not published.
      - `heating_fuel` string, nullable: Heating fuel, as published. Null when not published.
      - `fireplace_count` number, nullable: Number of fireplaces. Null when not published.
      - `garage_area_sq_ft` number, nullable: Garage area, in square feet. Null when not published.
      - `basement_area_sq_ft` number, nullable: Basement area, in square feet. Null when not published.
      - `basement_finished_area_sq_ft` number, nullable: Finished basement area, in square feet. Null when not published.
      - `year_remodeled` integer, nullable: Year of the last remodel. Null when not published.
    - `sales` Sale[], required: Recorded sales of the parcel, most recent first. Empty when none are published.
      - `date` string, date, nullable: Sale date. Null when not published.
      - `month` string, nullable: Month of the sale, as `YYYY-MM`. Set wherever `date` is, and on its own where only the month is published. Null when not published.
      - `recording_date` string, date, nullable: Recording date of the deed. Null when not published.
      - `price` number, nullable: Sale price, in US dollars. Null when not disclosed.
      - `document_number` string, nullable: Recorded document number. Null when not published.
      - `deed_type` Code: A coded value, as published, with its standard equivalent.
        - `code` string, nullable: Code, as published.
        - `description` string, nullable: Meaning of the code, as published. Null when not published.
        - `standard` string, nullable: Standard value, shared across jurisdictions. Null when not yet classified.
      - `book` string, nullable: Deed book. Null when not published.
      - `page` string, nullable: Deed page. Null when not published.
      - `qualification` Code: A coded value, as published, with its standard equivalent.
        - `code` string, nullable: Code, as published.
        - `description` string, nullable: Meaning of the code, as published. Null when not published.
        - `standard` string, nullable: Standard value, shared across jurisdictions. Null when not yet classified.
      - `grantor` string, nullable: Seller, as published. Null when not published.
      - `grantee` string, nullable: Buyer, as published. Null when not published.
      - `transfer_tax` number, nullable: Transfer tax paid on the deed, in US dollars. Null when not published.
      - `vacant_land` boolean, nullable: Whether the land was vacant at the sale. Null when not published.
      - `new_construction` boolean, nullable: Whether the sale was of new construction. Null when not published.
      - `deed_reference` string, nullable: Deed book and page, printed as one reference. Null when not published.
      - `document_url` string, nullable: Link to the recorded deed. Null when not published.
    - `legal` Legal, required: The legal description and its parts, as published.
      - `description` string, nullable: Full legal description, as published.
      - `subdivision` string, nullable: Subdivision name. Null when not published.
      - `plat_name` string, nullable: Plat name. Null when not published.
      - `plat_book` string, nullable: Plat book. Null when not published.
      - `plat_page` string, nullable: Plat page. Null when not published.
      - `block` string, nullable: Block. Null when not published.
      - `lot` string, nullable: Lot. Null when not published.
      - `section` string, nullable: Section, in the public land survey. Null when not published.
      - `township` string, nullable: Township, in the public land survey. Null when not published.
      - `range` string, nullable: Range, in the public land survey. Null when not published.
    - `geometry` Geometry, required: A GeoJSON geometry in WGS 84, longitude first.
      - `type` string, required: Geometry type. One of `Polygon` or `MultiPolygon`.
      - `coordinates` unknown[], required: Coordinates, as `[longitude, latitude]` positions nested by geometry type.
        - unknown
    - `match` Match, required: How a search parameter matched the parcel.
      - `method` 'address' | 'apn' | 'point' | 'id', required: Match method. One of `address`, `apn`, `point` or `id`.
      - `score` number, required: Match confidence, between 0 and 1. `1` is exact. For an address, `1` means the house number, street name, street type, direction, and any unit, city and ZIP code sent all agree.
      - `matched` string, nullable: The value matched against, such as the parcel's address. Null when not applicable.
    - `as_of` string, date, required: Date of the most recent update to this parcel.
    - `href` string, required: The object's path in the API.
  - `has_more` boolean, required: Whether there are more results after this page.
  - `next_cursor` string, nullable, required: The cursor for the next page. Send it as `cursor`. Null on the last page.
  - `suppressed` integer, required: The number of matching results withheld because the plan does not include them.
  - `total` Total, required: The number of matching results.
    - `value` integer, required: The number of matching results.
    - `relation` 'eq' | 'gte', required: One of `eq` (exact) or `gte` (at least `value`). Counts above 10,000 are `gte`.

## Other responses

- `401`: `credential_missing`, `credential_invalid` or `credential_expired`. The request has no valid credential.
- `402`: `quota_exhausted`. The credit balance is too low for this request. Nothing is charged.
- `403`: `scope_missing`, `person_required`, `api_key_not_accepted` or `entitlement_missing`. The credential or plan does not allow this request. `detail` names the reason.
- `422`: `parameter_invalid`, `id_malformed` or a cursor code. A parameter is missing or invalid. `errors` lists each one.
- `429`: `rate_limited`. Too many requests. Retry after the `Retry-After` interval. Nothing is charged.
- `501`: `not_available`. Parcel data is not available yet.

---

[API](https://skmtc.dev/placestack/apis/placestack-api.md) · [All operations](https://skmtc.dev/placestack/apis/placestack-api/llms.txt) · [OpenAPI document](https://skmtc.dev/placestack/apis/placestack-api/revisions/0ccdf0882668?raw)
