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:
| Field | Description |
|---|---|
| ll_gisacre | numeric / double precision |
| ll_gissqft | numeric / integer |
| usps_vacancy | text |
| rdi | text |
| ll_bldg_count | numeric / integer |
| saleprice | numeric / double precision |
| zoning | text |
| zoning_id | numeric |
| zoning_type | text |
| zoning_subtype | text |
| lbcs_activity | numeric |
| lbcs_function | numeric |
| lbcs_structure | numeric |
| lbcs_site | numeric |
| lbcs_ownership | numeric |
| saledate | date |
| szip | text |
| ll_uuid | uuid |
| landval | numeric |
| geoid | text |
| owner | text |
| parcelnumb | text |
| state2 | text |
| path | text |
| county | text |
| yearbuilt | numeric / integer |
| improvval | numeric / double precision |
| alt_parcelnumb1 | text |
| census_block | text |
| census_blockgroup | text |
| census_tract | text |
| census_school_district | text |
| qoz | text |
| ll_stack_uuid | uuid |
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 Type | Operators |
|---|---|
| Number | eq, ne, isnull, between, gt, gte, lt, lte, in, nin, order |
| Text | eq, ne, isnull, in, nin, ilike |
| Date | eq, ne, isnull, between, gt, gte, lt, lte, in, nin, order |
| Boolean | eq, ne, isnull |
| All Types | limit, count, offset_id |
Operators on each field
fields[<field_name>][<operator>]
| Operator | Description |
|---|---|
| eq | equal, case sensitive |
| ne | not equal, case sensitive |
| isnull | is null, takes boolean true/false values only |
| between | between inclusive |
| gt | greater than |
| gte | greater than or equal |
| lt | less than |
| lte | less than or equal |
| in | in set |
| nin | not in set |
| ilike | case insensitive, matches the given string within the text field value (ex %VALUE%) |
| order | ASC/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).
Updated 5 months ago
