---
title: "Get available cities for a region in a country for a package"
method: GET
path: "/v1/proxy/packages/{package_id}/locations/countries/{cc}/cities"
tags: ["Packages", "Locations"]
---

# Get available cities for a region in a country for a package

`GET /v1/proxy/packages/{package_id}/locations/countries/{cc}/cities`

## Request

- Base URL: `https://api.platform.soax.com`
- URL: `https://api.platform.soax.com/v1/proxy/packages/{package_id}/locations/countries/{cc}/cities`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/soax/apis/soax-api/docs/v1/proxy/packages/:package_id/locations/countries/:cc/cities/get.ts> (a function with typed inputs; its response is checked against the schema)

List cities available in a country (optionally narrowed to a region) for this package. Use `code` values as the `city` parameter of the connection-string endpoint.

Requires the `proxy:packages:read` scope.

## Path parameters

- `package_id` string, required: The package ID
- `cc` string, required: The country code

## Query parameters

- `network` 'wifi' | 'mobile' | 'mix', nullable: Filter by network type. Valid values are the package's own types (`wifi`, `mobile`, or `mix`); anything else returns 400 listing the networks available on the package.
- `region` string, nullable: Narrow results to one region (use a `code` from the regions endpoint).

## Response `200`

Successful Response

- CitiesListResponse: Response schema for list of cities in a country for a package.
  - `data` LocationResponse[], required
    - `code` string, required
    - `name` string, required
    - `rank` integer, required: Position when locations are ordered by available pool size (1 = largest).
    - `volume_level` integer, required: Coarse 1–3 indicator of relative IP volume: 3 = highest, 1 = lowest.

## Other responses

- `400`: A parameter value is invalid. Depending on which validation layer rejects the request, the message is under `detail` (endpoint-level checks) or `error` (service-level checks); read `detail ?? error`. The message names the parameter and lists valid values where applicable.
- `401`: Missing, invalid, or revoked API key.
- `403`: The API key does not carry the scope this endpoint requires.
- `404`: The resource does not exist, belongs to another organization, or is outside the API key's package restriction.
- `422`: Validation Error
- `429`: Rate limit exceeded (5 requests/second per API key, 500 requests/minute per IP). The response includes `Retry-After` (seconds), `RateLimit-Limit`, `RateLimit-Remaining`, and `RateLimit-Reset` (Unix time) headers — wait `Retry-After` seconds and retry.

---

[API](https://skmtc.dev/soax/apis/soax-api.md) - [All operations](https://skmtc.dev/soax/apis/soax-api/llms.txt) - [OpenAPI document](https://skmtc.dev/soax/apis/soax-api/revisions/2abdaa934277?raw)
