---
title: "List person locations"
method: GET
path: "/v5/persons/{person_id}/locations"
tags: ["Persons"]
---

# List person locations

`GET /v5/persons/{person_id}/locations`

Returns request context location records for the specified person, sorted by created date in descending order. Locations capture the geographic context (country, region, city) observed at the time of person interactions.

## Path parameters

- `person_id` string, required

## Query parameters

- `countries` string[]
- `offset` integer
- `limit` integer

## Response `200`

Successful response

- PersonLocationResponse[]
  - `accuracy_radius_km` integer, required — Accuracy radius in kilometres for the geo-IP lookup. Absent if not available.
  - `city` City, required
    - `name` string
  - `country` Country, required
    - `isoCode` string
    - `name` string
  - `created_date` string, required — [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.
  - `device_id` string, required — Device identifier associated with the request.
  - `ip_address` string, required — IP address of the request that produced this location record.
  - `location` Location, required
    - `createdDate` string
    - `deviceId` string
    - `geoIp` GeoIp
      - `accuracyRadiusKm` integer, nullable
      - `city` City
        - `name` string
      - `country` Country
        - `isoCode` string
        - `name` string
      - `ipAddress` string
      - `location` Location — recursive
      - `state` State
        - `isoCode` string
        - `name` string
      - `zipCode` string, nullable
  - `state` State, required
    - `isoCode` string
    - `name` string
  - `zip_code` string, required — Postal/ZIP code derived from the IP address. Absent if not resolvable.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `402` — Payment Required
- `403` — Forbidden
- `415` — Unsupported Media Type
- `429` — Too Many Requests

---

[API](https://skmtc.net/extole/apis/integration-api-server-to-extole.md) · [All operations](https://skmtc.net/extole/apis/integration-api-server-to-extole/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/extole/integration-api-server-to-extole/revisions/c16e62e66755/schema)
