> ## Documentation Index
> Fetch the complete documentation index at: https://developers.soax.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List package regions

> List regions available in a country for this package. `rank` orders locations by available pool size (1 = largest) and `volume_level` is a coarse 1–5 indicator of relative IP volume. Use `code` values as the `region` parameter of the connection-string endpoint.

Requires the `proxy:packages:read` scope.



## OpenAPI

````yaml api/openapi.json GET /v1/proxy/packages/{package_id}/locations/countries/{cc}/regions
openapi: 3.1.0
info:
  title: SOAX API
  version: v1
  description: >-
    Programmatic access to your SOAX account: manage proxy packages, generate
    connection strings, browse available locations, pull usage analytics, and
    manage API keys. All endpoints are served over HTTPS and return JSON.
servers:
  - url: https://api.platform.soax.com
security:
  - bearerAuth: []
tags:
  - name: API Keys
    description: >-
      Self-service management of the API keys used to authenticate with this
      API.
  - name: Packages
    description: >-
      Read proxy packages, build proxy connection strings, and rotate package
      passwords.
  - name: Locations
    description: >-
      Location reference data: tiers, countries, regions, cities, ISPs, ASNs,
      and ZIP codes.
  - name: Account
    description: Read-only account, credit, and subscription information.
  - name: Analytics
    description: Usage analytics for your proxy packages.
paths:
  /v1/proxy/packages/{package_id}/locations/countries/{cc}/regions:
    get:
      tags:
        - Packages
        - Locations
      summary: Get available regions for a country in a package
      description: >-
        List regions available in a country for this package. `rank` orders
        locations by available pool size (1 = largest) and `volume_level` is a
        coarse 1–5 indicator of relative IP volume. Use `code` values as the
        `region` parameter of the connection-string endpoint.


        Requires the `proxy:packages:read` scope.
      operationId: >-
        get_package_country_regions_v1_proxy_packages__package_id__locations_countries__cc__regions_get
      parameters:
        - name: package_id
          in: path
          required: true
          schema:
            type: string
            description: The package ID
            title: Package Id
          description: The package ID
        - name: cc
          in: path
          required: true
          schema:
            type: string
            description: The country code
            title: Cc
          description: The country code
        - name: network
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                enum:
                  - wifi
                  - mobile
                  - mix
              - type: 'null'
            description: >-
              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.
            title: Network
          description: >-
            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.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegionsListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenScope'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    RegionsListResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/LocationResponse'
          type: array
          title: Data
      type: object
      required:
        - data
      title: RegionsListResponse
      description: Response schema for list of regions in a country.
      example:
        data:
          - code: ca
            name: California
            rank: 1
            volume_level: 95
          - code: tx
            name: Texas
            rank: 2
            volume_level: 92
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    LocationResponse:
      properties:
        code:
          type: string
          title: Code
        name:
          type: string
          title: Name
        rank:
          type: integer
          title: Rank
        volume_level:
          type: integer
          title: Volume Level
      type: object
      required:
        - code
        - name
        - rank
        - volume_level
      title: LocationResponse
      description: Response schema for a location result.
      example:
        code: as1234
        name: AS1234
        rank: 1
        volume_level: 5
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  responses:
    BadRequest:
      description: >-
        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.
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                type: string
              error:
                type: string
          example:
            detail: >-
              Invalid status value: archived. Valid values are: active, deleted,
              limited, paused, suspended
    Unauthorized:
      description: Missing, invalid, or revoked API key.
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                type: string
          example:
            detail: Invalid API key
    ForbiddenScope:
      description: The API key does not carry the scope this endpoint requires.
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                type: string
          example:
            detail: 'Missing required scope: proxy:packages:read'
    NotFound:
      description: >-
        The resource does not exist, belongs to another organization, or is
        outside the API key's package restriction.
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                type: string
          example:
            detail: Package not found
    RateLimited:
      description: >-
        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.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
          example:
            error: 'Rate limit exceeded: 5 per 1 second'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key secret (starts with `s_live_`). Create keys in the dashboard
        under **Settings → API keys**, or via `POST /v1/api-keys/`. Send it as
        `Authorization: Bearer <secret>`.

````