The API reference is the source of truth for field types and examples. This page explains how the models relate.
Core model relationships
Section titled “Core model relationships”| Model | Purpose |
|---|---|
User | Authenticated account, balance, limits, discount, and preferences |
UserPreferences | Default VPN host, proxy host, and proxy protocol |
Plan | Available product with country, inventory, VPN capability, and tarifications |
PlanTarification | Duration in seconds, traffic in MB, and price in cents |
Port | Mobile proxy endpoint, status, IP, plan, access settings, and credentials |
PortPlan | The plan currently applied to one port |
PortCredentials | Source IP allowlist and login/password pairs |
GeoIP | Location and ISP data for the current port IP |
PortLog | Timestamped action, cause, source, and extra event data |
PaymentHistoryRecord | Status and account balance movement in cents |
Server | Server hostname and country code |
Error | Human-readable error message |
Important units
Section titled “Important units”- Money uses integer cents.
- Traffic uses megabytes.
- Plan duration and automatic reset intervals use seconds.
- Timestamps use RFC 3339-style strings.
- Country values are codes; preserve the value returned by the API.
Port statuses
Section titled “Port statuses”The v2 contract lists active, reset, suspended, disconnected, and outoftraffic. Clients should display unknown future statuses safely instead of failing to parse the whole port.
A status describes the current port snapshot. It does not by itself prove that a requested IP rotation has completed; compare ip or consume port.ip_changed events.
Identifiers and tokens
Section titled “Identifiers and tokens”| Value | Where to use it |
|---|---|
Port.port | Pass this public port number as {id} in /ports/{id} routes |
{id} | Path placeholder; for public port routes it contains Port.port |
resetToken | Pass only as {token} in GET /tokens/{token} |
| Internal object ID or service ID | Do not use in public port routes |
All routes remain scoped to the authenticated account. Neither a port number nor resetToken replaces the bearer API token.