Feature Service Best Practices
Using the Feature Service
Regrid's Esri-compatible Feature Service enables seamless integration of our comprehensive, standardized nationwide parcel dataset into ESRI tools via a simple URL.
This large and detailed dataset includes over 159 million parcels, each enriched with over 100 attributes such as tax assessments, administrative units, environmental variables, and more.
To ensure optimal performance and a smooth user experience, it's essential to narrow down the data to your scope of interest. Zooming in to the county level (ESRI zoom 9) or closer is recommended for both visualization and geoprocessing tasks. This will help ensure parcel polygons display clearly and reduce unnecessary data processing.
The default coordinate system for the Feature Service is WGS84 (EPSG: 4326). If a different coordinate system is required, you can use the outSR custom parameter to request data in your desired coordinate system during import. Ensure all of your data shares a CRS before you begin any geoprocessing.
By following these best practices, you can efficiently work with this large dataset in ESRI tools.
Outline of Best Practice
- Loading the Nationwide FS Data Layer.
- Apply Definition Queries to narrow down the data geographically and/or by attribute.
- Use outFields to create a leaner view of the dataset based on your use case.
- Use Optimized Fields for faster queries.
- Set a Processing Extent to focus your analysis on relevant spatial data.
- Iterate with ModelBuilder or ArcPy when handling large datasets or multiple counties.
Load the Nationwide FS Data Layer
Please note that you may be just using our FS by the state. This step applies to all geographies. We mention nationwide primarily as most of our clients use our entire national data layer.
The Regrid Feature Service loads our entire nationwide 159+ million parcel records, including 100+ attributes, in one layer. If you license our parcel data with any of our add-on datasets and add them both, ArcPro is loading 300+ million spatial polygons simultaneously. You can start looking up our parcels and buildings anywhere in the country. However, once the data is loaded, it’s important to keep the size of the data in mind as you continue to use and build on top of Regrid datasets. Esri tools are exceptional at visual storytelling across geographies, however, when operating across the entire nation with large datasets, there are additional steps we recommend you take to ensure you have the most optimal, high-performant experience using these datasets.
Apply Definition Queries to Filter by Geography and Attributes
Use Definition Queries to filter the data based on geographical and attribute-based criteria. This will significantly improve performance and make your analysis more focused.
Why It’s Important:
By applying definition queries early in the workflow, you narrow down the dataset to only the relevant features, ensuring faster processing and more precise results.
How to Do It:
Geographic Filtering:
Narrow the dataset by geography using fields like state2 (state) or geoid (county).
- State: state2 = 'MI'
- County: geoid = '26163'
Multiple Counties (use IN for efficiency): geoid IN ('26163', '26164', '26165')
Attribute Filtering: Further refine your dataset using attributes such as zoning or other relevant fields.
Example: zoning = 'Residential'
Creating Definition Queries
- Use AND operators to combine conditions (e.g., state2 = 'MI' AND zoning = 'Residential').
- For multiple values in a single field, IN is more efficient than using multiple OR conditions.
- Avoid complex SQL (e.g. nested queries or using SELECT in the WHERE clause).
- The LIKE operator is supported for fields like zoning, county, and address, but it’s less efficient than using strict equality.
Regrid’s Feature Service handles case-insensitive queries for string fields. Regex is not yet supported. Let us know if this is something you are interested in.
Use outFields to create a leaner view of the dataset based on use case
The Regrid feature service includes our entire dataset, the geometry + all the attribution. If you are looking to do more analysis work using our data witin ESRI ArcPro, you can create leaner views of our data by choosing the attributes you need for your geoprocessing. This allows you to expedite some of your processing by creating a subset of the available data, while ensuring you still have access to the full dataset.
The ‘Outfields’ feature upon data import will help you accomplish this.

Why It’s helpful:
The larger the dataset, the more records and fields the Esri tools will need to run against to get you the answers you need. Creating leaner views will aid the Esri tools to run the same operations at an expedited pace, therefore improving your query response time.
How to Do It:
Append the outFields parameter to the request URL to ensure that only the selected attributes are returned.
Example Request URL in ArcPro:
https://fs.regrid.com/{token}/rest/services/premium/FeatureServer/0?outFields=id,ll_uuid,geoid,zoning,saleprice,ll_gissqft
- The request must always begin with id, followed by the desired attributes.
- Feature Service attribute names are aliased for a user-friendly experience, but original names must be passed for outField requests.
- In ArcGIS Pro, optionally use the Custom Request Parameter to pass outFields in the URL.
- In ArcGIS Online, use the URL directly without adding any extra fields in the Custom Parameters section. Always store your token credentials with service item when using ArcGIS Online.

Use Optimized Fields for faster queries
Once the data is filtered, you can further enhance performance by using optimized fields. Commonly queried fields are indexed, allowing for faster query performance.
Why It’s Important:
Optimized fields reduce query time by utilizing pre-indexed database fields, which speeds up your queries and minimizes the risk of timeouts.
How to Do It:
Refer to this list of optimized fields for use in your queries. These fields are indexed, so querying them will be faster.
We have optimized queries on a set of commonly-used fields. Queries on other fields may be slower or fail to complete if the request takes longer than two minutes.
| 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 |
Set the Processing Extent
Use the Processing Extent setting in the Environment tab of your geoprocessing tools to focus analysis on a specific region. This helps to ensure that only the relevant data for your analysis is processed.
Why It’s Important:
Setting a processing extent reduces the data being processed and speeds up spatial queries, especially when working with large datasets.
How to Do It:
In ArcGIS Pro, manually select the counties of interest or use a boundary polygon to set the extent.
For smaller areas, use Current Display Extent in the Environments tab to automatically limit the analysis to the visible area of your map.
Iterate with ModelBuilder or ArcPy
For analyses spanning multiple counties or large regions, the dataset may still be too large to handle in a tool or single query. In such cases, you can break the query into smaller chunks.
Why It’s Important:
Iteration allows you to handle large datasets by processing smaller, more manageable portions of the data, which helps avoid timeouts or slow processing.
How to Do It:
Use ModelBuilder or ArcPy to set up an iterative process. For example, if working with multiple geographies, create a loop that runs a query for each area individually.
Summary: Combine All Best Practices for Optimal Performance
To get the best performance, combine the techniques outlined in the previous steps:
- Use outFields to select the attributes upon import.
- Apply Definition Queries to filter the data geographically or by attribute.
- Leverage Optimized Fields for faster queries.
- Set a Processing Extent to focus the analysis on a specific region.
- Use ModelBuilder or ArcPy to iterate over smaller chunks when necessary.
- Adjust Definition Queries and Processing Extents for each iteration to ensure that only the relevant data is processed.
Handling Result Limits and Pagination
Note to ArcGIS JavaScript SDK and Feature Service as an API Users: By default, the Feature Service limits query results to 3,000 records. If your query requires more than this, you can use pagination to retrieve the additional results.
Example Pagination Request: https://fs.regrid.com/{token}/rest/services/premium/FeatureServer/0/query?resultOffset=3000ℴByFields=parcelnumb
We appreciate your feedback and questions at [email protected].
Regrid Canada and Europe Parcels via Feature Service
Regrid's Esri-compatible Feature Service allows you to use Regrid's seamless 9+ million record Canadian parcel layer in Esri tools, along with our 400+ million record Europe dataset across 20 countries in Europe and counting.
Using Regrid Canada Parcels or Regrid Europe Parcels via Feature Service is similar to the US Nationwide parcel layer.
The key difference is the two-letter country code in the URL:
First, make sure Canada, Europe, or both products are enabled on your account. Contact [email protected].
Then, point to the desired country via Feature Service by including a case-insensitive country code in the Feature Service URL.
In the example URL, we'll use CA for Canada:
In ArcGIS Pro use the full URL with the token inline:https://fs.regrid.com/{token}/rest/services/CA/FeatureServer/0
In ArcGIS Online, use this URL and follow the prompt to store credentials with the service item using any username and your token as the password:https://fs.regrid.com/regrid/rest/services/CA/FeatureServer/0
When setting up Regrid Canada Parcels or Regrid Europe Parcels and implementing best practices, refer to the Regrid Global schema for applicable field names.
List of Country Codes
Canada (CA)
Cyprus (CY)
Czechia (CZ)
Denmark (DK)
Finland (FI)
France (FR)
Estonia (EE)
Germany (DE)
Iceland (IS)
Ireland (IE)
Italy (IT)
Latvia (LV)
Luxembourg (LU)
The Netherlands (NL)
Norway (NO)
Poland (PL)
Slovakia (SK)
Slovenia (SI)
Spain (ES)
Switzerland (CH)
The United Kingdom (GB)
Bulk Import of European Parcels on AGOL
The following script can be run inside of an ArcGIS Notebook on ArcGIS Online to import all European URLs as new content items inside your AGOL workspace. Simply copy and paste the entire script into one cell and press run if you prefer not to manually enter each URL into the new content setup.
Note that you will be prompted within the notebook to enter your token to securely create a service item URL.
from arcgis.gis import GIS
gis = GIS("home")
"""
regrid_agol_bulk_import.py
Bulk-imports Regrid Feature Service layers into a customer's ArcGIS Online (AGOL)
content, one item per country/dataset, using AGOL's *stored credentials* pattern
instead of embedding the Regrid token in the item URL.
Scenario: Customer has purchased 20 available
European country datasets under a single Regrid token.
Key security point:
The token is NEVER placed in the item's `url` field. Per Regrid's documented
AGOL pattern, the URL path uses a fixed placeholder ("regrid") instead of the
token, and the token is passed separately as `servicePassword`, which AGOL
encrypts and stores against the item (the same mechanism as the browser's
"store credentials with this service" prompt). The token is read at runtime
via getpass so it is never hardcoded or logged.
Requires: arcgis (ArcGIS API for Python)
"""
import time
import getpass
from arcgis.gis import GIS
# ---------------------------------------------------------------------------
# 1. Connect to AGOL
# ---------------------------------------------------------------------------
# Using "home" assumes this runs inside an ArcGIS Online hosted notebook,
# which is already authenticated as the org user. If running elsewhere,
# swap this for GIS("https://www.arcgis.com", "username", "password").
gis = GIS("home")
print(f"Connected to AGOL as: {gis.users.me.username}")
# ---------------------------------------------------------------------------
# 2. Regrid token -- entered at runtime, never hardcoded, never logged
# ---------------------------------------------------------------------------
regrid_token = getpass.getpass("Enter Regrid Feature Service token: ")
# The AGOL-safe base URL uses "regrid" in place of the token in the path.
# Auth happens via stored credentials (username/password), not the URL itself.
BASE_URL = "https://fs.regrid.com/regrid/rest/services/{service}/FeatureServer/{layer_id}"
# Any non-empty username works -- Regrid authenticates on the password (token).
SERVICE_USERNAME = "regrid"
# ---------------------------------------------------------------------------
# 3. Datasets the customer has purchased
# ---------------------------------------------------------------------------
# 20 European country codes (include only the countries your token is authorized).
# Each is added as its parcel layer (/0).
INTERNATIONAL_CODES = {
"CY": "Cyprus", "CZ": "Czechia", "DK": "Denmark", "FI": "Finland",
"FR": "France", "EE": "Estonia", "DE": "Germany", "IS": "Iceland",
"IE": "Ireland", "IT": "Italy", "LV": "Latvia", "LU": "Luxembourg",
"NL": "The Netherlands", "NO": "Norway", "PL": "Poland", "SK": "Slovakia",
"SI": "Slovenia", "ES": "Spain", "CH": "Switzerland", "GB": "United Kingdom",
}
# ---------------------------------------------------------------------------
# 4. Helper: add one Feature Service item with stored credentials
# ---------------------------------------------------------------------------
def add_regrid_item(gis, service_code, layer_id, layer_label, title):
"""
Adds a single Regrid Feature Service layer as an AGOL item.
Credentials are stored on the item (serviceUsername/servicePassword);
the token never appears in the url field or in any printed output.
"""
url = BASE_URL.format(service=service_code, layer_id=layer_id)
item_properties = {
"title": title,
"type": "Feature Service",
"url": url,
"tags": f"regrid,{service_code.lower()},feature-service",
"description": f"Regrid {layer_label} -- {service_code} (layer {layer_id})",
"serviceUsername": SERVICE_USERNAME,
"servicePassword": regrid_token,
}
try:
new_item = gis.content.add(item_properties=item_properties)
print(f" Added: {title} (item id: {new_item.id})")
return new_item
except Exception as e:
# Intentionally do not print item_properties or exception args verbatim
# in case the token were ever echoed back by the API in an error message.
print(f" FAILED: {title} ({type(e).__name__})")
return None
# ---------------------------------------------------------------------------
# 5. Run the import
# ---------------------------------------------------------------------------
created_items = []
print("\n--- Europe (20 countries) ---")
for code, country_name in INTERNATIONAL_CODES.items():
title = f"Regrid Parcels - {country_name} ({code})"
item = add_regrid_item(gis, code, 0, "Parcels", title)
created_items.append(item)
time.sleep(1)
# ---------------------------------------------------------------------------
# 6. Summary
# ---------------------------------------------------------------------------
succeeded = [i for i in created_items if i is not None]
failed_count = len(created_items) - len(succeeded)
print(f"\nDone. {len(succeeded)} items created, {failed_count} failed.")
print("Reminder: verify stored credentials on each item in AGOL "
"(Item > Settings > URL) -- they should show as 'stored', "
"and the token should not appear anywhere in the item's URL.")Updated 13 days ago
