Regional Preferences

Language

Nothing in the list matches what you typed there.

Reseller API · v1

Proxy reseller API, explained step by step

An API (application programming interface) lets your own website or script talk to ours without anyone clicking buttons. With this one you can order proxies for your customers, choose their country and rotation, follow their data use, renew them and export their details, all through ordinary web (HTTP) requests. In other words, you can run a white-label shop, sold under your own name, on top of our network. Replies come back as JSON, a simple text format that almost every programming language can read.

What you can do with the API

Once you are an approved reseller, the Budget Proxies REST API lets your own code handle the whole job: create proxy plans, change their targeting (country, rotation and protocol), check live usage, renew plans, and export the login details you hand to your customers. Each request carries your API key, which tells us it is really you, and every reply comes back as JSON.

First, you need an approved reseller account. You can apply through the reseller programme page, or from inside your reseller dashboard if you already have an account. Either way, you'll need an active account with a confirmed email address. Only want proxies for yourself? Then you can skip the API completely and simply buy them on the website.
Everything is built around a "plan", also called a sub-user. Picture a plan as one proxy connection (a gateway) with its own login, its own GB allowance and its own targeting settings. You make a plan with /plans/create and manage it afterwards by its id, the number the API gives it.
What you sell comes out of your GB data balance. You buy gigabytes for it in your reseller dashboard, and each sub-user you create uses up part of it. To see how much is left, call GET /data at any time.

Getting your first plan running

  1. Get approved. Your API key will then be waiting in the dashboard; copy it somewhere safe.
  2. Look up the plans you can sell with GET /catalog.
  3. Create a plan. Its login details come back in the same reply:
# Buy 5 GB of US residential and get gateway credentials back
curl -X POST https://budgetproxies.com/api/v1/YOUR_KEY/plans/create \
     -d "type=residential" -d "gb=5" -d "country=United States" -d "protocol=HTTP"

Your API key: where to find it and how to send it

Your API key is a secret code that identifies your account, and it lives in the reseller dashboard. The simplest way to send it is inside the web address (URL) of each request:

https://budgetproxies.com/api/v1/{API_KEY}/{action}

…or, if you prefer, send it in an X-API-Key header (an extra line of information attached to a request) to /api/v1/index.php?action=…. Guard the key like a password, because anyone holding it can spend your wallet balance. If you think it has leaked, create a new one in the reseller hub.

Where requests go, and what comes back

https://budgetproxies.com/api/v1/{API_KEY}/

A request that works returns HTTP 200 (the web’s “OK” code) and a reply shaped like { "status": "success", "data": { … } }. When something goes wrong you get a 4xx or 5xx code instead, and errors[0].message says what happened. All amounts are in USD. Anything that makes a change (create/renew/config/ipauth/delete) has to be sent with POST, while simply looking things up is done with GET.

How many requests you can send

You can send up to 60 requests/minute with each key. Go past that and the API answers with a 429 code, which simply means “slow down”: wait a moment, then try again. If your shop really needs more room, ask our support team.

GET/catalog

Shows every plan you are able to sell, with its price per GB.

curl https://budgetproxies.com/api/v1/YOUR_KEY/catalog
{ "status":"success", "data": { "plans": [
  { "plan_id":3, "name":"Residential", "type":"residential", "price_per_gb":3.98,
    "currency":"USD", "min_gb":1, "max_gb":1000, "protocols":["HTTP","HTTPS","SOCKS5"] }
] } }

GET/locations

Tells you which countries a proxy type can be set to.

ParameterRequiredDescription
typeNoresidential (used when you leave it out), datacenter, mobile or premium.
curl "https://budgetproxies.com/api/v1/YOUR_KEY/locations?type=residential"
{ "status":"success", "data": { "type":"residential",
  "countries":[ {"code":"us","name":"United States"}, {"code":"gb","name":"United Kingdom"} ], "total":2 } }

GET/plans

Lists all of your plans. Each entry includes its connection details and its current settings.

curl https://budgetproxies.com/api/v1/YOUR_KEY/plans
{ "status":"success", "data": { "items": [
  { "id":123, "type":"residential", "plan":"Residential", "status":"active",
    "gb":5, "gb_limit":5, "gb_used":0.42, "created_at":"…", "expires_at":"…",
    "connection": { "host":"budgetproxies.com", "port":823,
                    "username":"u_ab12__cr.us", "password":"…", "protocol":"HTTP" },
    "config": { "countries":["us"], "exclude_countries":[], "rotation":0, "sticky":false, "protocol":"HTTP" } }
], "total":1 } }

GET/plans/get

Fetches one plan, with up-to-the-minute usage figures.

ParameterRequiredDescription
idYesThe id of your plan.
curl "https://budgetproxies.com/api/v1/YOUR_KEY/plans/get?id=123"
{ "status":"success", "data": { "id":123, …, "connection":{…},
  "usage": { "gb_total":5, "gb_used":0.42, "gb_left":4.58, "source":"live" } } }

GET/plans/usage

Shows how much data a plan has left right now, and how its usage has changed over time.

ParameterRequiredDescription
idYesThe id of your plan.
periodNoweek, month (used when you leave it out), 3months or 6months.
curl "https://budgetproxies.com/api/v1/YOUR_KEY/plans/usage?id=123&period=month"

POST/plans/create

Sets up a new plan (sub-user) for you. Whatever GB you request is deducted from your reseller data balance, so make sure there is enough there before you call it, and add more in your dashboard if not. If the plan can’t be set up, the data goes straight back into your balance. The reply contains the new plan and its gateway login (the gateway is the address your proxy traffic goes through).

ParameterRequiredDescription
typeYes*The proxy type: residential, datacenter, mobile or premium. *Send type or plan_id, one or the other.
plan_idYes*An exact plan id from /catalog. If you send it, it wins over type.
gbNoData allowance in GB: 1–1000, or 1 if you leave it out.
countryNoA country name or its two-letter ISO code (United States when left out).
protocolNoHTTP (used when left out), HTTPS or SOCKS5, as long as the plan supports it.
curl -X POST https://budgetproxies.com/api/v1/YOUR_KEY/plans/create \
     -d "type=residential" -d "gb=5" -d "country=United States" -d "protocol=HTTP"
{ "status":"success", "data": {
  "plan": { "id":124, "type":"residential", "status":"active", "gb":5,
    "connection": { "host":"…", "port":823, "username":"u_cd34", "password":"…", "protocol":"HTTP" }, … },
  "pending": false, "data_used_gb": 5 } }

POST/plans/renew

Orders the same plan again: you get a new gateway for a new term, paid for from your wallet.

ParameterRequiredDescription
idYesThe id of the plan to buy again.
curl -X POST https://budgetproxies.com/api/v1/YOUR_KEY/plans/renew -d "id=123"

POST/plans/config

Changes a plan’s targeting. We store your new settings, pass them on to the network and reply with the updated connection. Your targeting choices are built into the username.

ParameterRequiredDescription
idYesThe id of your plan.
countriesNoA list (array) of two-letter ISO codes to target, e.g. ["us","gb"].
exclude_countriesNoA list of two-letter ISO codes to leave out.
rotationNoHow long a sticky session lasts, in minutes (0–120). Use 0 for a new IP on every request.
stickyNoSet to true to keep the same IP for the whole session.
session_idNoYour own name for a sticky session (letters and numbers only).
exclude_asnNoA list of ASNs to avoid. An ASN is the number that identifies a network, such as an internet provider.
anonymousNoSet to true to switch on the anonymity filter.
protocolNoHTTP or SOCKS5 only.
curl -X POST https://budgetproxies.com/api/v1/YOUR_KEY/plans/config \
     -H "Content-Type: application/json" \
     -d '{"id":123,"countries":["us"],"rotation":10,"sticky":true,"protocol":"HTTP"}'

POST/plans/ipauth

Choose up to 3 IP addresses that may use the gateway with no password at all. This is called IP whitelisting.

ParameterRequiredDescription
idYesThe id of your plan.
whitelistYesUp to 3 IPv4 addresses, separated by commas or spaces.
curl -X POST https://budgetproxies.com/api/v1/YOUR_KEY/plans/ipauth -d "id=123" -d "whitelist=203.0.113.7"

POST/plans/delete

Deletes a plan and releases the gateway it was using back upstream.

ParameterRequiredDescription
idYesThe id of your plan.
curl -X POST https://budgetproxies.com/api/v1/YOUR_KEY/plans/delete -d "id=123"

GET/balance

Shows how much money is in your wallet. Top the wallet up from the dashboard, then use that money to buy GB of data.

curl https://budgetproxies.com/api/v1/YOUR_KEY/balance
{ "status":"success", "data": { "balance":12.50, "currency":"USD" } }

GET/data

Shows the GB balance you resell from, the pool that every sale is taken out of. You can add more GB in the reseller dashboard, and each sub-user you create uses part of it.

curl https://budgetproxies.com/api/v1/YOUR_KEY/data
{ "status":"success", "data": { "available_gb":42.5, "purchased_gb":100, "allocated_gb":57.5 } }

Older per-IP endpoints

These endpoints work with the older per-IP proxies (one record per IP address) instead of GB plans. They are only kept so that existing setups carry on working, so please use the plan endpoints above for anything new.

GET/list[/status] — shows the per-IP proxies on your account; add a status to the path to see just one group (status = active|expired|disabled).

GET/export?format=txt|csv|json — turns your active per-IP proxies into a downloadable list; with txt you can set the layout using template=%ip%:%port%:%login%:%password% (%protocol% %country% work too).

GET/prolong/calc?ids=&days= — tells you what renewing per-IP proxies would cost.

POST/prolong/make — pays for the renewal from your wallet and extends the per-IP proxies (ids, days).

POST/comment — lets you attach your own text to per-IP proxies (ids, text).

Examples you can copy

Python: create a plan, pass it on, adjust it, check usage

import requests
BASE = "https://budgetproxies.com/api/v1/YOUR_KEY"

# 1. Provision 5 GB of US residential for a customer
plan = requests.post(BASE + "/plans/create",
    data={"type": "residential", "gb": 5, "country": "United States"}).json()["data"]["plan"]
c = plan["connection"]

# 2. Hand the customer their proxy string
print(f"{c['host']}:{c['port']}:{c['username']}:{c['password']}")

# 3. Later: retarget to the UK with a 10-min sticky session
requests.post(BASE + "/plans/config", json={"id": plan["id"], "countries": ["gb"], "sticky": True, "rotation": 10})

# 4. Check how much bandwidth they've used
print(requests.get(BASE + "/plans/usage", params={"id": plan["id"]}).json()["data"]["balance"])

Node.js

const BASE = 'https://budgetproxies.com/api/v1/YOUR_KEY';
const plan = await fetch(BASE + '/plans/create', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ type: 'residential', gb: 5, country: 'United States' })
}).then(r => r.json());
console.log(plan.data.plan.connection);

PHP

<?php
$base = 'https://budgetproxies.com/api/v1/YOUR_KEY';
$plans = json_decode(file_get_contents($base . '/plans'), true);
print_r($plans['data']['items']);

Error codes in plain English

Whatever goes wrong, errors[0].message carries a short explanation that you can display or keep in a log.

HTTPMeaning
200It worked
400Something in the request is missing or not valid, such as the plan id
401The API key is missing, mistyped or not recognised
402Your wallet balance is too low
403Your account is not approved for the reseller API yet
404That plan or resource does not exist, or the action name is unknown
405Wrong method: anything that changes data must use POST
422Unknown plan or type, or the request body could not be read
429Slow down: you sent more than the 60/minute this key allows
502The upstream network turned the request down (you were not charged)

Webhooks: planned, not live yet

Webhooks are messages our server would send to yours when something happens, such as a plan expiring or your balance running low. They are on our list but not available yet. If they would help your shop, let our support team know.

Want to sell proxies under your own name?

Apply for the reseller programme. Once you are approved, your API key is ready to use within minutes.

Get my API key

New to proxies? Start with a small order

Datacenter proxies cost $2.49 per gigabyte (GB) of data you use, so trying one on the site you care about needn’t cost much. Your login details are ready within seconds, and if you get stuck, a real person answers questions 24/7.

Budget Proxies logo

or
Continue with Email

Continue and you're agreeing to our Terms and Privacy Policy.

Already set up with us?

First time with us?

🎉 Money-off code

Knock 10% off
your next order

Type your email below and we’ll send the code over. It works on any proxy plan, however small the order. At checkout, paste it into the Promo code box and press Apply.

You’ll get the code and, now and then, an offer by email. Changed your mind later? Ask us and we’ll take you off the list.

Sorted! It’s on its way 📬

Your 10% code is heading to your inbox. No need to wait for the email, though: copy it from here and paste it in when you check out.

See residential plans →