---
title: "Search for street intersections"
method: POST
path: "/v1/intersections/search"
tags: ["Intersections"]
---

# Search for street intersections

`POST /v1/intersections/search`

## Request

- Base URL: `https://geo.thinair.co`
- URL: `https://geo.thinair.co/v1/intersections/search`
- Auth: HTTP bearer

Search for street-intersection candidates from a free-text cross-street query, scoped by optional locality/region/country. Returns ranked candidates plus a GeoJSON FeatureCollection. Costs 1 quota unit.

## Request body

- IntersectionSearchRequest: Search for intersection candidates from a free-text cross-street query.
  - `text` string, required: Free-text intersection query (e.g. 'Broadway and 42nd Street').
  - `locality` string: City / town hint.
  - `region` string: State / province hint.
  - `country` string: ISO 3166-1 alpha-2/alpha-3 country code to scope results.
  - `size` integer: Maximum candidates to return (1–40). Defaults to 5 in the service layer.

## Response `200`

Intersection search results.

- IntersectionSearchResponse
  - `features` IntersectionSearchFeature[], required
    - `id` string: Stable public ThinAir id (`ta_intersection_<key>` / `ta_place_<key>`). Resolvable via `GET /v1/place`.
    - `name` string
    - `label` string
    - `confidence` number
    - `layer` string
    - `intersection_type` 'corner' | 'interchange'
    - `intersection_precision` 'geometric_crossing' | 'tangent_intersection' | 'centroid_cluster' | 'approximate'
    - `street_kind` 'street' | 'route'
    - `cross_street_kind` 'street' | 'route'
    - `street_route` string
    - `cross_street_route` string
    - `place_type` string, required
    - `method` string, required
    - `lat` number, required
    - `lon` number, required
  - `meta` IntersectionSearchMeta, required
    - `upstream_ms` number, required
    - `feature_count` number, required
    - `cacheHit` boolean
    - `bbox` unknown[]
      - unknown
    - `query` string, required
    - `mode` 'geocode' | 'reverse', required
  - `geojson` IntersectionSearchFeatureCollection, required
    - `type` 'FeatureCollection', required
    - `features` object[], required
      - `type` 'Feature', required
      - `geometry` object, required
        - `type` 'Point', required
        - `coordinates` unknown[], required
          - unknown
      - `properties` object, required
  - `warnings` string[]
  - `upstream_error` string, nullable

## Other responses

- `400`: Invalid request body.
- `429`: Quota exceeded for this tenant.
- `502`: Upstream geocoder unavailable.

---

[API](https://skmtc.dev/thinair/apis/thinair-geo-api.md) · [All operations](https://skmtc.dev/thinair/apis/thinair-geo-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thinair/apis/thinair-geo-api/revisions/8fac2d5e4b34?raw)
