# GET /distributor-portal/out-of-territory

Your units seen outside your territory: counts, countries, dates. Never personal data nor a brand-internal note.

Source: https://docs.sealtrust.io/en/reference/get-distributor-portal-out-of-territory/

---

You read the countries where units of your distributor were scanned outside
your contractual territory, with an occurrence count and the dates of the
first and last sighting.

⛔ Three things this call never returns: the unit's serial number, the
brand-internal note a brand may add to a grey-market alert
(`GrayMarketAlert.note`), and any mention of another distributor. What you
read here is counts, countries and dates — nothing more.

⚠️ Your brand decides whether this call shows anything at all. Until it
turns this view on for its distributors, it answers an empty list — not an
error — because showing it unconditionally would tip off the very
distributor a brand suspects of leaking stock. Even once turned on, an
alert the brand has already dismissed, or one it is still investigating,
never reaches you here: only an alert the brand reads as "new" or
"confirmed" does.

> [!INFO] Multi-brand: one `brand_id` at a time
> At several brands, this call answers for ONE brand (`brand_id`), never
> the merge of every one. The opt-in above is also per brand: a brand that
> turned the view on does not turn it on at any other brand you are a
> contact at.

## Authorization

Session of a distributor contact account. See
[`GET /distributor-portal/me`](/en/reference/get-distributor-portal-me/).

## Rate limit

30 calls a minute, shared with the rest of the distributor portal.

## Query parameters

| Parameter | Type | Description |
| --- | --- | --- |
| `brand_id` | `integer` | Which brand to read. Required when you are an active contact at several brands; optional otherwise. |

## Example request

```bash
curl -i "https://api.sealtrust.io/v1/distributor-portal/out-of-territory" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.0000000000000000000000000000.0000000000000000000000000000"
```

## Example response

```json
{
  "items": [
    {
      "country": "PL",
      "occurrences": 3,
      "first_seen_at": "2026-09-20T14:02:00Z",
      "last_seen_at": "2026-10-04T11:17:00Z"
    }
  ],
  "total_alerts": 1,
  "total_occurrences": 3
}
```

### Response fields

| Field | Type | Description |
| --- | --- | --- |
| `items` | `array` | One entry per country where an alert was opened on a unit of your distributor. |
| `items[].occurrences` | `integer` | Cumulative sightings for this country, folded alerts included. |
| `total_alerts` | `integer` | Number of distinct alerts (one alert per unit and country). |
| `total_occurrences` | `integer` | Sum of sightings, across every alert. |

An empty list means no unit of your distributor has been seen outside its
territory yet.

## Errors

| Code | Condition | What to do |
| --- | --- | --- |
| 401 | Token missing, unreadable or expired. | Sign in again. |
| 403 | Account with no active distributor access at all, at any brand. | See [`GET /distributor-portal/me`](/en/reference/get-distributor-portal-me/). |
| 400 | Several brands accessible and `brand_id` omitted. | Call [`GET /distributor-portal/brands`](/en/reference/get-distributor-portal-brands/) and pass `brand_id`. |
| 404 | `brand_id` given, but no active contact for that brand (including a brand that does not exist). | Check the id. |
| 429 | Rate limit exceeded. | Wait the delay in `Retry-After`. |
