> ## 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.

# Get a package

> Retrieve full configuration for one proxy package: status, network types, tiers, traffic usage (in bytes), the package password used for proxy authentication, connection limits, allowed IPs, port and target rules, and enabled protocols.

If the API key is restricted to specific packages, requesting a package outside the restriction returns 404 (not 403), so the existence of other packages is not revealed.

Requires the `proxy:packages:read` scope.



## OpenAPI

````yaml api/openapi.json GET /v1/proxy/packages/{package_id}
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}:
    get:
      tags:
        - Packages
      summary: Get package details
      description: >-
        Retrieve full configuration for one proxy package: status, network
        types, tiers, traffic usage (in bytes), the package password used for
        proxy authentication, connection limits, allowed IPs, port and target
        rules, and enabled protocols.


        If the API key is restricted to specific packages, requesting a package
        outside the restriction returns 404 (not 403), so the existence of other
        packages is not revealed.


        Requires the `proxy:packages:read` scope.
      operationId: get_package_detail_v1_proxy_packages__package_id__get
      parameters:
        - name: package_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the proxy package
            title: Package Id
          description: The ID of the proxy package
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PackageDetailResponse'
              example:
                id: b2f0c3d4-e5a6-4b7c-8d9e-0f1a2b3c4d5e
                name: Residential - EU scraping
                status: active
                status_reason: null
                created_at: '2026-03-15T12:00:00Z'
                types:
                  - wifi
                tiers:
                  - 1
                  - 2
                  - 3
                allowed_countries: null
                traffic_limit: 500000000000
                traffic_spent: 120000000000
                traffic_left: 380000000000
                password: aB3dE5fG7h
                max_connections: 300
                allowed_users: null
                allowed_ips:
                  - 203.0.113.7
                tcp_available_ports:
                  - 80
                  - 443
                  - 1024-65535
                udp_available_ports: []
                tcp_allowed_ports: []
                udp_allowed_ports: []
                ports_mode: inherit
                tcp_blocked_ports:
                  - 25
                udp_blocked_ports: []
                dns_resolver: remote
                auth_method: pwd
                http_allowed: true
                https_allowed: true
                socks5_tcp_allowed: true
                socks5_udp_allowed: false
                allowed_targets: []
                blocked_targets: []
                targets_mode: inherit
                special_allowed_targets: []
                allowed_target_types: null
        '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:
    PackageDetailResponse:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        status:
          type: string
          title: Status
          description: >-
            Display status: `active`, `paused` (manually paused), `limited`
            (traffic limit reached), `suspended`, or `deleted`.
        status_reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Status Reason
          description: >-
            Why the package is not active: `user_paused`,
            `traffic_limit_reached`, `out_of_credits`, `account_suspended`,
            `plan_limit_exceeded`, or `null`.
        created_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created At
        types:
          items:
            $ref: '#/components/schemas/ProxyPackageType'
          type: array
          title: Types
          default: []
        tiers:
          items:
            type: integer
          type: array
          title: Tiers
          default: []
        allowed_countries:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Allowed Countries
        traffic_limit:
          anyOf:
            - type: integer
            - type: 'null'
          title: Traffic Limit
        traffic_spent:
          anyOf:
            - type: integer
            - type: 'null'
          title: Traffic Spent
        password:
          anyOf:
            - type: string
            - type: 'null'
          title: Password
        max_connections:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Connections
        allowed_users:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Allowed Users
        allowed_ips:
          items:
            type: string
          type: array
          title: Allowed Ips
        tcp_available_ports:
          items:
            anyOf:
              - type: integer
              - type: string
          type: array
          title: Tcp Available Ports
        udp_available_ports:
          items:
            anyOf:
              - type: integer
              - type: string
          type: array
          title: Udp Available Ports
        tcp_allowed_ports:
          items:
            anyOf:
              - type: integer
              - type: string
          type: array
          title: Tcp Allowed Ports
        udp_allowed_ports:
          items:
            anyOf:
              - type: integer
              - type: string
          type: array
          title: Udp Allowed Ports
        ports_mode:
          type: string
          title: Ports Mode
        tcp_blocked_ports:
          items:
            anyOf:
              - type: integer
              - type: string
          type: array
          title: Tcp Blocked Ports
        udp_blocked_ports:
          items:
            anyOf:
              - type: integer
              - type: string
          type: array
          title: Udp Blocked Ports
        dns_resolver:
          type: string
          title: Dns Resolver
        auth_method:
          type: string
          title: Auth Method
        http_allowed:
          type: boolean
          title: Http Allowed
          default: true
        https_allowed:
          type: boolean
          title: Https Allowed
          default: true
        socks5_tcp_allowed:
          type: boolean
          title: Socks5 Tcp Allowed
          default: true
        socks5_udp_allowed:
          type: boolean
          title: Socks5 Udp Allowed
          default: true
        allowed_targets:
          items:
            type: string
          type: array
          title: Allowed Targets
        blocked_targets:
          items:
            type: string
          type: array
          title: Blocked Targets
        targets_mode:
          type: string
          title: Targets Mode
        special_allowed_targets:
          items:
            type: string
          type: array
          title: Special Allowed Targets
        allowed_target_types:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Allowed Target Types
        traffic_left:
          anyOf:
            - type: integer
            - type: 'null'
          title: Traffic Left
          description: Calculate the remaining traffic for the package.
          readOnly: true
      type: object
      required:
        - id
        - name
        - status
        - ports_mode
        - dns_resolver
        - auth_method
        - targets_mode
        - traffic_left
      title: PackageDetailResponse
      description: >-
        Response model for package detail endpoint (GET
        /v1/proxy/packages/{package_id}).
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ProxyPackageType:
      type: string
      enum:
        - mix
        - wifi
        - mobile
      title: ProxyPackageType
    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:
    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>`.

````