---
title: "Address / place / parcel autocomplete"
method: GET
path: "/api/v1/search/autocomplete"
tags: ["Search"]
---

# Address / place / parcel autocomplete

`GET /api/v1/search/autocomplete`

## Request

- Base URL: `https://propraven.com`
- URL: `https://propraven.com/api/v1/search/autocomplete`
- Auth: HTTP bearer

Fast prefix-matched autocomplete: returns cities/places, matching parcels, and Mapbox-geocoded addresses for the prefix. Three independent tiers run in parallel with per-tier timeouts so a slow DB query never blocks fast Mapbox results. Use for type-ahead UIs and address entry; for full-detail lookup use parcel lookup.

## Query parameters

- `q` string, required

## Response `200`

Autocomplete results returned. Empty arrays if `q` is too short or yields no matches.

- AutocompleteResult
  - `locations` AutocompleteLocation[], required
    - `name` string
    - `type` 'city'
    - `state` string: USPS 2-letter state code (e.g. "NC").
    - `city` string
    - `lat` number, double, nullable
    - `lng` number, double, nullable
    - `parcel_count` integer
  - `parcels` AutocompleteParcel[], required
    - `parcel_id` string, required
    - `address` string, nullable, required
    - `city` string, nullable, required
    - `state_fips` string, required
    - `state` string, nullable, required: USPS 2-letter state code of `state_fips` (e.g. "NC").
    - `county_fips` string, required
    - `owner_name` string, nullable, required
    - `latitude` number, nullable, required
    - `longitude` number, nullable, required
    - `total_assessed_value` integer, nullable, required
    - `type` 'parcel'
  - `addresses` AutocompleteAddress[], required
    - `name` string, nullable, required
    - `type` string, nullable, required
    - `lat` number, nullable, required
    - `lng` number, nullable, required
    - `south` number, nullable, required
    - `north` number, nullable, required
    - `west` number, nullable, required
    - `east` number, nullable, required
  - `degraded` boolean, required
  - `owner_name_search` object
    - `status` string, required
    - `code` string, required
    - `reason` string, required
    - `note` string, required
  - `people_fields` object
    - `status` string, required
    - `code` string, required
    - `reason` string, required
    - `note` string, required

## Other responses

- `400`: A query or body parameter is invalid. Nothing was read or charged.
- `401`: Missing, malformed or invalid credential.
- `405`: The endpoint exists but does not support this method. `Allow` lists the methods it does.
- `429`: Rate limit exceeded.
- `500`: Unexpected server error. The body never carries database or driver text.

---

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