---
title: "Set Property Source Tracker Region"
method: PUT
path: "/api/v1/report-ai/properties/{property_id}/source-tracker-region"
tags: ["report-ai", "properties"]
---

# Set Property Source Tracker Region

`PUT /api/v1/report-ai/properties/{property_id}/source-tracker-region`

## Request

- Base URL: `https://api.getanana.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getanana.com/api/v1/report-ai/properties/{property_id}/source-tracker-region`
- Auth: none declared

Admin assignment of the property's Source Tracker destination (soft slug).

Dedicated setter so a normal property PUT never clobbers the mapping. The slug is a
soft reference (no FK); we validate it resolves to an existing region at set-time and
reject unknown slugs. ``region_slug=None`` clears the mapping. Until a slug is
assigned, the Report Card's destination benchmark stays ``unmapped``.

## Path parameters

- `property_id` string, uuid, required

## Request body

- PropertyRegionAssignment: Admin assignment of a property's Source Tracker destination (soft slug). ``None`` clears the mapping. Validated against ``tracker_regions.slug`` at set-time.
  - `region_slug` string, nullable

## Response `200`

Successful Response

- PropertyRead: Schema for reading a Property.
  - `id` string, uuid, required
  - `code` string, required
  - `name` string, required
  - `latitude` number, nullable
  - `longitude` number, nullable
  - `timezone` string, nullable
  - `country_code` string, nullable
  - `currency` string, required
  - `created_at` string, date-time, required
  - `google_place_id` string, nullable
  - `address` string, nullable
  - `star_rating` number, nullable
  - `review_count` integer, nullable
  - `website_url` string, nullable
  - `property_type` string, nullable
  - `city` string, nullable
  - `positioning_tags` string[]
  - `source_tracker_region_slug` string, nullable
  - `business_contacts` BusinessContact[]
    - `name` string, nullable
    - `email` string, nullable
    - `phone` string, nullable
    - `label` string, nullable

## Other responses

- `400`: Unknown Source Tracker region slug
- `403`: Missing the required permission
- `404`: Property not found
- `422`: Validation Error

## Changes

> 55 revisions in range; 1 not diffed.

- **2026-10-16** `b8485fa8f56e`: 1 info
  - added the optional property `business_contacts` to the response with the `200` status
- **2026-09-03** `d65b8fefae34`: 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Operation history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/report-ai/properties/:property_id/source-tracker-region/put.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/4d9d38769a75?raw)
