Regrid Parcel API

RESTful API for querying US and Canadian parcel records by location (lat/lon), street address, assessor parcel number (APN), owner name, or polygon area. Returns GeoJSON FeatureCollections with parcel boundaries, ownership, zoning, assessed values, and deed attributes. Supports up to 1,000 records per request with usage tracked by parcel records returned for billing purposes.

OpenAPI Specification

regrid-parcel-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Regrid Parcel API
  description: >
    RESTful API for querying US and Canadian parcel records by location (lat/lon),
    street address, assessor parcel number (APN), owner name, or polygon area.
    Returns GeoJSON FeatureCollections with parcel boundaries, ownership, zoning,
    assessed values, and deed attributes. Supports up to 1,000 records per request
    with usage tracked by parcel records returned for billing purposes.
  version: 2.0.0
  termsOfService: https://regrid.com/terms
  contact:
    name: Regrid Support
    url: https://support.regrid.com
  license:
    name: Proprietary
    url: https://regrid.com/terms
externalDocs:
  description: Regrid API Documentation
  url: https://support.regrid.com/api/section/parcel-api
servers:
  - url: https://app.regrid.com
    description: Regrid Production API
security:
  - apiToken: []
tags:
  - name: Parcel Search
    description: Search parcel records by various criteria
  - name: Parcel Query
    description: Filter parcel dataset by indexed schema attributes
  - name: Schemas
    description: Field schema definitions for parcel data products
  - name: Metadata
    description: Coverage, usage, and data quality endpoints
  - name: Typeahead
    description: Address autocomplete suggestions
paths:
  /api/v2/parcels/point:
    get:
      operationId: getParcelsAtPoint
      summary: Point Lookup
      description: >
        Returns parcel records at or near a given geographic coordinate.
        Accepts latitude/longitude and returns matching GeoJSON parcel features.
      tags:
        - Parcel Search
      parameters:
        - name: token
          in: query
          required: true
          description: API authentication token
          schema:
            type: string
        - name: lat
          in: query
          required: true
          description: Latitude of the point to search
          schema:
            type: number
            format: double
            example: 37.7749
        - name: lon
          in: query
          required: true
          description: Longitude of the point to search
          schema:
            type: number
            format: double
            example: -122.4194
        - name: radius
          in: query
          required: false
          description: Optional search radius in meters around the point
          schema:
            type: number
            format: double
        - name: limit
          in: query
          required: false
          description: Number of parcel records to return (1–1000)
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 20
        - name: fields
          in: query
          required: false
          description: Comma-separated list of schema fields to include in response
          schema:
            type: string
        - name: return_custom
          in: query
          required: false
          description: Include custom fields in the response
          schema:
            type: boolean
        - name: return_stacked
          in: query
          required: false
          description: Return stacked/overlapping parcels at the point
          schema:
            type: boolean
      responses:
        '200':
          description: Successful GeoJSON FeatureCollection response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParcelFeatureCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
    post:
      operationId: postParcelsAtPoint
      summary: Point Lookup (POST)
      description: POST variant of point lookup accepting JSON body
      tags:
        - Parcel Search
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - lat
                - lon
              properties:
                lat:
                  type: number
                  format: double
                lon:
                  type: number
                  format: double
                radius:
                  type: number
                  format: double
                limit:
                  type: integer
                  minimum: 1
                  maximum: 1000
                  default: 20
                fields:
                  type: string
      responses:
        '200':
          description: Successful GeoJSON FeatureCollection response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParcelFeatureCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /api/v2/parcels/address:
    get:
      operationId: getParcelsByAddress
      summary: Address Lookup
      description: >
        Locates parcel records matching a street address in the US and Puerto Rico.
        Returns GeoJSON parcel features for matching addresses.
      tags:
        - Parcel Search
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
        - name: query
          in: query
          required: true
          description: Street address string to search
          schema:
            type: string
            example: "123 Main St, San Francisco, CA 94105"
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 20
        - name: fields
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successful GeoJSON FeatureCollection response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParcelFeatureCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /api/v2/parcels/apn:
    get:
      operationId: getParcelsByAPN
      summary: APN Lookup
      description: >
        Retrieves parcel records by Assessor Parcel Number (APN). Requires
        specifying the state and/or county along with the APN string.
      tags:
        - Parcel Search
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
        - name: apn
          in: query
          required: true
          description: Assessor Parcel Number identifier
          schema:
            type: string
            example: "1234-567-890"
        - name: state_code
          in: query
          required: false
          description: Two-letter US state code to narrow the search
          schema:
            type: string
            example: "CA"
        - name: county
          in: query
          required: false
          description: County name to narrow the search
          schema:
            type: string
            example: "San Francisco"
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 20
        - name: fields
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successful GeoJSON FeatureCollection response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParcelFeatureCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /api/v2/parcels/owner:
    get:
      operationId: getParcelsByOwner
      summary: Owner Name Lookup
      description: >
        Finds all properties associated with a specific owner name. Returns
        GeoJSON parcel features for all parcels matching the owner query.
      tags:
        - Parcel Search
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
        - name: owner
          in: query
          required: true
          description: Owner name string to search
          schema:
            type: string
            example: "Smith John"
        - name: state_code
          in: query
          required: false
          description: Two-letter US state code to narrow the search
          schema:
            type: string
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 20
        - name: fields
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successful GeoJSON FeatureCollection response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParcelFeatureCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /api/v2/parcels/area:
    get:
      operationId: getParcelsByArea
      summary: Area Geometry Search (GET)
      description: >
        Returns all parcels that fall within a specified geographic area defined
        by a GeoJSON polygon or bounding box.
      tags:
        - Parcel Search
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
        - name: bbox
          in: query
          required: false
          description: Bounding box as comma-separated min_lon,min_lat,max_lon,max_lat
          schema:
            type: string
            example: "-122.45,37.75,-122.40,37.79"
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 20
        - name: fields
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successful GeoJSON FeatureCollection response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParcelFeatureCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
    post:
      operationId: postParcelsByArea
      summary: Area Geometry Search (POST)
      description: >
        POST variant of area search accepting a GeoJSON polygon geometry in the request body.
      tags:
        - Parcel Search
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                geometry:
                  $ref: '#/components/schemas/GeoJSONPolygon'
                limit:
                  type: integer
                  minimum: 1
                  maximum: 1000
                  default: 20
                fields:
                  type: string
      responses:
        '200':
          description: Successful GeoJSON FeatureCollection response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParcelFeatureCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /api/v2/parcels/query:
    get:
      operationId: queryParcels
      summary: Query by Field (GET)
      description: >
        Filter the entire nationwide parcel dataset by any indexed schema attributes.
        Described as the most powerful endpoint; supports combining field filters
        with optional geometry constraints.
      tags:
        - Parcel Query
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
        - name: query
          in: query
          required: true
          description: >
            Field filter expression. Use field:value syntax or structured JSON query.
            Supports 120+ indexed schema fields.
          schema:
            type: string
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 20
        - name: offset
          in: query
          required: false
          description: Record offset for pagination
          schema:
            type: integer
            minimum: 0
            default: 0
        - name: fields
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successful GeoJSON FeatureCollection response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParcelFeatureCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
    post:
      operationId: postQueryParcels
      summary: Query by Field (POST)
      description: POST variant of query by field accepting structured JSON query body
      tags:
        - Parcel Query
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - query
              properties:
                query:
                  type: object
                  description: Structured field filter object
                  additionalProperties: true
                limit:
                  type: integer
                  minimum: 1
                  maximum: 1000
                  default: 20
                offset:
                  type: integer
                  minimum: 0
                  default: 0
                fields:
                  type: string
                geometry:
                  $ref: '#/components/schemas/GeoJSONPolygon'
      responses:
        '200':
          description: Successful GeoJSON FeatureCollection response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParcelFeatureCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /parcels/typeahead:
    get:
      operationId: getTypeahead
      summary: Typeahead Address Suggestions
      description: >
        Provides real-time address autocomplete suggestions during user input.
        Returns a list of matching address strings for UI search components.
      tags:
        - Typeahead
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
        - name: query
          in: query
          required: true
          description: Partial address string to autocomplete
          schema:
            type: string
            example: "123 Main"
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 20
            default: 10
      responses:
        '200':
          description: Array of address suggestion strings
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /parcels/path:
    get:
      operationId: getParcelByPath
      summary: Parcel Path Lookup
      description: Returns a parcel record using Regrid's canonical path format
      tags:
        - Parcel Search
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
        - name: path
          in: query
          required: true
          description: Regrid canonical path string (e.g., us/ca/san-francisco/1234567890)
          schema:
            type: string
        - name: fields
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Parcel GeoJSON Feature
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParcelFeature'
        '404':
          $ref: '#/components/responses/NotFound'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /parcels/{ll_uuid}:
    get:
      operationId: getParcelByUUID
      summary: Parcel UUID Lookup
      description: Retrieves a parcel record by Regrid's internal UUID identifier
      tags:
        - Parcel Search
      parameters:
        - name: ll_uuid
          in: path
          required: true
          description: Regrid UUID for the parcel
          schema:
            type: string
            format: uuid
        - name: token
          in: query
          required: true
          schema:
            type: string
        - name: fields
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Parcel GeoJSON Feature
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParcelFeature'
        '404':
          $ref: '#/components/responses/NotFound'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /schemas/parcel:
    get:
      operationId: getParcelSchema
      summary: Parcel Schema
      description: Returns the full US parcel dataset field schema with field names and descriptions
      tags:
        - Schemas
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Parcel schema definition object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDefinition'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /schemas/building:
    get:
      operationId: getBuildingSchema
      summary: Building Footprint Schema
      description: Returns field schema for building footprint data matched to parcels
      tags:
        - Schemas
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Building schema definition object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDefinition'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /schemas/address:
    get:
      operationId: getAddressSchema
      summary: Secondary Address Schema
      description: Returns field schema for matched secondary address records
      tags:
        - Schemas
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Address schema definition object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDefinition'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /schemas/enhanced_ownership:
    get:
      operationId: getEnhancedOwnershipSchema
      summary: Enhanced Ownership Schema
      description: Returns field schema for the enhanced ownership dataset
      tags:
        - Schemas
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Enhanced ownership schema definition object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDefinition'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /schemas/zoning:
    get:
      operationId: getZoningSchema
      summary: Standardized Zoning Schema
      description: Returns field schema for standardized zoning data
      tags:
        - Schemas
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Zoning schema definition object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDefinition'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /schemas/ca:
    get:
      operationId: getCanadaSchema
      summary: Canada Parcel Schema
      description: Returns the field schema for the Canadian parcel dataset
      tags:
        - Schemas
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Canada parcel schema definition object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaDefinition'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /verse:
    get:
      operationId: getVerse
      summary: County Coverage Metadata
      description: >
        Returns county-level metadata including coverage status, field availability,
        and data refresh dates for all covered US counties and Canadian provinces.
      tags:
        - Metadata
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Array of county coverage records
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/CountyCoverage'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /usage:
    get:
      operationId: getUsage
      summary: API Usage Summary
      description: Returns current API usage summary against plan limits
      tags:
        - Metadata
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Usage summary object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageSummary'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /usage/detailed:
    get:
      operationId: getDetailedUsage
      summary: Detailed API Usage
      description: Returns granular usage breakdown by endpoint and date
      tags:
        - Metadata
      parameters:
        - name: token
          in: query
          required: true
          schema:
            type: string
        - name: start_date
          in: query
          required: false
          description: Start date for usage range (YYYY-MM-DD)
          schema:
            type: string
            format: date
        - name: end_date
          in: query
          required: false
          description: End date for usage range (YYYY-MM-DD)
          schema:
            type: string
            format: date
      responses:
        '200':
          description: Detailed usage breakdown
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailedUsage'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /report:
    post:
      operationId: submitDataReport
      summary: Submit Data Quality Report
      description: Submit a data quality report for a specific parcel
      tags:
        - Metadata
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - ll_uuid
                - issue
              properties:
                ll_uuid:
                  type: string
                  format: uuid
                  description: Regrid UUID of the parcel being reported
                issue:
                  type: string
                  description: Description of the data quality issue
                fields:
                  type: array
                  items:
                    type: string
                  description: Specific fields affected by the issue
      responses:
        '200':
          description: Report submitted successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  report_id:
                    type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  securitySchemes:
    apiToken:
      type: apiKey
      in: query
      name: token
      description: API token obtained from your Regrid account profile
  schemas:
    ParcelFeatureCollection:
      type: object
      description: GeoJSON FeatureCollection containing parcel records
      properties:
        type:
          type: string
          enum:
            - FeatureCollection
        features:
          type: array
          items:
            $ref: '#/components/schemas/ParcelFeature'
        results:
          type: integer
          description: Total number of results returned
        next:
          type: string
          nullable: true
          description: URL for the next page of results (if paginated)
    ParcelFeature:
      type: object
      description: GeoJSON Feature representing a single parcel record
      properties:
        type:
          type: string
          enum:
            - Feature
        id:
          type: string
          description: Regrid internal parcel ID
        geometry:
          $ref: '#/components/schemas/GeoJSONPolygon'
        properties:
          $ref: '#/components/schemas/ParcelProperties'
    ParcelProperties:
      type: object
      description: Parcel attribute properties in the standard schema
      properties:
        ll_uuid:
          type: string
          format: uuid
          description: Regrid universal unique identifier for the parcel
        ll_gisacre:
          type: number
          description: Parcel area in acres (GIS-calculated)
        ll_bldg_count:
          type: integer
          description: Number of buildings on the parcel
        ll_address:
          type: string
          description: Standardized parcel address
        ll_addresstype:
          type: string
          description: Address type classification
        ll_addr_unit:
          type: string
          description: Unit/suite/apt number for multi-unit parcels
        parcelnumb:
          type: string
          description: Assessor Parcel Number (APN) as reported by the county
        parcelnumb_no_formatting:
          type: string
          description: APN with formatting stripped
        state_abbr:
          type: string
          description: Two-letter state abbreviation
        county:
          type: string
          description: County name
        city:
          type: string
          description: City name
        cityname:
          type: string
          description: Formatted city name
        state2:
          type: string
          description: State name (full)
        saddno:
          type: string
          description: Street address number
        saddpref:
          type: string
          description: Street direction prefix (N, S, E, W)
        saddstr:
          type: string
          description: Street name
        saddsttyp:
          type: string
          description: Street type (St, Ave, Blvd, etc.)
        saddstsuf:
          type: string
          description: Street direction suffix
        sunit:
          type: string
          description: Unit designator
        szip:
          type: string
          description: ZIP code
        szip4:
          type: string
          description: ZIP+4 extension
        address:
          type: string
          description: Full site address string
        scity:
          type: string
          description: Site city name
        mail_address:
          type: string
          description: Owner mailing address
        mail_city:
          type: string
          description: Owner mailing city
        mail_state2:
          type: string
          description: Owner mailing state abbreviation
        mail_zip:
          type: string
          description: Owner mailing ZIP code
        mail_country:
          type: string
          description: Owner mailing country
        owner:
          type: string
          description: Primary owner name
        owner2:
          type: string
          description: Secondary owner name
        owner3:
          type: string
          description: Tertiary owner name
        owntype:
          type: string
          description: Owner type classification
        zoning:
          type: string
          description: Zoning code as reported by the assessor
        zoning_description:
          type: string
          description: Standardized zoning description
        usecode:
          type: string
          description: Land use code
        usedesc:
          type: string
          description: Land use description
        structno:
          type: integer
          description: Number of structures on the parcel
        yearbuilt:
          type: integer
          description: Year of primary structure construction
        numstories:
          type: number
          description: Number of stories in the primary structure
        numunits:
          type: integer
          description: Number of units in the building
        acres:
          type: number
          description: Parcel area in acres (assessor-reported)
        sqft:
          type: number
          description: Parcel area in square feet
        ll_gissqft:
          type: number
          description: GIS-calculated parcel area in square feet
        improvval:
          type: number
          description: Assessed improvement value
        landval:
          type: number
          description: Assessed land value
        parval:
          type: number
          description: Total assessed parcel value
        saleprice:
          type: number
          description: Most recent sale price
        saledate:
          type: string
          description: Most recent sale date
        parvaltype:
          type: string
          description: Type of assessed value (market, appraised, etc.)
        taxyear:
          type: integer
          description: Tax assessment year
        ll_stable_id:
          type: string
          description: Regrid stable identifier that persists across data updates
        path:
          type: string
          description: Regrid canonical path (e.g., us/ca/san-francisco/1234567890)
        ll_updated_at:
          type: string
          format: date-time
          description: Timestamp of last Regrid data update
    GeoJSONPolygon:
      type: object
    

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/regrid/refs/heads/main/openapi/regrid-parcel-openapi.yml