---
title: "Update geographic permissions"
method: PUT
path: "/api/space/geographic_permissions"
tags: ["Space"]
---

# Update geographic permissions

`PUT /api/space/geographic_permissions`

Replaces the selected countries with the array in the request. Codes outside
`supported_countries` are dropped; if nothing supported remains, the request is
rejected with `no_supported_countries`.

Updating the selection additionally requires that the space is allowed to edit
international settings. A space that is not receives `401` even when the token holder
is an owner or admin.

#### Permissions

Authenticate with a [Personal access token](/docs/apis/authorization#personal-access-tokens) whose holder is an owner or admin of the space. A project API token is not accepted on this endpoint, and a Personal access token has no scopes: the holder's role in the space is the whole authorization decision.

## Request body

- SpaceUpdateGeographicPermissionsRequest — Request body for replacing the selected countries.
  - `countries` string[], required — The ISO 3166-1 alpha-2 country codes to select. The array replaces the current selection. Codes outside `supported_countries` are dropped, and if nothing supported remains the request is rejected with `no_supported_countries`.

## Response `200`

The request has succeeded.

- SpaceGeographicPermission — The countries the space has selected for international traffic, and the countries it may select.
  - `type` 'geographic_permission', required — The object type. Always `geographic_permission`.
  - `countries` string[], required — The selected ISO 3166-1 alpha-2 country codes.
  - `supported_countries` string[], required — The ISO 3166-1 alpha-2 country codes that may be selected.

## Other responses

- `400` — The request body is not valid JSON.
- `401` — The credential is missing, unknown, or revoked; its holder is not a member of the space in the subdomain; or the member is not an owner or admin. The body is the plain text `Unauthorized`. An unverified space instead receives the JSON body `{"message": "Please validate a phone number to access your account."}` on every endpoint under `/api/space`.
- `422` — `countries` was sent as something other than an array (`countries_must_be_array`), or none of the submitted countries are supported for this space (`no_supported_countries`).
- `500` — An internal server error occurred.
- `502` — An upstream billing or usage reporting service was unavailable. The body is empty; retry later.

## Changes

> 161 revisions in range; 3 could not be searched.

- **2026-09-15** `45bac4fd93ab` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/signalwire/apis/signalwire-rest-api/changes/api/space/geographic_permissions/put.md)

---

[API](https://skmtc.dev/signalwire/apis/signalwire-rest-api.md) · [All operations](https://skmtc.dev/signalwire/apis/signalwire-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/signalwire/apis/signalwire-rest-api/revisions/20ee0f568ece?raw)
