Àwọn ibi ìpè lójú ìwé yìí
GET /v1/mobile: Ṣàtòjọ ibùdó alágbèékáGET /v1/mobile/{portId}: Gba ibùdó alágbèékáPATCH /v1/mobile/{portId}: Yí orúkọ padà, mú ìsọdọtun ṣiṣẹ́/dá a dúró, tàbí ṣètò yíyípadà aládàáṣiṣẹ́POST /v1/mobile/{portId}/rotate: Yí IP padà báyìíGET /v1/mobile/{portId}/rotate: Àsopọ̀ yíyípadà (GET pẹ̀lú kọ́kọ́rọ́ API nínú query string)POST /v1/mobile/{portId}/reset-password: Ṣẹ̀dá ọ̀rọ̀ aṣínà proxy tuntun fún ibùdóGET /v1/mobile/{portId}/usage: Dátà ojoojúmọ́ nípasẹ̀ ibùdó (fún ìsọfúnni: dátà láìsí ààlà, lábẹ́ ìlò tó bójú mu)GET /v1/catalog/countries/{countryCode}/carriers: Ilé-iṣẹ́ alágbèéká tí ibùdó 4G/5G rẹ̀ wà nínú orílẹ̀-èdè
URL ìpìlẹ̀ https://africaproxies.com/api/v1. Ìmúdájú ìwọlé, àṣìṣe àti ààlà: wo àkótán API.
Ṣàtòjọ ibùdó alágbèéká
GET/v1/mobile
Ìfìyàtọ̀: API key nínú àpẹẹrẹ Authorization: Bearer API_KEY.
Ìdáhùn 200 OK
{
"data": [
{
"id": "mob_2v8k1q",
"label": "AE Etisalat #1",
"status": "active",
"country": "AE",
"city": null,
"carrier": "etisalat",
"carrierName": "Etisalat",
"networkType": "4G",
"currentIp": "203.0.113.201",
"ipChangedAt": "2026-10-05T14:03:11Z",
"endpoint": {
"host": "gw.africaproxies.com",
"httpPort": 7777,
"socksPort": 7778
},
"username": "USERNAME",
"password": "PASSWORD",
"rotation": {
"mode": "interval",
"intervalMinutes": 10
},
"minRotationIntervalSeconds": 30,
"rotationLink": "https://africaproxies.com/api/v1/mobile/mob_2v8k1q/rotate?key=API_KEY",
"planId": "mob-30d",
"autoRenew": false,
"createdAt": "2026-10-05T14:03:11Z",
"expiresAt": "2026-11-04T14:03:11Z"
}
]
}Àpẹẹrẹ kòdì
curl -s "https://africaproxies.com/api/v1/mobile" \
-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}/mobile", 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}/mobile`, {
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());Gba ibùdó alágbèéká
GET/v1/mobile/{portId}
Ìfìyàtọ̀: API key nínú àpẹẹrẹ Authorization: Bearer API_KEY.
Àwọn àmì ohun
| Orúkọ | Nínú | Ìpò | Féyí | Àpèjúwe |
|---|---|---|---|---|
portId | path | string | Bẹ́ẹ̀ ni | — |
Ìdáhùn 200 OK
{
"id": "mob_2v8k1q",
"label": "AE Etisalat #1",
"status": "active",
"country": "AE",
"city": null,
"carrier": "etisalat",
"carrierName": "Etisalat",
"networkType": "4G",
"currentIp": "203.0.113.201",
"ipChangedAt": "2026-10-05T14:03:11Z",
"endpoint": {
"host": "gw.africaproxies.com",
"httpPort": 7777,
"socksPort": 7778
},
"username": "USERNAME",
"password": "PASSWORD",
"rotation": {
"mode": "interval",
"intervalMinutes": 10
},
"minRotationIntervalSeconds": 30,
"rotationLink": "https://africaproxies.com/api/v1/mobile/mob_2v8k1q/rotate?key=API_KEY",
"planId": "mob-30d",
"autoRenew": false,
"createdAt": "2026-10-05T14:03:11Z",
"expiresAt": "2026-11-04T14:03:11Z"
}Àpẹẹrẹ kòdì
curl -s "https://africaproxies.com/api/v1/mobile/mob_2v8k1q" \
-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}/mobile/mob_2v8k1q", 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}/mobile/mob_2v8k1q`, {
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());Yí orúkọ padà, mú ìsọdọtun ṣiṣẹ́/dá a dúró, tàbí ṣètò yíyípadà aládàáṣiṣẹ́
PATCH/v1/mobile/{portId}
Yí orúkọ ibùdó padà, mú ìsọdọtun aládàáṣiṣẹ́ ṣiṣẹ́ tàbí dá a dúró, tàbí ṣètò aago yíyípadà láti gbogbo ìṣẹ́jú 2 sí gbogbo wákàtí 24: "rotation": { "mode": "interval", "intervalMinutes": 10 } (ìṣẹ́jú 2–1440); "mode": "manual" ń pa á. Bí bẹ́ẹ̀ kọ́, ibùdó rẹ pa IP rẹ̀ mọ́ títí o fi yí i padà, bí ó tilẹ̀ jẹ́ pé ilé-iṣẹ́ nẹ́tíwọ́ọ̀kì lè yí i padà fúnra rẹ̀ lẹ́ẹ̀kọ̀ọ̀kan.
Ìfìyàtọ̀: API key nínú àpẹẹrẹ Authorization: Bearer API_KEY.
Àwọn àmì ohun
| Orúkọ | Nínú | Ìpò | Féyí | Àpèjúwe |
|---|---|---|---|---|
portId | path | string | Bẹ́ẹ̀ ni | — |
Àpèjú ara ìròyìn
| Àpáá | Ìpò | Féyí | Àpèjúwe |
|---|---|---|---|
label | string | Rárá | ó pọ̀ jù lọ: àmì ìkọ̀wé 60 |
autoRenew | boolean | Rárá | — |
rotation | object | Rárá | Aago yíyípadà aládàáṣiṣẹ́: { "mode": "interval", "intervalMinutes": 2–1440 } (láti gbogbo ìṣẹ́jú 2 sí gbogbo wákàtí 24), tàbí { "mode": "manual", "intervalMinutes": null } láti yípadà nígbà tí o béèrè nìkan. |
{
"rotation": {
"mode": "interval",
"intervalMinutes": 10
}
}{
"rotation": {
"mode": "manual",
"intervalMinutes": null
}
}Ìdáhùn 200 OK
{
"id": "mob_2v8k1q",
"label": "AE Etisalat #1",
"status": "active",
"country": "AE",
"city": null,
"carrier": "etisalat",
"carrierName": "Etisalat",
"networkType": "4G",
"currentIp": "203.0.113.201",
"ipChangedAt": "2026-10-05T14:03:11Z",
"endpoint": {
"host": "gw.africaproxies.com",
"httpPort": 7777,
"socksPort": 7778
},
"username": "USERNAME",
"password": "PASSWORD",
"rotation": {
"mode": "interval",
"intervalMinutes": 10
},
"minRotationIntervalSeconds": 30,
"rotationLink": "https://africaproxies.com/api/v1/mobile/mob_2v8k1q/rotate?key=API_KEY",
"planId": "mob-30d",
"autoRenew": false,
"createdAt": "2026-10-05T14:03:11Z",
"expiresAt": "2026-11-04T14:03:11Z"
}Àpẹẹrẹ kòdì
curl -s -X PATCH "https://africaproxies.com/api/v1/mobile/mob_2v8k1q" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"rotation":{"mode":"interval","intervalMinutes":10}}'import os
import requests
API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.patch(f"{API}/mobile/mob_2v8k1q", headers=HEADERS, json={"rotation": {"mode": "interval", "intervalMinutes": 10}}, 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}/mobile/mob_2v8k1q`, {
method: 'PATCH',
headers: { Authorization: `Bearer ${process.env.API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ rotation: { mode: 'interval', intervalMinutes: 10 } }),
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Yí IP padà báyìí
POST/v1/mobile/{portId}/rotate
Yíyípadà kọ̀ọ̀kan ń tún ibùdó rẹ so mọ́ ilé-iṣẹ́ nẹ́tíwọ́ọ̀kì láti gba IP tuntun, ó sì sábà gba ìṣẹ́jú-àáyá 5–15; ilé-iṣẹ́ náà lè dá IP kan náà padà lẹ́ẹ̀kọ̀ọ̀kan: tún yí i padà. Lẹ́ẹ̀kan péré ní gbogbo ìṣẹ́jú-àáyá 30 fún ibùdó kọ̀ọ̀kan (minRotationIntervalSeconds): bí o bá béèrè yíyípadà ní kíákíá jù, ó ń dá 429 rotation_too_soon padà pẹ̀lú Retry-After (ìṣẹ́jú-àáyá tí o gbọdọ̀ dúró).
Ìfìyàtọ̀: API key nínú àpẹẹrẹ Authorization: Bearer API_KEY.
Àwọn àmì ohun
| Orúkọ | Nínú | Ìpò | Féyí | Àpèjúwe |
|---|---|---|---|---|
portId | path | string | Bẹ́ẹ̀ ni | — |
Ìdáhùn 200 OK
{
"ip": "203.0.113.201",
"previousIp": "203.0.113.77",
"rotatedAt": "2026-10-05T14:03:11Z",
"nextRotationAvailableAt": "2026-10-05T14:03:41Z"
}Àpẹẹrẹ kòdì
curl -s -X POST "https://africaproxies.com/api/v1/mobile/mob_2v8k1q/rotate" \
-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}/mobile/mob_2v8k1q/rotate", 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}/mobile/mob_2v8k1q/rotate`, {
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());Àsopọ̀ yíyípadà (GET pẹ̀lú kọ́kọ́rọ́ API nínú query string)
GET/v1/mobile/{portId}/rotate
Bí POST náà, fún script àti àmì ojú ìwé: GET https://africaproxies.com/api/v1/mobile/{portId}/rotate?key=API_KEY. Kọ́kọ́rọ́ náà nílò àṣẹ proxies. format=text ń dá IP tuntun padà bí text/plain.
Ìfìyàní: API key nínú àmì ìbéèrè key (ìròrò proxies), nítorí náà àyíkẹ́ yìí ń ṣiṣẹ láti àmì ìfìyàní (bookmark).
Àwọn àmì ohun
| Orúkọ | Nínú | Ìpò | Féyí | Àpèjúwe |
|---|---|---|---|---|
key | query | string | Bẹ́ẹ̀ ni | Kọ́kọ́rọ́ API rẹ (àṣẹ proxies). |
portId | path | string | Bẹ́ẹ̀ ni | — |
format | query | json · text | Rárá | àiyípadà json |
Ìdáhùn 200 OK
{
"ip": "203.0.113.201",
"previousIp": "203.0.113.77",
"rotatedAt": "2026-10-05T14:03:11Z",
"nextRotationAvailableAt": "2026-10-05T14:03:41Z"
}Àpẹẹrẹ kòdì
curl -s "https://africaproxies.com/api/v1/mobile/mob_2v8k1q/rotate?key=$API_KEY&format=text"import os
import requests
API = "https://africaproxies.com/api/v1"
r = requests.get(f"{API}/mobile/mob_2v8k1q/rotate", params={"key": os.environ["API_KEY"], "format": "text"}, timeout=30)
r.raise_for_status()
print(r.text)// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';
const res = await fetch(`${API}/mobile/mob_2v8k1q/rotate?key=${process.env.API_KEY}&format=text`);
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.text());Ṣẹ̀dá ọ̀rọ̀ aṣínà proxy tuntun fún ibùdó
POST/v1/mobile/{portId}/reset-password
Ìfìyàtọ̀: API key nínú àpẹẹrẹ Authorization: Bearer API_KEY.
Àwọn àmì ohun
| Orúkọ | Nínú | Ìpò | Féyí | Àpèjúwe |
|---|---|---|---|---|
portId | path | string | Bẹ́ẹ̀ ni | — |
Ìdáhùn 200 OK
{
"id": "mob_2v8k1q",
"label": "AE Etisalat #1",
"status": "active",
"country": "AE",
"city": null,
"carrier": "etisalat",
"carrierName": "Etisalat",
"networkType": "4G",
"currentIp": "203.0.113.201",
"ipChangedAt": "2026-10-05T14:03:11Z",
"endpoint": {
"host": "gw.africaproxies.com",
"httpPort": 7777,
"socksPort": 7778
},
"username": "USERNAME",
"password": "PASSWORD",
"rotation": {
"mode": "interval",
"intervalMinutes": 10
},
"minRotationIntervalSeconds": 30,
"rotationLink": "https://africaproxies.com/api/v1/mobile/mob_2v8k1q/rotate?key=API_KEY",
"planId": "mob-30d",
"autoRenew": false,
"createdAt": "2026-10-05T14:03:11Z",
"expiresAt": "2026-11-04T14:03:11Z"
}Àpẹẹrẹ kòdì
curl -s -X POST "https://africaproxies.com/api/v1/mobile/mob_2v8k1q/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}/mobile/mob_2v8k1q/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}/mobile/mob_2v8k1q/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());Dátà ojoojúmọ́ nípasẹ̀ ibùdó (fún ìsọfúnni: dátà láìsí ààlà, lábẹ́ ìlò tó bójú mu)
GET/v1/mobile/{portId}/usage
Fún ìsọfúnni nìkan. Dátà láìsí ààlà lórí ibùdó tí a yà sọ́tọ̀ fún ọ, lábẹ́ ìlò tó bójú mu: ilé-iṣẹ́ nẹ́tíwọ́ọ̀kì lè dín iyára kù tàbí dá ìlò tó pọ̀ gan-an dúró.
Ìfìyàtọ̀: API key nínú àpẹẹrẹ Authorization: Bearer API_KEY.
Àwọn àmì ohun
| Orúkọ | Nínú | Ìpò | Féyí | Àpèjúwe |
|---|---|---|---|---|
portId | path | string | Bẹ́ẹ̀ ni | — |
from | query | string (date) | Rárá | Ọjọ́ àkọ́kọ́ (UTC), pẹ̀lú ọjọ́ náà. Àiyípadà = ọjọ́ 29 ṣáájú to. |
to | query | string (date) | Rárá | Ọjọ́ ìkẹyìn (UTC), pẹ̀lú ọjọ́ náà. Àiyípadà = òní. Àkókò tó pọ̀ jù lọ jẹ́ ọjọ́ 366. |
Ìdáhùn 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
}
]
}Àpẹẹrẹ kòdì
curl -s "https://africaproxies.com/api/v1/mobile/mob_2v8k1q/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}/mobile/mob_2v8k1q/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}/mobile/mob_2v8k1q/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());Ilé-iṣẹ́ alágbèéká tí ibùdó 4G/5G rẹ̀ wà nínú orílẹ̀-èdè
GET/v1/catalog/countries/{countryCode}/carriers
Ìgbàlọwọ́: kò nílò API key.
Àwọn àmì ohun
| Orúkọ | Nínú | Ìpò | Féyí | Àpèjúwe |
|---|---|---|---|---|
countryCode | path | string | Bẹ́ẹ̀ ni | ISO 3166-1 alpha-2, lẹ́tà ńlá. |
Ìdáhùn 200 OK
{
"data": [
{
"id": "etisalat",
"name": "Etisalat",
"networkTypes": [
"4G",
"5G"
],
"available": true,
"cities": []
}
]
}Àpẹẹrẹ kòdì
curl -s "https://africaproxies.com/api/v1/catalog/countries/AE/carriers"import os
import requests
API = "https://africaproxies.com/api/v1"
r = requests.get(f"{API}/catalog/countries/AE/carriers", 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/carriers`);
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());