# Models

## The ApiSuccess object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"ApiSuccess":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}}
```

## The ApiError object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"ApiError":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}}
```

## The PurchaseRequest object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"PurchaseRequest":{"type":"object","properties":{"product":{"type":"string"},"location":{"type":"string","nullable":true},"cycle":{"type":"string"},"quantity":{"type":"integer","minimum":1,"default":1},"promo_code":{"type":"string","nullable":true},"auto_renewal":{"type":"boolean","default":false}},"required":["product","cycle"]}}}}
```

## The PurchaseRequestDcIsp object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"PurchaseRequestDcIsp":{"type":"object","description":"Purchase for Datacenter/ISP — the location field is required.","properties":{"product":{"type":"string","enum":["Datacenter Proxy","ISP Proxy"]},"location":{"type":"string"},"cycle":{"type":"string"},"quantity":{"type":"integer","minimum":1,"default":1},"promo_code":{"type":"string","nullable":true},"auto_renewal":{"type":"boolean","default":false}},"required":["product","location","cycle"]}}}}
```

## The PurchaseRequestResidentialStandard object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"PurchaseRequestResidentialStandard":{"type":"object","description":"Purchase for Standart Residential Proxy — location is not required; the cycle is fixed (lifetime).","properties":{"product":{"type":"string","enum":["Standart Residential Proxy"]},"quantity":{"type":"integer","minimum":1,"default":1},"promo_code":{"type":"string","nullable":true}},"required":["product"]}}}}
```

## The PurchaseRequestResidentialPremium object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"PurchaseRequestResidentialPremium":{"type":"object","description":"Purchase for Premium Residential Proxy — location is not required; the cycle is fixed (lifetime).","properties":{"product":{"type":"string","enum":["Premium Residential Proxy"]},"quantity":{"type":"integer","minimum":1,"default":1},"promo_code":{"type":"string","nullable":true}},"required":["product"]}}}}
```

## The PurchaseRequestResidentialUnmetered object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"PurchaseRequestResidentialUnmetered":{"type":"object","description":"Purchase for Unmetered Residential proxy — supports auto-renewal.","properties":{"product":{"type":"string","enum":["Unmetered Residential proxy"]},"cycle":{"type":"string"},"promo_code":{"type":"string","nullable":true},"auto_renewal":{"type":"boolean","default":false}},"required":["product","cycle"]}}}}
```

## The PurchaseResponse object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"PurchaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"order_id":{"type":"integer"}},"required":["success","message","order_id"]}}}}
```

## The ActiveProxyItem object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"ActiveProxyItem":{"type":"object","properties":{"ip":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"},"http_port":{"type":"integer"},"socks_port":{"type":"integer"},"until":{"type":"string","description":"ISO8601/string date"},"status":{"type":"string"}},"required":["ip","username","password","http_port","socks_port","until","status"]}}}}
```

## The AvailableCountRequest object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"AvailableCountRequest":{"type":"object","properties":{"country":{"type":"string"},"product":{"type":"string"}},"required":["country","product"]}}}}
```

## The AvailableCountResponse object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"AvailableCountResponse":{"type":"object","properties":{"country":{"type":"string"},"product":{"type":"string"},"amount":{"type":"integer"}},"required":["country","product","amount"]}}}}
```

## The ApiMeResponse object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"ApiMeResponse":{"type":"object","properties":{"email":{"type":"string"},"active_orders":{"type":"integer"},"wallet_balance":{"type":"integer","description":"in cents"}},"required":["email","active_orders","wallet_balance"]}}}}
```

## The ProductWithCycles object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"ProductWithCycles":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"cycles":{"type":"array","items":{"type":"string"}}},"required":["name","cycles"]}}}}
```

## The AddBandwidthRequest object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"AddBandwidthRequest":{"type":"object","properties":{"amount":{"type":"integer","description":"Amount in GB"},"promo_code":{"type":"string","nullable":true}},"required":["amount"]}}}}
```

## The GetSubUsersRequest object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"GetSubUsersRequest":{"type":"object","properties":{"offset":{"type":"integer","description":"Offset (default 0)"},"limit":{"type":"integer","description":"Page size (default 20)"}}}}}}
```

## The EditSubUserPayload object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"EditSubUserPayload":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}}}}
```

## The CreateSubUserPayload object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"CreateSubUserPayload":{"type":"object","properties":{"proxy_type":{"type":"string"},"name":{"type":"string"},"data":{"type":"integer","description":"Amount in GB"}},"required":["proxy_type","name","data"]}}}}
```

## The ChangeSubUserPasswordPayload object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"ChangeSubUserPasswordPayload":{"type":"object","properties":{"proxy_type":{"type":"string"}},"required":["proxy_type"]}}}}
```

## The ModifyTrafficPayload object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"ModifyTrafficPayload":{"type":"object","properties":{"proxy_type":{"type":"string"},"data":{"type":"integer","description":"Amount in GB"}},"required":["proxy_type","data"]}}}}
```

## The Country object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"Country":{"type":"object","properties":{"code":{"type":"string","maxLength":10,"description":"ISO country code"},"name":{"type":"string","maxLength":255,"description":"Country name"}},"required":["code","name"]}}}}
```

## The Region object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"Region":{"type":"object","properties":{"code":{"type":"string","maxLength":10,"description":"Region code (state/province code)"},"name":{"type":"string","maxLength":255,"description":"Region name (state/province name)"},"country":{"$ref":"#/components/schemas/Country"}},"required":["code","name","country"]},"Country":{"type":"object","properties":{"code":{"type":"string","maxLength":10,"description":"ISO country code"},"name":{"type":"string","maxLength":255,"description":"Country name"}},"required":["code","name"]}}}}
```

## The City object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"City":{"type":"object","properties":{"code":{"type":"string","maxLength":50,"description":"City code (usually slug format)"},"name":{"type":"string","maxLength":255,"description":"City name"},"country":{"$ref":"#/components/schemas/Country"},"region":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":10,"description":"Region code"},"name":{"type":"string","maxLength":255,"description":"Region name"}},"required":["code","name"]}},"required":["code","name","country"]},"Country":{"type":"object","properties":{"code":{"type":"string","maxLength":10,"description":"ISO country code"},"name":{"type":"string","maxLength":255,"description":"Country name"}},"required":["code","name"]}}}}
```

## The PagedCountriesResponse object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"PagedCountriesResponse":{"type":"object","properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/components/schemas/Country"}}},"required":["count","results"]},"Country":{"type":"object","properties":{"code":{"type":"string","maxLength":10,"description":"ISO country code"},"name":{"type":"string","maxLength":255,"description":"Country name"}},"required":["code","name"]}}}}
```

## The PagedRegionsResponse object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"PagedRegionsResponse":{"type":"object","properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/components/schemas/Region"}}},"required":["count","results"]},"Region":{"type":"object","properties":{"code":{"type":"string","maxLength":10,"description":"Region code (state/province code)"},"name":{"type":"string","maxLength":255,"description":"Region name (state/province name)"},"country":{"$ref":"#/components/schemas/Country"}},"required":["code","name","country"]},"Country":{"type":"object","properties":{"code":{"type":"string","maxLength":10,"description":"ISO country code"},"name":{"type":"string","maxLength":255,"description":"Country name"}},"required":["code","name"]}}}}
```

## The PagedCitiesResponse object

```json
{"openapi":"3.0.3","info":{"title":"ProxyShard User API Billing","version":"1.0.0"},"components":{"schemas":{"PagedCitiesResponse":{"type":"object","properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/components/schemas/City"}}},"required":["count","results"]},"City":{"type":"object","properties":{"code":{"type":"string","maxLength":50,"description":"City code (usually slug format)"},"name":{"type":"string","maxLength":255,"description":"City name"},"country":{"$ref":"#/components/schemas/Country"},"region":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":10,"description":"Region code"},"name":{"type":"string","maxLength":255,"description":"Region name"}},"required":["code","name"]}},"required":["code","name","country"]},"Country":{"type":"object","properties":{"code":{"type":"string","maxLength":10,"description":"ISO country code"},"name":{"type":"string","maxLength":255,"description":"Country name"}},"required":["code","name"]}}}}
```
