Izindawo zokuxhumana kuleli khasi
GET /v1/residential/subscriptions: Bhala uhlu lokubhalisa kwedatha (yasekhaya neyeselula enamakheli ashintshayo nge-GB)GET /v1/residential/subscriptions/{subscriptionId}: Thola ukubhalisa kwe-proxy yasekhayaPATCH /v1/residential/subscriptions/{subscriptionId}: Qamba kabusha noma uvule/uvale ukuvuselela okuzenzakalelayoPOST /v1/residential/subscriptions/{subscriptionId}/reset-password: Khiqiza iphasiwedi entsha ye-proxy yomsebenzisi oyinhlokoGET /v1/residential/subscriptions/{subscriptionId}/usage: Ukusetshenziswa kwedatha kwansuku zonkeGET /v1/residential/subscriptions/{subscriptionId}/sub-users: Bhala uhlu lwabasebenzisi abangaphansi (imininingwane ehlukile yokungena ye-proxy nomkhawulo wabo wedatha)POST /v1/residential/subscriptions/{subscriptionId}/sub-users: Dala umsebenzisi ongaphansiPATCH /v1/residential/subscriptions/{subscriptionId}/sub-users/{subUserId}: Buyekeza umsebenzisi ongaphansi (igama, umkhawulo, vula/vala, iphasiwedi entsha)DELETE /v1/residential/subscriptions/{subscriptionId}/sub-users/{subUserId}: Susa umsebenzisi ongaphansiGET /v1/catalog/countries: Amazwe lapho umkhiqizo utholakala khonaGET /v1/catalog/countries/{countryCode}/cities: Amadolobha ongawakhetha ezweniGET /v1/catalog/countries/{countryCode}/asns: Abahlinzeki be-inthanethi (ASN) ongabakhetha ezweni — ama-proxy asekhaya kuphela
I-URL eyisisekelo https://africaproxies.com/api/v1. Ukuqinisekisa ukungena, amaphutha nemikhawulo: bheka isifinyezo se-API.
Izeshini ezinekheli elifanayo
Engeza -session-{id}-ttl-{minutes} egameni lomsebenzisi le-proxy ukuze ugcine i-IP efanayo: {id} yizinhlamvu noma amadijithi angu-1–32 ozikhethayo, ttl yimizuzu 1–30. I-IP ingashintsha kusenesikhathi, ngokwesibonelo uma idivayisi engemuva kwayo inqamuka ku-inthanethi.
Bhala uhlu lokubhalisa kwedatha (yasekhaya neyeselula enamakheli ashintshayo nge-GB)
GET/v1/residential/subscriptions
Ukungena: isikhonkeyi API ku-header Authorization: Bearer API_KEY.
Izinhinto
| Igama | Ku- | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|---|
productId | query | residential · mobile-gb | Cha | Lo mkhiqizo kuphela (uma ingekho: yomibili). |
Impendulo 200 OK
{
"data": [
{
"id": "res_9x2m4k",
"productId": "residential",
"label": "Residential #1",
"planId": "res-10",
"status": "active",
"trafficTotalBytes": 10000000000,
"trafficUsedBytes": 2350000000,
"trafficRemainingBytes": 7650000000,
"expiresAt": null,
"autoRenew": false,
"username": "u7k2m9",
"password": "PASSWORD",
"endpoint": {
"host": "gw.africaproxies.com",
"httpPort": 7777,
"socksPort": 7778
},
"subUserCount": 1,
"createdAt": "2026-10-05T14:03:11Z"
}
]
}Izibonelo zezikhashana
curl -s "https://africaproxies.com/api/v1/residential/subscriptions" \
-H "Authorization: Bearer $API_KEY"import os
import requests
API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.get(f"{API}/residential/subscriptions", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/residential/subscriptions`, {
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Thola ukubhalisa kwe-proxy yasekhaya
GET/v1/residential/subscriptions/{subscriptionId}
Ukungena: isikhonkeyi API ku-header Authorization: Bearer API_KEY.
Izinhinto
| Igama | Ku- | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|---|
subscriptionId | path | string | Yebo | — |
Impendulo 200 OK
{
"id": "res_9x2m4k",
"productId": "residential",
"label": "Residential #1",
"planId": "res-10",
"status": "active",
"trafficTotalBytes": 10000000000,
"trafficUsedBytes": 2350000000,
"trafficRemainingBytes": 7650000000,
"expiresAt": null,
"autoRenew": false,
"username": "u7k2m9",
"password": "PASSWORD",
"endpoint": {
"host": "gw.africaproxies.com",
"httpPort": 7777,
"socksPort": 7778
},
"subUserCount": 1,
"createdAt": "2026-10-05T14:03:11Z"
}Izibonelo zezikhashana
curl -s "https://africaproxies.com/api/v1/residential/subscriptions/res_9x2m4k" \
-H "Authorization: Bearer $API_KEY"import os
import requests
API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.get(f"{API}/residential/subscriptions/res_9x2m4k", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/residential/subscriptions/res_9x2m4k`, {
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Qamba kabusha noma uvule/uvale ukuvuselela okuzenzakalelayo
PATCH/v1/residential/subscriptions/{subscriptionId}
Ukungena: isikhonkeyi API ku-header Authorization: Bearer API_KEY.
Izinhinto
| Igama | Ku- | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|---|
subscriptionId | path | string | Yebo | — |
Umzimba wesicelo
| Isibaya | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|
label | string | Cha | izinhlamvu ezingadluli ku-60 |
autoRenew | boolean | Cha | — |
{
"label": "Price monitoring",
"autoRenew": true
}Impendulo 200 OK
{
"id": "res_9x2m4k",
"productId": "residential",
"label": "Residential #1",
"planId": "res-10",
"status": "active",
"trafficTotalBytes": 10000000000,
"trafficUsedBytes": 2350000000,
"trafficRemainingBytes": 7650000000,
"expiresAt": null,
"autoRenew": false,
"username": "u7k2m9",
"password": "PASSWORD",
"endpoint": {
"host": "gw.africaproxies.com",
"httpPort": 7777,
"socksPort": 7778
},
"subUserCount": 1,
"createdAt": "2026-10-05T14:03:11Z"
}Izibonelo zezikhashana
curl -s -X PATCH "https://africaproxies.com/api/v1/residential/subscriptions/res_9x2m4k" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"label":"Price monitoring","autoRenew":true}'import os
import requests
API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.patch(f"{API}/residential/subscriptions/res_9x2m4k", headers=HEADERS, json={"label": "Price monitoring", "autoRenew": True}, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/residential/subscriptions/res_9x2m4k`, {
method: 'PATCH',
headers: { Authorization: `Bearer ${process.env.API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ label: 'Price monitoring', autoRenew: true }),
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Khiqiza iphasiwedi entsha ye-proxy yomsebenzisi oyinhloko
POST/v1/residential/subscriptions/{subscriptionId}/reset-password
Iphasiwedi endala iyeka ukusebenza esangweni phakathi kwemizuzwana 60.
Ukungena: isikhonkeyi API ku-header Authorization: Bearer API_KEY.
Izinhinto
| Igama | Ku- | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|---|
subscriptionId | path | string | Yebo | — |
Impendulo 200 OK
{
"id": "res_9x2m4k",
"productId": "residential",
"label": "Residential #1",
"planId": "res-10",
"status": "active",
"trafficTotalBytes": 10000000000,
"trafficUsedBytes": 2350000000,
"trafficRemainingBytes": 7650000000,
"expiresAt": null,
"autoRenew": false,
"username": "u7k2m9",
"password": "PASSWORD",
"endpoint": {
"host": "gw.africaproxies.com",
"httpPort": 7777,
"socksPort": 7778
},
"subUserCount": 1,
"createdAt": "2026-10-05T14:03:11Z"
}Izibonelo zezikhashana
curl -s -X POST "https://africaproxies.com/api/v1/residential/subscriptions/res_9x2m4k/reset-password" \
-H "Authorization: Bearer $API_KEY"import os
import requests
API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.post(f"{API}/residential/subscriptions/res_9x2m4k/reset-password", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/residential/subscriptions/res_9x2m4k/reset-password`, {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Ukusetshenziswa kwedatha kwansuku zonke
GET/v1/residential/subscriptions/{subscriptionId}/usage
Ukungena: isikhonkeyi API ku-header Authorization: Bearer API_KEY.
Izinhinto
| Igama | Ku- | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|---|
subscriptionId | path | string | Yebo | — |
from | query | string (date) | Cha | Usuku lokuqala (UTC), lufakiwe. Okuzenzakalelayo = izinsuku 29 ngaphambi kuka-to. |
to | query | string (date) | Cha | Usuku lokugcina (UTC), lufakiwe. Okuzenzakalelayo = namuhla. Isikhathi esingadluli ezinsukwini 366. |
subUserId | query | string | Cha | Khawulela kumsebenzisi oyedwa ongaphansi. |
Impendulo 200 OK
{
"from": "2026-10-04",
"to": "2026-10-05",
"totalBytes": 2350000000,
"totalRequests": 48210,
"points": [
{
"date": "2026-10-04",
"bytes": 1200000000,
"requests": 24800
},
{
"date": "2026-10-05",
"bytes": 1150000000,
"requests": 23410
}
],
"byCountry": [
{
"country": "AE",
"bytes": 2350000000
}
]
}Izibonelo zezikhashana
curl -s "https://africaproxies.com/api/v1/residential/subscriptions/res_9x2m4k/usage" \
-H "Authorization: Bearer $API_KEY"import os
import requests
API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.get(f"{API}/residential/subscriptions/res_9x2m4k/usage", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/residential/subscriptions/res_9x2m4k/usage`, {
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Bhala uhlu lwabasebenzisi abangaphansi (imininingwane ehlukile yokungena ye-proxy nomkhawulo wabo wedatha)
GET/v1/residential/subscriptions/{subscriptionId}/sub-users
Ukungena: isikhonkeyi API ku-header Authorization: Bearer API_KEY.
Izinhinto
| Igama | Ku- | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|---|
subscriptionId | path | string | Yebo | — |
Impendulo 200 OK
{
"data": [
{
"id": "sub_3m9qk2",
"label": "Client A",
"username": "u7k2m9_scraper",
"password": "PASSWORD",
"trafficLimitBytes": 5000000000,
"trafficUsedBytes": 1200000000,
"enabled": true,
"createdAt": "2026-10-05T14:03:11Z"
}
],
"limit": 50
}Izibonelo zezikhashana
curl -s "https://africaproxies.com/api/v1/residential/subscriptions/res_9x2m4k/sub-users" \
-H "Authorization: Bearer $API_KEY"import os
import requests
API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.get(f"{API}/residential/subscriptions/res_9x2m4k/sub-users", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/residential/subscriptions/res_9x2m4k/sub-users`, {
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Dala umsebenzisi ongaphansi
POST/v1/residential/subscriptions/{subscriptionId}/sub-users
Ukungena: isikhonkeyi API ku-header Authorization: Bearer API_KEY.
Izinhinto
| Igama | Ku- | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|---|
subscriptionId | path | string | Yebo | — |
Umzimba wesicelo
| Isibaya | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|
label | string | Yebo | izinhlamvu ezingadluli ku-60 |
password | string | Cha | Ikhiqizwa uma ingafakiwe. — izinhlamvu ezingadluli ku-64 |
trafficLimitBytes | integer (int64), nullable | Cha | ≥ 0 |
{
"label": "Scraper EU",
"trafficLimitBytes": 5000000000
}Impendulo 201 Created
{
"id": "sub_3m9qk2",
"label": "Client A",
"username": "u7k2m9_scraper",
"password": "PASSWORD",
"trafficLimitBytes": 5000000000,
"trafficUsedBytes": 1200000000,
"enabled": true,
"createdAt": "2026-10-05T14:03:11Z"
}Izibonelo zezikhashana
curl -s -X POST "https://africaproxies.com/api/v1/residential/subscriptions/res_9x2m4k/sub-users" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"label":"Scraper EU","trafficLimitBytes":5000000000}'import os
import requests
API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.post(f"{API}/residential/subscriptions/res_9x2m4k/sub-users", headers=HEADERS, json={"label": "Scraper EU", "trafficLimitBytes": 5000000000}, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/residential/subscriptions/res_9x2m4k/sub-users`, {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ label: 'Scraper EU', trafficLimitBytes: 5000000000 }),
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Buyekeza umsebenzisi ongaphansi (igama, umkhawulo, vula/vala, iphasiwedi entsha)
PATCH/v1/residential/subscriptions/{subscriptionId}/sub-users/{subUserId}
Ukungena: isikhonkeyi API ku-header Authorization: Bearer API_KEY.
Izinhinto
| Igama | Ku- | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|---|
subscriptionId | path | string | Yebo | — |
subUserId | path | string | Yebo | — |
Umzimba wesicelo
| Isibaya | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|
label | string | Cha | izinhlamvu ezingadluli ku-60 |
trafficLimitBytes | integer (int64), nullable | Cha | ≥ 0 |
enabled | boolean | Cha | — |
regeneratePassword | boolean | Cha | — |
{
"enabled": false
}Impendulo 200 OK
{
"id": "sub_3m9qk2",
"label": "Client A",
"username": "u7k2m9_scraper",
"password": "PASSWORD",
"trafficLimitBytes": 5000000000,
"trafficUsedBytes": 1200000000,
"enabled": true,
"createdAt": "2026-10-05T14:03:11Z"
}Izibonelo zezikhashana
curl -s -X PATCH "https://africaproxies.com/api/v1/residential/subscriptions/res_9x2m4k/sub-users/sub_3m9qk2" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"enabled":false}'import os
import requests
API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.patch(f"{API}/residential/subscriptions/res_9x2m4k/sub-users/sub_3m9qk2", headers=HEADERS, json={"enabled": False}, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/residential/subscriptions/res_9x2m4k/sub-users/sub_3m9qk2`, {
method: 'PATCH',
headers: { Authorization: `Bearer ${process.env.API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ enabled: false }),
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Susa umsebenzisi ongaphansi
DELETE/v1/residential/subscriptions/{subscriptionId}/sub-users/{subUserId}
Ukungena: isikhonkeyi API ku-header Authorization: Bearer API_KEY.
Izinhinto
| Igama | Ku- | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|---|
subscriptionId | path | string | Yebo | — |
subUserId | path | string | Yebo | — |
Impendulo 204 No Content
Akukho mzimba: ikhodi yesimo wuyimpendulo.
Izibonelo zezikhashana
curl -s -X DELETE "https://africaproxies.com/api/v1/residential/subscriptions/res_9x2m4k/sub-users/sub_3m9qk2" \
-H "Authorization: Bearer $API_KEY"import os
import requests
API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.delete(f"{API}/residential/subscriptions/res_9x2m4k/sub-users/sub_3m9qk2", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.status_code) # 204: done// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/residential/subscriptions/res_9x2m4k/sub-users/sub_3m9qk2`, {
method: 'DELETE',
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(res.status); // 204: doneAmazwe lapho umkhiqizo utholakala khona
GET/v1/catalog/countries
Okungagqizile: akudingi i-key ye-API.
Izinhinto
| Igama | Ku- | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|---|
product | query | string | Cha | Khawulela ezindaweni lapho lo mkhiqizo utholakala khona (residential, mobile, mobile-gb). |
Impendulo 200 OK
{
"data": [
{
"code": "AE",
"name": "United Arab Emirates",
"region": "Asia",
"products": [
"residential",
"mobile",
"mobile-gb"
],
"cities": 6,
"asns": 2,
"carriers": 2
}
]
}Izibonelo zezikhashana
curl -s "https://africaproxies.com/api/v1/catalog/countries"import os
import requests
API = "https://africaproxies.com/api/v1"
r = requests.get(f"{API}/catalog/countries", timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/catalog/countries`);
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Amadolobha ongawakhetha ezweni
GET/v1/catalog/countries/{countryCode}/cities
Nge-product=mobile noma product=mobile-gb, amadolobha anemodemu ye-4G/5G kuphela.
Okungagqizile: akudingi i-key ye-API.
Izinhinto
| Igama | Ku- | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|---|
countryCode | path | string | Yebo | I-ISO 3166-1 alpha-2, ngosonhlamvukazi. |
product | query | string | Cha | Khawulela ezindaweni lapho lo mkhiqizo utholakala khona (residential, mobile, mobile-gb). |
Impendulo 200 OK
{
"data": [
{
"id": "dubai",
"name": "Dubai",
"state": null
}
]
}Izibonelo zezikhashana
curl -s "https://africaproxies.com/api/v1/catalog/countries/AE/cities"import os
import requests
API = "https://africaproxies.com/api/v1"
r = requests.get(f"{API}/catalog/countries/AE/cities", timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/catalog/countries/AE/cities`);
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Abahlinzeki be-inthanethi (ASN) ongabakhetha ezweni — ama-proxy asekhaya kuphela
GET/v1/catalog/countries/{countryCode}/asns
Okungagqizile: akudingi i-key ye-API.
Izinhinto
| Igama | Ku- | Uhlobo | Kudingekile | Incazelo |
|---|---|---|---|---|
countryCode | path | string | Yebo | I-ISO 3166-1 alpha-2, ngosonhlamvukazi. |
Impendulo 200 OK
{
"data": [
{
"asn": 7922,
"name": "Comcast Cable"
}
]
}Izibonelo zezikhashana
curl -s "https://africaproxies.com/api/v1/catalog/countries/AE/asns"import os
import requests
API = "https://africaproxies.com/api/v1"
r = requests.get(f"{API}/catalog/countries/AE/asns", timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/catalog/countries/AE/asns`);
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());