---
title: "Update geo policy"
method: PATCH
path: "/v3/geo-policies/{id}"
tags: ["Labeling Curation"]
---

# Update geo policy

`PATCH /v3/geo-policies/{id}`

## Path parameters

- `id` string, uuid, required

## Request body

- GeoPolicyUpdateRequest
  - `chainId` integer, nullable
  - `productId` string, nullable
  - `vaultAddress` string, nullable
  - `assetAddress` string, nullable
  - `assetSymbols` string[], nullable
  - `assetSymbolRegex` string, nullable
  - `assetNames` string[], nullable
  - `assetNameRegex` string, nullable
  - `countries` string[]
  - `policyType` 'block' | 'restrict'
  - `reason` string, nullable

## Response `200`

Updated geo policy.

- object
  - `data` GeoPolicy, required
    - `id` string, uuid, required
    - `chainId` integer, nullable
    - `productId` string, nullable
    - `vaultAddress` string, nullable
    - `assetAddress` string, nullable
    - `assetSymbols` string[], nullable — Case-insensitive exact symbol matchers.
    - `assetSymbolRegex` string, nullable — Case-insensitive regular expression matched against token symbols.
    - `assetNames` string[], nullable — Case-insensitive exact token-name matchers.
    - `assetNameRegex` string, nullable — Case-insensitive regular expression matched against token names.
    - `countries` string[], required — As authored — ISO 3166-1 alpha-2 codes and group aliases (`EU`, `EEA`, `EFTA`). Unknown entries are rejected at write time.
    - `countriesResolved` string[], required — Read-time expansion of `countries` — group aliases replaced by their current member codes, deduplicated and sorted. Consumers evaluate against this list; a rule authored with an alias tracks the bloc's current membership.
    - `policyType` 'block' | 'restrict', required
    - `reason` string, nullable
    - `createdAt` string, date-time, required
  - `meta` PaginationMeta, required
    - `total` integer — Exact total count when the endpoint provides one.
    - `hasMore` boolean — Indicates whether another page exists beyond the current page.
    - `offset` integer
    - `limit` integer — Echoed page size after endpoint-side clamping.
    - `timestamp` string, date-time, required
    - `chainId` string — Comma-separated chain IDs for multi-chain responses.
    - `degradedProviders` string[] — Live providers whose data is incomplete in this response.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `422` — Validation error

---

[API](https://skmtc.dev/euler/apis/euler-data-api-v3.md) · [All operations](https://skmtc.dev/euler/apis/euler-data-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/euler/euler-data-api-v3/revisions/9573a5fbd4a6/schema)
