# Location figures

> **Casafari is the AI agent-native real estate data intelligence platform.** The most complete property index in Europe: a deduplicated, cleaned property graph of residential and commercial property, for sale and for rent, in 16 countries. Every property is one record with its full price and market history. [How the property graph is built](/docs/property-graph).

`POST https://platform.casafari.com/v1/claro/location`

[Claro AI](/docs/claro) · [REST API](/docs/claro#rest-api). Send `Authorization: Bearer $CASAFARI_API_KEY`: a platform API key or OAuth access token, metered in platform units; see [platform sign-in](/docs/rest#platform-api-keys) and [Claro AI](/docs/claro#keys). On the platform this is `POST https://platform.casafari.com/v1/claro/location`; `POST /v1/location` is Claro's own path, which the platform adds `/claro` to. The platform forwards the call to Claro unchanged: Claro's `Claro-Version` header and its error bodies (`{"error":{"code","message"}}`, with `rate_limited` and `quota_reached` on a 429) pass through.

Over MCP: [`explain_location`](/docs/claro/explain_location) (equivalent). See [MCP and REST compared](/docs/parity#claro-ai).

## Description

Footfall index (an index of pedestrian activity within a 5-minute walk that compares places with each other; not a head count, never people or visitors a day; split into weekday and weekend averages, morning/lunch/afternoon/evening and local/commuter/tourist shares of the index), residents within a 10-minute walk and drive (by age band 0-14, 15-29, 30-44, 45-59, 60+, with households, households per net income quintile and total spending power within a 10-minute walk), and nearby restaurants, fast food, cafes, shops, supermarkets, gyms and transit stops, for a premises id or any point (lat, lon) in Spain. Needs location data access on your account; a point that is not a premises is a live call on your account's location key (about 31 Targomo operations per point). A figure Targomo has no data for is null, never 0.

## Request body

Content type `application/json`. Required. Type: `object`.

- `id` (string, optional)
- `lat` (number, optional)
- `lon` (number, optional)

## Example request

Placeholders only: replace the token and the values with your own.

```bash
curl -X POST "https://platform.casafari.com/v1/claro/location" \
  -H "Authorization: Bearer $CASAFARI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "<id>"
}'
```

## Responses

### 200 Location figures

No body.

Example from the API description:

```json
{
  "point": {
    "lat": 40.42,
    "lon": -3.7
  },
  "source": "precomputed",
  "figures": {
    "footfall_daily": 50000,
    "pop_walk10": 20000,
    "pop_drive10": 300000,
    "restaurants_walk5": 30,
    "transit_walk5": 5,
    "footfall_weekday": 52000,
    "footfall_weekend": 41000,
    "footfall_tourist": 9000,
    "pop_age_30_44": 5200,
    "households_walk10": 9000,
    "income_q3": 1800,
    "spending_power_walk10": 310000000
  }
}
```

### 400 Invalid request

Type: `object`.

- `error` (object, optional)
  - `code` (string, required)
  - `message` (string, required)

### 401 Missing or invalid key

Type: `object`.

- `error` (object, optional)
  - `code` (string, required)
  - `message` (string, required)

### 403 No access

Type: `object`.

- `error` (object, optional)
  - `code` (string, required)
  - `message` (string, required)

### 429 Rate limited

Type: `object`.

- `error` (object, optional)
  - `code` (string, required)
  - `message` (string, required)

## Related pages

- [Search commercial premises (POST /v1/search)](/docs/rest/claro/search-premises)
- [Refine a search (POST /v1/search/refine)](/docs/rest/claro/refine-search)
- [Get one premises (GET /v1/premises/{id})](/docs/rest/claro/get-premises)
- [Compare premises (POST /v1/compare)](/docs/rest/claro/compare-premises)
- [Claro AI: all its MCP tools and REST operations](/docs/claro)
- [Connect Claro to an MCP client](/docs/claro/connect)
- [MCP vs REST API compared](/docs/parity)
