V-PROXIES / DOCS · BUILD 0.1.0
Proxy gateway auth, geo targeting, REST management endpoints, error codes, and SDK examples.
https://v-proxies.com/api/v1Status 01 // QUICK START
Start routing traffic through v-proxies in under a minute. Grab your proxy credentials from the Credentials page, and your API key from API keys.
# Route any HTTP/HTTPS request through the gateway
curl -x proxy.v-proxies.com:9000 \
-U "u_a91c2f:p_xk9m2r4n8q1vw3" \
https://httpbin.org/ip
# Response
{ "origin": "82.15.67.33" }~/01
Get credentials
Find your proxy username and password on the credentials page.
~/02
Get API key
Generate a secret key on the API keys page for REST access.
~/03
Start routing
Traffic proxies immediately. Usage updates in real time.
02 // AUTHENTICATION
There are two separate credential types — keep them distinct.
::rest api
Bearer token
Pass your API key as a Bearer token on every REST request. Generate it from the API keys page.
::proxy gateway
HTTP Basic Auth
Proxy gateway traffic uses your proxy username + password — separate from the API key. Get them from Credentials.
# REST API — pass your API key as a Bearer token
curl https://v-proxies.com/api/v1/me \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"API key format
Keys are standard UUIDs — e.g. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Generate or rotate yours from the API keys page.
03 // PROXY GATEWAY
The proxy gateway speaks HTTP CONNECT and plain HTTP proxy protocols. Use it with any HTTP client that supports proxy settings. The port determines whether you get a rotating or sticky IP — see Session modes.
HOST
proxy.v-proxies.com
PORT (ROTATING)
9000
PORT (STICKY)
10000
PROTOCOL
HTTP / HTTPS
Proxy list format
proxy.v-proxies.com:9000:username:password# HTTPS via CONNECT tunnel
curl -x https://proxy.v-proxies.com:9000 \
-U "u_a91c2f:p_xk9m2r4n8q1vw3" \
https://target.example.com/api
# Plain HTTP
curl -x http://proxy.v-proxies.com:9000 \
-U "u_a91c2f:p_xk9m2r4n8q1vw3" \
http://target.example.com/page04 // SESSION MODES
Choose between a new IP per request (rotating) or pinning the same IP for a set duration (sticky). Session mode is selected by port, and sticky sessions encode a lifetime + session id in the proxy username.
::rotating · port 9000
New IP per request
Default mode. Highest anonymity. No lifetime/session suffix.
::sticky · port 10000
Same IP for N minutes
Pin a session for 1–60 minutes or 1–24 hours. Lifetime is encoded in minutes.
Username format
The username is built by joining your base username and key/value pairs with hyphens. The first pair is always type-residential. Sticky mode appends lifetime-{minutes} and session-{id} at the end.
# Rotating — port 9000, no lifetime/session
curl -x proxy.v-proxies.com:9000 \
-U "u_a91c2f-type-residential:p_xk9m2r4n8q1vw3" \
https://httpbin.org/ip
# Sticky 30-minute session — port 10000, lifetime in minutes
SESSION=$(openssl rand -hex 3 | cut -c1-5)
curl -x proxy.v-proxies.com:10000 \
-U "u_a91c2f-type-residential-lifetime-30-session-${SESSION}:p_xk9m2r4n8q1vw3" \
https://httpbin.org/ipSticky limits
1–60 (e.g. lifetime-1 to lifetime-60)1–24 (e.g. lifetime-60 to lifetime-1440)05 // GEO TARGETING
Target by country, state, city, or ASN by appending key/value pairs to the proxy username (separated by hyphens). City requires state. Looking up valid codes? See GET /v1/getTargeting.
Targeting keys
country-{code}country-USISO 3166-1 alpha-2 country code (uppercase)
state-{code}state-CAState/region code. Requires country.
city-{code}city-los_angelesCity slug (lowercase). Requires country + state.
asn-{code}asn-16509Autonomous System Number. Requires country.
# Country only
-U "u_a91c2f-type-residential-country-US:p_xk9m2r4n8q1vw3"
# Country + state + city
-U "u_a91c2f-type-residential-country-US-state-CA-city-los_angeles:p_xk9m2r4n8q1vw3"
# Country + ASN (AWS us-east-1)
-U "u_a91c2f-type-residential-country-US-asn-16509:p_xk9m2r4n8q1vw3"
# Country + city + sticky 15 min (port 10000)
-U "u_a91c2f-type-residential-country-GB-state-ENG-city-london-lifetime-15-session-xyz12:p_xk9m2r4n8q1vw3"06 // GENERATE ENDPOINTS
POST /v1/connection
Generate a batch of ready-to-use proxy endpoints with session, geo targeting, and output format already applied. Useful for bulk imports into bots, scrapers, or proxy managers.
Request body
amountNumber of endpoints to generate. 1–10000. Defaults to 1.
formatOne of: "host:port:user:pass" (default), "user:pass@host:port", "host:port".
session.type"rotating" (default) or "sticky".
session.durationSticky only. Pin duration. 1–60 with unit=min, 1–24 with unit=hr.
session.unitSticky only. "min" (default) or "hr".
targeting.countryOptional. { "code": "US" }.
targeting.stateOptional. { "code": "CA" } or { "name": "California" }. Requires country.
targeting.cityOptional. { "code": "los_angeles" } or { "name": "Los Angeles" }. Requires country + state.
targeting.ispOptional. { "asn": "16509" } or { "code": "16509" }. Requires country.
curl -X POST https://v-proxies.com/api/v1/connection \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"amount": 5,
"format": "host:port:user:pass",
"session": { "type": "sticky", "duration": 30, "unit": "min" },
"targeting": {
"country": { "code": "US" },
"state": { "code": "CA" },
"city": { "code": "los_angeles" }
}
}'
# 200 OK
{
"host": "proxy.v-proxies.com",
"port": 10000,
"format": "host:port:user:pass",
"session": { "type": "sticky", "duration": 30, "unit": "min" },
"targeting": { "country": "US", "state": "CA", "city": "los_angeles" },
"amount": 5,
"endpoints": [
"proxy.v-proxies.com:10000:u_a91c2f-type-residential-country-US-state-CA-city-los_angeles-lifetime-30-session-abc12:p_xk9m2r4n8q1vw3",
"proxy.v-proxies.com:10000:u_a91c2f-type-residential-country-US-state-CA-city-los_angeles-lifetime-30-session-d3f4k:p_xk9m2r4n8q1vw3",
"..."
]
}Rotating example
Omit session (or send { "type": "rotating" }) to receive rotating endpoints on port 9000. Each request through them gets a new IP.
07 // REST API
All endpoints live under https://v-proxies.com/api/v1. Responses are JSON. Authenticate every request with your API key — see Authentication.
METHOD
ENDPOINT
DESCRIPTION
/v1/connectionGenerate ready-to-use proxy endpoints with session + geo targeting
/v1/meAccount info — id, email, plan, credits, created_at
/v1/credentialsProxy host, port, username, and password
/v1/credentials/rotateRotate the proxy password (username is never changed)
/v1/getTargetingList supported countries, states, cities, and ISPs
/v1/usageBandwidth usage — ?range=7d|30d|90d
/v1/sub-accountsList sub-accounts, your cap, and main balance free
/v1/sub-accountsCreate a sub-account with a GB allocation from your balance
/v1/sub-accounts/{id}Re-allocate a sub-account to a new GB total
/v1/sub-accounts/{id}Delete a sub-account; unused GB returns to your balance
GET /v1/me
Returns the authenticated account's info.
curl https://v-proxies.com/api/v1/me \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# 200 OK
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"email": "ops@example.com",
"plan": "residential",
"credits": 184.20,
"created_at": "2024-09-01T00:00:00Z"
}GET /v1/credentials
Returns your proxy host, port, username, and password.
curl https://v-proxies.com/api/v1/credentials \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# 200 OK
{
"host": "proxy.v-proxies.com",
"port": 9000,
"username": "u_a91c2f",
"password": "p_xk9m2r4n8q1vw3"
}PATCH /v1/credentials/rotate
Rotates the proxy password. The username is never changed. The new password takes effect immediately — your next /v1/credentials call will return it.
curl -X PATCH https://v-proxies.com/api/v1/credentials/rotate \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# 200 OK
{
"host": "proxy.v-proxies.com",
"port": 9000,
"username": "u_a91c2f",
"password": "p_newpasswordhere",
"rotated_at": "2025-05-19T12:00:00.000Z"
}GET /v1/getTargeting
Lists supported countries, or drills into a country to fetch its states, cities, or ASNs. Use this to populate dropdowns or validate user input before calling /v1/connection.
Query parameters
levelOne of: "country" (default), "state", "city", "isp".
countryISO country code. Required when level is "state", "city", or "isp".
stateState code. Required when level is "city".
# List all countries
curl "https://v-proxies.com/api/v1/getTargeting?level=country" \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# 200 OK
{
"level": "country",
"data": [
{ "code": "US", "name": "United States", "flag": "🇺🇸" },
{ "code": "GB", "name": "United Kingdom", "flag": "🇬🇧" }
]
}
# List states for a country
curl "https://v-proxies.com/api/v1/getTargeting?level=state&country=us" \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# List cities for a state
curl "https://v-proxies.com/api/v1/getTargeting?level=city&country=us&state=ca" \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# List ASNs for a country
curl "https://v-proxies.com/api/v1/getTargeting?level=isp&country=us" \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"GET /v1/usage
Returns daily bandwidth usage for the authenticated account over the requested window.
Query parameters
rangeTime window. One of: 7d · 30d · 90d. Defaults to 30d.
curl "https://v-proxies.com/api/v1/usage?range=7d" \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# 200 OK
{
"range": "7d",
"data": [ … ]
}Sub-accounts
Create sub-accounts with their own proxy credentials and a fixed GB budget. The GB assigned to a sub-account is moved out of your main balance — increasing an allocation pulls from your balance, decreasing or deleting returns the unused GB. Each account is capped (default 10 sub-accounts); contact support to raise it.
GET /v1/sub-accounts
curl "https://v-proxies.com/api/v1/sub-accounts" \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# 200 OK
{
"limit": 10,
"count": 1,
"mainAvailableGb": 42.5,
"subAccounts": [
{
"id": "8f3c…",
"label": "scraper-eu",
"username": "ab12cd34ef56",
"password": "9z8y7x6w",
"allocatedGb": 5,
"limitGb": 5,
"usedGb": 1.27,
"createdAt": "2026-06-17T18:00:00.000Z"
}
]
}POST /v1/sub-accounts
Body parameters
gbWhole GB to allocate from your main balance. Minimum 1.
labelOptional name to identify the sub-account. Up to 60 characters.
curl -X POST "https://v-proxies.com/api/v1/sub-accounts" \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "label": "scraper-eu", "gb": 5 }'
# 201 Created
{
"id": "8f3c…",
"label": "scraper-eu",
"username": "ab12cd34ef56",
"password": "9z8y7x6w",
"allocatedGb": 5,
"limitGb": 5,
"usedGb": 0,
"createdAt": "2026-06-17T18:00:00.000Z"
}PATCH /v1/sub-accounts/{id}
Body parameters
gbNew total GB for the sub-account. Cannot be lower than the GB already used.
curl -X PATCH "https://v-proxies.com/api/v1/sub-accounts/8f3c…" \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "gb": 10 }'
# 200 OK
{ "id": "8f3c…", "allocatedGb": 10, "limitGb": 10, "usedGb": 1.27 }DELETE /v1/sub-accounts/{id}
Deletes the sub-account and returns its unused GB to your main balance. GB already consumed is not refunded.
curl -X DELETE "https://v-proxies.com/api/v1/sub-accounts/8f3c…" \
-H "Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# 200 OK
{ "ok": true }08 // ERROR CODES
Every error response uses the same JSON envelope. Parse error.code for programmatic handling and error.message for the human-readable reason.
// Error envelope — every non-2xx response
{
"error": {
"code": "unauthorized", // machine-readable slug
"message": "Invalid or revoked API key", // human-readable
"status": 401 // mirrors the HTTP status
}
}STATUS
TITLE
WHEN IT HAPPENS
A request parameter is missing or invalid (e.g. malformed JSON body, unknown level on /v1/getTargeting, sticky duration out of range).
Example response
Authorization header is missing, malformed, or the API key is not recognized.
Example response
The authenticated user has no record in userInfo, or the targeted country / state / city / ASN does not exist.
Example response
An unexpected internal error occurred while processing your request.
Example response
The upstream proxy API returned an error or was unreachable.
Example response
Proxy gateway errors
These are returned by the proxy gateway itself, not the REST API — they appear as HTTP status codes on the proxied connection.
Proxy credentials rejected at the gateway. Check username and password.
Account balance is $0, or the target is blocked.
Gateway under maintenance. Check the status page.
09 // SDKS
Use any HTTP client that supports proxy authentication. Copy-paste examples for the most common environments.
curl -x proxy.v-proxies.com:9000 \
-U "u_a91c2f:p_xk9m2r4n8q1vw3" \
https://httpbin.org/ip::ready
Start routing traffic
Top-up from $10. Credentials provisioned in under 2 seconds.