API
JSON over HTTPS. Send your API key in the Authorization header. Up to 300 requests per minute.
Base address
https://wingproxy.com/api/v1
Authentication
Header Authorization: Bearer YOUR_API_KEY. Create the key on the API key page after your first top-up.
curl https://wingproxy.com/api/v1/account \ -H "Authorization: Bearer YOUR_API_KEY"
GET /account
Balance and traffic.
Example response
{
"balance": "42.50",
"traffic_left_gb": "8.73",
"traffic_used_gb": "1.27"
}GET /prices
Price per GB for each pack size.
Example response
[
{ "from_gb": 1, "per_gb": "4.00" },
{ "from_gb": 10, "per_gb": "3.50" }
]POST /traffic {"gb": 10}
Buys traffic from your balance.
Example response
{
"id": 311,
"gb": 10,
"price": "35.00",
"status": "added"
}GET /list?country=de&session=sticky&minutes=10&count=5&format=hostport
Builds proxy lines. country: a country code or empty for any. session: rotating (default) or sticky. minutes: 1 to 120 (default 10, sticky only). count: 1 to 1000 (default 10). format: hostport (host:port:user:pass, default) or url (user:pass@host:port). protocol: http (default) or socks5.
Example response
{
"lines": [ "gate.example:8000:user-country-de-session-a1b2-time-10:pass" ]
}GET /usage
Traffic per day for the last 30 days.
Example response
[
{ "day": "2026-10-13", "gb": "0.84" }
]Errors
Errors return a non 2xx status and a JSON body with an error code.
| unauthorized | Missing or wrong API key |
| not_allowed | The API opens after your first top-up |
| bad_request | A field is missing or wrong |
| not_enough_balance | Top up first |
| not_added | The traffic could not be added; the price is back in your balance |
| checking | The supplier did not confirm; we check it and add the traffic or return the price |
| no_login | Buy traffic first; your proxy login is created then |
| rate_limited | Too many requests in a minute |