Filter Parcels: Query by Field

In addition to the primary identifiers in our dataset, our API is also queryable at a nationwide level using a subset of our 120+ schema fields that have been optimized for queries at scale. The following is the general form for this endpoint. See additional query endpoints in the OpenAPI Spec Sandbox for examples on each field type and our API Examples article. Multiple fields can be used in a single query (up to 4), to refine results.

api/v2/parcels/query

Currently our parcel API is also queryable at a nationwide level by the following fields:

FieldDescription
ll_gisacrenumeric / double precision
ll_gissqftnumeric / integer
usps_vacancytext
rditext
ll_bldg_countnumeric / integer
salepricenumeric / double precision
zoningtext
zoning_idnumeric
zoning_typetext
zoning_subtypetext
lbcs_activitynumeric
lbcs_functionnumeric
lbcs_structurenumeric
lbcs_sitenumeric
lbcs_ownershipnumeric
saledatedate
sziptext
ll_uuiduuid
landvalnumeric
geoidtext
ownertext
parcelnumbtext
state2text
pathtext
countytext
yearbuiltnumeric / integer
improvvalnumeric / double precision
alt_parcelnumb1text
census_blocktext
census_blockgrouptext
census_tracttext
census_school_districttext
qoztext
ll_stack_uuiduuid

Example Queries: Supported keys and value formats

Example API Requests

  • Numeric field ll_gisacre
    • [https://app.regrid.com/api/v2/parcels/query?fields[ll_gisacre](https://app.regrid.com/api/v2/parcels/query?fields\[ll_gisacre)][eq]=1000.2426&offset_id=1234&limit=5
    • [https://app.regrid.com/api/v2/parcels/query?fields[ll_gisacre](https://app.regrid.com/api/v2/parcels/query?fields\[ll_gisacre)][ne]=100&fields[ll_gisacre][gt]=99.0&fields[ll_gisacre][lt]=200&fields[ll_gisacre][between]=[100, 300]
  • Text field zoning
    • [https://app.regrid.com/api/v2/parcels/query?fields[zoning](https://app.regrid.com/api/v2/parcels/query?fields\[zoning)][ilike]=RS-1&fields[zoning][ne]=RS-1&fields[zoning][between]=["RS-1", "RS-14"]&fields[zoning][nin]=["RS-1", "RS-9", "MHPD", "RD-D", "AG-2"]&fields[zoning][order]=DESC
  • Date field saledate
    • [https://app.regrid.com/api/v2/parcels/query?&fields[saledate](https://app.regrid.com/api/v2/parcels/query?\&fields\[saledate)][between]=["2020", "2021/04/22"]&fields[saledate][isnull]=false&limit=100
  • Boolean field struct
    • [https://app.regrid.com/api/v2/parcels/query?fields[struct](https://app.regrid.com/api/v2/parcels/query?fields\[struct)][ne]=false&fields[struct][eq]=true&fields[struct][isnull]=false

Example Result Format

{
    "parcels": {
        "type": "FeatureCollection",
        "features": [
          array of GeoJSON features...
        ]
    }
}

Supported types and operators

All field types are supported. The operators available vary by field type:


Field TypeOperators
Numbereq, ne, isnull, between, gt, gte, lt, lte, in, nin, order
Texteq, ne, isnull, in, nin, ilike
Dateeq, ne, isnull, between, gt, gte, lt, lte, in, nin, order
Booleaneq, ne, isnull
All Typeslimit, count, offset_id

Operators on each field

fields[<field_name>][<operator>]


OperatorDescription
eqequal, case sensitive
nenot equal, case sensitive
isnullis null, takes boolean true/false values only
betweenbetween inclusive
gtgreater than
gtegreater than or equal
ltless than
lteless than or equal
inin set
ninnot in set
ilikecase insensitive, matches the given string within the text field value (ex %VALUE%)
orderASC/DESC

Query Parameters

  • token: Your Regrid authorization token.
  • fields[<field_name>][<operator>]: Use a supported field name and operator as the parameter key, and a valid value to filter parcels.
  • geojson: A GeoJSON object with at least one geometry to filter results. The geometries can be no larger than 80 sq miles. If both geojson and lat-lon are present, geojson takes precedence. Accepted GeoJSON formats are: FeatureCollection, Feature or geometry. Supported geometries: Polygon, MultiPolygon, Point, MultiPoint, LineString and MultiLineString. Variations of geometry types are allowed in a FeatureCollection.
  • radius: (Default: 0, Maximum: 32000) Radius in meters for which all Parcel records will be returned if they are within the radius zone from latitude and longitude point. See Pagination section for details.
  • path: Represents a full or partial path as defined by the Regrid Standard Schema ('/us/state_id', '/us/state_id/county_slug', or '/us/state_id/county_slug/city_slug'), or a full parcel path string (like '/us/state_id/county_slug/city_slug/parcel_path_id')"
  • offset_id: ID from a previous query exceeding the limit, returns the next set of results up to limit.
  • return_count: Set to true to enable count of parcels in query
  • limit: (optional) Default 20. Maximum number of Parcel Records to return. Max is 1000.
  • return_count: Set to true to enable count of parcels in query.
  • return_geometry: Default true. Features are returned without geometry values. This reduces the payload size significantly if only field data is required.
  • return_custom: Default false: A true value allows county-specific fields to be passed through beyond standard schema fields only.
  • return_field_labels: Default false: A true value shows the naming convention for each standardized schema field. return_stacked: Default true: A false value returns the first parcel if geometries are identical.
  • return_matched_buildings: Set to false to disable building footprint data in the response. Default is true when supported by the account.
  • return_matched_addresses: Set to false to matched addresses data in the response. Default is true when supported by the account.
  • return_enhanced_ownership: Set to false to disable enhanced ownership data in the response. Default is true when supported by the account.
  • return_zoning: Set to false to disable zoning data in the response. Default is true when supported by the account.
  • return_custom_id: Default false. Set to true when input GeoJSON features include a 'custom_id' field in the 'properties' object. This flag enables the resulting parcels to include the user-set custom ID for matching parcel(s).
  • return_parcels: Default true. A false value will not return parcel records. Used to return additional add-on datasets when parcel information is not needed.

Custom Identifiers

Query based endpoints allow a custom identifier defined by API users on each GeoJSON geometric feature (point, polygon, etc) using the custom_id key included in the feature's properties. This allows one to keep track of their input point to easily verify if that point found zero or more parcels.

This custom ID does not have to be unique so as to return any logical meaning API users may have for that identifier.

Pagination

If your request returns more than 1000 parcel records, you will need to use pagination for your query results.

Pagination is performed by including an offset_id parameter with the integer id from a previous query. Each parcel record has an id for location in our database. You will need the id of the last parcel record from your previous query to use in the next iteration of the pagination request. This request returns the remaining parcels up to the value of the limit parameter.

To page results, the initial request needs to include the parameter offset_id=0 which indicates results need to be in ID order. The required id is located at the root level of each parcel feature returned with id key.

Example pagination first request

Give me the parcel records in Los Angeles County where the parcel acreage is greater than 2 acres. For reference, there are 228,122 parcels matching this query.

[https://app.regrid.com/api/v2/parcels/query?fields[geoid](https://app.regrid.com/api/v2/parcels/query?fields\[geoid)][eq]=06037&fields[ll_gisacre][gt]=2&offset_id=0&limit=1000

Example pagination subsequent request

[https://app.regrid.com/api/v2/parcels/query?fields[geoid](https://app.regrid.com/api/v2/parcels/query?fields\[geoid)][eq]=06037&fields[ll_gisacre][gt]=2&offset_id=155171239&limit=1000

The order parameter is not allowed when paging, as is indicated by an error message if the query is invalid.

If a total count is needed, an initial query can be made with return_count=true. Otherwise, successive pages can be requested until the results are less than the limit or empty.

Count

When the return_count parameter is set to a boolean value of true or false, the results will be the entire dataset filtered by other optional operators on the field(s). When the boolean value is true, there is no cost to return the total number of parcels for the query.

Requests with return_count return an integer value in the following format.

{
    "count": 1846
  }

Limit is ignored when the return_count parameter is present.

Customize Response Payload

There are several flags available to reduce payload size.

  • return_geometry: A list of features is returned with geometry values. Default true.
  • return_custom: County-specific custom fields are included in results. This can be used to retrieve only Standard Schema results. Default false.
  • return_field_labels: An object of Standard Schema field names and descriptions are returned within each feature. Default false in API v2.
  • return_stacked: A false value means only the first parcel is returned if geometries are identical. Default true.

Request Format

Queries can be made as GET or POST requests. The examples below show the same query being made by both types of request.

GET request example

fields[ll_gisacre][eq]=1000.2426&fields[ll_gisacre][ne]=1000&limit=5

POST request example

{
  "fields": {
    "ll_gisacre": {
      "eq": 1000.2426,
      "ne":  1000
    }
  },
  "limit": 5
}

Other considerations

  • Date formats allowed: YYYY/MM/DD or MM/DD/YYYY Also, a value with a year only like "2022" will evaluate as "2022/01/01".
  • Multiple operators are ANDed together.
  • Boolean and boolean-like fields (struct, usps_vacancy, rdi) can only be queried with a subset of operators (eq, ne, isnull).


Did this page help you?