---
title: "Get a location"
method: GET
path: "/v1/location/{location_id}"
tags: ["Locations"]
---

# Get a location

`GET /v1/location/{location_id}`

## Request

- Base URL: `https://api.navigateai.co`
- URL: `https://api.navigateai.co/v1/location/{location_id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/navigate/apis/navigateai-api/docs/v1/location/:location_id/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `location_id` string, required

## Response `200`

OK

- LocationWithAttributesResponse
  - `location` LocationWithAttributesExternalSchema, required: A location plus the attributes recorded for the property itself. Separate from LocationExternalSchema because that schema is also embedded in scope and webhook payloads, which do not load attributes — and an empty list there would read as "nothing recorded" rather than "not included". The create and update responses stay on the base schema for the same reason: attributes are read-only derived data, not part of a write's echo.
    - `id` string, required
    - `address_1` string, required
    - `address_2` string, nullable, required
    - `city` string, required
    - `state` string, required
    - `zip_code` string, required
    - `lat` number, nullable, required
    - `lon` number, nullable, required
    - `reference_key` string, nullable, required: Optional unique identifier for this location in your system.
    - `market_id` string, nullable, required: ID of the market this location belongs to.
    - `market_name` string, nullable, required: Deprecated: prefer market_id. Name of the geographic market this location belongs to.
    - `custom_fields` object, nullable, required: Arbitrary key-value metadata. Supports partial updates.
    - `attributes` AttributeValueExternalSchema[]: Attribute values recorded for the property. Only attributes with recorded values appear; cleared values are omitted. Replace the entire list when syncing instead of merging by `slug`.
      - `attribute_id` string, required: ID of the attribute definition. It remains the same when the recorded value changes.
      - `attribute_slug` string, required: Stable key for the attribute within your organization. Use it to match attributes; display names can change.
      - `value_type` string, required: The attribute's declared type, which fixes how `value` is encoded. Current types are `bool`, `int`, `float`, `decimal`, `string`, `dimension_2d`, and `json_object`. A `decimal` is serialized as a string to preserve precision. A `dimension_2d` is a `[length, width]` pair, with the unit given in `unit`. New types may be added; handle unrecognized types.
      - `value` union, required: The recorded value, encoded according to `value_type`. A null value means the value was recorded as explicitly none, distinct from the attribute being absent from the list.
        - boolean
        - integer
        - number
        - string
        - JsonValue[]
          - unknown
        - object
      - `unit` string, nullable, required: Unit of measure for `value`, e.g. `inches` for a `dimension_2d`. Null when the value carries no unit.
      - `reasoning` string, nullable, required: Short explanation of how the value was determined. Null when none was recorded.
      - `evidence` ImageEvidenceExternalSchema[]: Images supporting the value, in ranked order.
        - `type` 'image'
        - `image_id` string, required: Use with the Get Image endpoint to retrieve the image file.
        - `reference_key` string, nullable: For an image from Upload an image, the `reference_key` you sent. Images captured in the NavigateAI app can have a value that the app set.
        - `visit_id` string, nullable: The visit this image was captured during. Null for images from Upload an image.
        - `is_selected` boolean: Whether this image was explicitly selected as evidence.
        - `is_starred` boolean: Whether this image was starred as the primary evidence photo.
      - `recorded_by_visit_id` string, nullable, required: The most recent completed visit that recorded this value, including a visit that recorded it unchanged. Null when the value was recorded outside a visit.
      - `recorded_at` string, date-time, nullable, required: When the value was last recorded: the recording visit's completion time, or the time of the write for a value recorded outside a visit.

---

[API](https://skmtc.dev/navigate/apis/navigateai-api.md) - [All operations](https://skmtc.dev/navigate/apis/navigateai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/navigate/apis/navigateai-api/revisions/912b48581de7?raw)
