Kò sí KYC — kò sí ẹ̀rí ìdánimọ̀, selfie tàbí àwọn ìwé
Èdè: Èdè Yorùbá
Yan 1 GB

Ìtọ́kasí API

Ibùdó alágbèéká àti yíyí IP

Ibùdó 4G/5G tí a yà sọ́tọ̀: yí IP padà báyìí tàbí lórí aago, lo àsopọ̀ yíyípadà, kí o sì ka dátà ojoojúmọ́.

Ìgbà tí a mú ohun ṣe àtúnṣe: · 8 ìṣẹ́jú kíkà

À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
curl -s "https://africaproxies.com/api/v1/mobile" \
  -H "Authorization: Bearer $API_KEY"
Python
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
// 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
portIdpathstringBẹ́ẹ̀ 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
curl -s "https://africaproxies.com/api/v1/mobile/mob_2v8k1q" \
  -H "Authorization: Bearer $API_KEY"
Python
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
// 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
portIdpathstringBẹ́ẹ̀ ni—

Àpèjú ara ìròyìn

ÀpááÌpòFéyíÀpèjúwe
labelstringRáráó pọ̀ jù lọ: àmì ìkọ̀wé 60
autoRenewbooleanRárá—
rotationobjectRá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.
Àpẹẹrẹ: Yípadà láìfọwọ́ṣe
{
  "rotation": {
    "mode": "interval",
    "intervalMinutes": 10
  }
}
Àpẹẹrẹ: Pẹ̀lú ọwọ́
{
  "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
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}}'
Python
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
// 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
portIdpathstringBẹ́ẹ̀ 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
curl -s -X POST "https://africaproxies.com/api/v1/mobile/mob_2v8k1q/rotate" \
  -H "Authorization: Bearer $API_KEY"
Python
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
// 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());

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
keyquerystringBẹ́ẹ̀ niKọ́kọ́rọ́ API rẹ (àṣẹ proxies).
portIdpathstringBẹ́ẹ̀ ni—
formatqueryjson · textRá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ì

Ṣẹ̀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
portIdpathstringBẹ́ẹ̀ 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
curl -s -X POST "https://africaproxies.com/api/v1/mobile/mob_2v8k1q/reset-password" \
  -H "Authorization: Bearer $API_KEY"
Python
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
// 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
portIdpathstringBẹ́ẹ̀ ni—
fromquerystring (date)RáráỌjọ́ àkọ́kọ́ (UTC), pẹ̀lú ọjọ́ náà. Àiyípadà = ọjọ́ 29 ṣáájú to.
toquerystring (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
curl -s "https://africaproxies.com/api/v1/mobile/mob_2v8k1q/usage" \
  -H "Authorization: Bearer $API_KEY"
Python
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
// 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
countryCodepathstringBẹ́ẹ̀ niISO 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
curl -s "https://africaproxies.com/api/v1/catalog/countries/AE/carriers"
Python
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
// 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());

1 GB $1.23 · Fífi owó sínú àkáǹtì láti $25

Yan 1 GB