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

Ìtọ́kasí API

Proxy ilé àti àlàyé ìwọlé

Ṣàkóso ètò dátà (ti ilé àti 4G/5G tí ń yípadà fún GB): àlàyé ìwọlé proxy, oníṣe abẹ́ pẹ̀lú àlàyé ìwọlé àti ààlà dátà tirẹ̀, ìlò ojoojúmọ́ àti ibi tí o lè yàn nínú orúkọ oníṣe proxy.

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

Àwọn ibi ìpè lójú ìwé yìí

  • GET /v1/residential/subscriptions: Ṣàtòjọ ètò dátà (ti ilé àti alágbèéká tí ń yípadà fún GB)
  • GET /v1/residential/subscriptions/{subscriptionId}: Gba ètò proxy ilé
  • PATCH /v1/residential/subscriptions/{subscriptionId}: Yí orúkọ padà tàbí mú ìsọdọtun ṣiṣẹ́/dá a dúró
  • POST /v1/residential/subscriptions/{subscriptionId}/reset-password: Ṣẹ̀dá ọ̀rọ̀ aṣínà proxy tuntun fún oníṣe àkọ́kọ́
  • GET /v1/residential/subscriptions/{subscriptionId}/usage: Ìlò dátà ojoojúmọ́
  • GET /v1/residential/subscriptions/{subscriptionId}/sub-users: Ṣàtòjọ oníṣe abẹ́ (àlàyé ìwọlé proxy ọ̀tọ̀ pẹ̀lú ààlà dátà tirẹ̀)
  • POST /v1/residential/subscriptions/{subscriptionId}/sub-users: Ṣẹ̀dá oníṣe abẹ́
  • PATCH /v1/residential/subscriptions/{subscriptionId}/sub-users/{subUserId}: Ṣàtúnṣe oníṣe abẹ́ (àmi, ààlà, mú ṣiṣẹ́/dá dúró, ọ̀rọ̀ aṣínà tuntun)
  • DELETE /v1/residential/subscriptions/{subscriptionId}/sub-users/{subUserId}: Pa oníṣe abẹ́ rẹ́
  • GET /v1/catalog/countries: Àwọn orílẹ̀-èdè tí ọjà kan ti wà
  • GET /v1/catalog/countries/{countryCode}/cities: Àwọn ìlú tí a lè yàn nínú orílẹ̀-èdè
  • GET /v1/catalog/countries/{countryCode}/asns: Olùpèsè íńtánẹ́ẹ̀tì (ASN) tí a lè yàn nínú orílẹ̀-èdè — ti ilé nìkan

URL ìpìlẹ̀ https://africaproxies.com/api/v1. Ìmúdájú ìwọlé, àṣìṣe àti ààlà: wo àkótán API.

Ìgbà ìṣiṣẹ́ àdírẹ́sì kan náà

Fi -session-{id}-ttl-{minutes} kún orúkọ oníṣe proxy láti pa IP kan náà mọ́: {id} jẹ́ lẹ́tà tàbí nọ́mbà 1–32 tí o yàn, ttl jẹ́ ìṣẹ́jú 1–30. IP lè yípadà ṣáájú, bí ẹ̀rọ tó wà lẹ́yìn rẹ̀ bá já kúrò lórí íńtánẹ́ẹ̀tì.

Ṣàtòjọ ètò dátà (ti ilé àti alágbèéká tí ń yípadà fún GB)

GET/v1/residential/subscriptions

Ì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
productIdqueryresidential · mobile-gbRáráỌjà yìí nìkan (bí kò bá sí: méjèèjì).

Ìdáhùn 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"
    }
  ]
}

Àpẹẹrẹ kòdì

curl
curl -s "https://africaproxies.com/api/v1/residential/subscriptions" \
  -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}/residential/subscriptions", 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}/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());

Gba ètò proxy ilé

GET/v1/residential/subscriptions/{subscriptionId}

Ì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
subscriptionIdpathstringBẹ́ẹ̀ ni—

Ìdáhùn 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"
}

Àpẹẹrẹ kòdì

curl
curl -s "https://africaproxies.com/api/v1/residential/subscriptions/res_9x2m4k" \
  -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}/residential/subscriptions/res_9x2m4k", 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}/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());

Yí orúkọ padà tàbí mú ìsọdọtun ṣiṣẹ́/dá a dúró

PATCH/v1/residential/subscriptions/{subscriptionId}

Ì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
subscriptionIdpathstringBẹ́ẹ̀ 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á—
Àpẹẹrẹ
{
  "label": "Price monitoring",
  "autoRenew": true
}

Ìdáhùn 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"
}

Àpẹẹrẹ kòdì

curl
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}'
Python
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
// 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());

Ṣẹ̀dá ọ̀rọ̀ aṣínà proxy tuntun fún oníṣe àkọ́kọ́

POST/v1/residential/subscriptions/{subscriptionId}/reset-password

Ọ̀rọ̀ aṣínà àtijọ́ dá iṣẹ́ dúró ní gateway láàárín ìṣẹ́jú-àáyá 60.

Ì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
subscriptionIdpathstringBẹ́ẹ̀ ni—

Ìdáhùn 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"
}

Àpẹẹrẹ kòdì

curl
curl -s -X POST "https://africaproxies.com/api/v1/residential/subscriptions/res_9x2m4k/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}/residential/subscriptions/res_9x2m4k/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}/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());

Ìlò dátà ojoojúmọ́

GET/v1/residential/subscriptions/{subscriptionId}/usage

Ì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
subscriptionIdpathstringBẹ́ẹ̀ 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.
subUserIdquerystringRáráFi ààlà sí oníṣe abẹ́ kan.

Ì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/residential/subscriptions/res_9x2m4k/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}/residential/subscriptions/res_9x2m4k/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}/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());

Ṣàtòjọ oníṣe abẹ́ (àlàyé ìwọlé proxy ọ̀tọ̀ pẹ̀lú ààlà dátà tirẹ̀)

GET/v1/residential/subscriptions/{subscriptionId}/sub-users

Ì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
subscriptionIdpathstringBẹ́ẹ̀ ni—

Ìdáhùn 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
}

Àpẹẹrẹ kòdì

curl
curl -s "https://africaproxies.com/api/v1/residential/subscriptions/res_9x2m4k/sub-users" \
  -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}/residential/subscriptions/res_9x2m4k/sub-users", 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}/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());

Ṣẹ̀dá oníṣe abẹ́

POST/v1/residential/subscriptions/{subscriptionId}/sub-users

Ì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
subscriptionIdpathstringBẹ́ẹ̀ ni—

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

ÀpááÌpòFéyíÀpèjúwe
labelstringBẹ́ẹ̀ nió pọ̀ jù lọ: àmì ìkọ̀wé 60
passwordstringRáráA ṣẹ̀dá rẹ̀ bí o kò bá fi sí i. — ó pọ̀ jù lọ: àmì ìkọ̀wé 64
trafficLimitBytesinteger (int64), nullableRárá≥ 0
Àpẹẹrẹ
{
  "label": "Scraper EU",
  "trafficLimitBytes": 5000000000
}

Ìdáhùn 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"
}

Àpẹẹrẹ kòdì

curl
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}'
Python
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
// 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());

Ṣàtúnṣe oníṣe abẹ́ (àmi, ààlà, mú ṣiṣẹ́/dá dúró, ọ̀rọ̀ aṣínà tuntun)

PATCH/v1/residential/subscriptions/{subscriptionId}/sub-users/{subUserId}

Ì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
subscriptionIdpathstringBẹ́ẹ̀ ni—
subUserIdpathstringBẹ́ẹ̀ ni—

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

ÀpááÌpòFéyíÀpèjúwe
labelstringRáráó pọ̀ jù lọ: àmì ìkọ̀wé 60
trafficLimitBytesinteger (int64), nullableRárá≥ 0
enabledbooleanRárá—
regeneratePasswordbooleanRárá—
Àpẹẹrẹ
{
  "enabled": false
}

Ìdáhùn 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"
}

Àpẹẹrẹ kòdì

curl
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}'
Python
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
// 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());

Pa oníṣe abẹ́ rẹ́

DELETE/v1/residential/subscriptions/{subscriptionId}/sub-users/{subUserId}

Ì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
subscriptionIdpathstringBẹ́ẹ̀ ni—
subUserIdpathstringBẹ́ẹ̀ ni—

Ìdáhùn 204 No Content

Kò sí ara: kòódì ìdáàbọ̀ ni ìdáhùn.

Àpẹẹrẹ kòdì

curl
curl -s -X DELETE "https://africaproxies.com/api/v1/residential/subscriptions/res_9x2m4k/sub-users/sub_3m9qk2" \
  -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.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
// 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: done

Àwọn orílẹ̀-èdè tí ọjà kan ti wà

GET/v1/catalog/countries

Ìgbàlọwọ́: kò nílò API key.

Àwọn àmì ohun

OrúkọNínúÌpòFéyíÀpèjúwe
productquerystringRáráFi ààlà sí ibi tí ọjà yìí wà (residential, mobile, mobile-gb).

Ìdáhùn 200 OK

{
  "data": [
    {
      "code": "AE",
      "name": "United Arab Emirates",
      "region": "Asia",
      "products": [
        "residential",
        "mobile",
        "mobile-gb"
      ],
      "cities": 6,
      "asns": 2,
      "carriers": 2
    }
  ]
}

Àpẹẹrẹ kòdì

curl
curl -s "https://africaproxies.com/api/v1/catalog/countries"
Python
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
// 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());

Àwọn ìlú tí a lè yàn nínú orílẹ̀-èdè

GET/v1/catalog/countries/{countryCode}/cities

Pẹ̀lú product=mobile tàbí product=mobile-gb, àwọn ìlú tí modem 4G/5G wà nìkan.

Ì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á.
productquerystringRáráFi ààlà sí ibi tí ọjà yìí wà (residential, mobile, mobile-gb).

Ìdáhùn 200 OK

{
  "data": [
    {
      "id": "dubai",
      "name": "Dubai",
      "state": null
    }
  ]
}

Àpẹẹrẹ kòdì

curl
curl -s "https://africaproxies.com/api/v1/catalog/countries/AE/cities"
Python
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
// 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());

Olùpèsè íńtánẹ́ẹ̀tì (ASN) tí a lè yàn nínú orílẹ̀-èdè — ti ilé nìkan

GET/v1/catalog/countries/{countryCode}/asns

Ì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": [
    {
      "asn": 7922,
      "name": "Comcast Cable"
    }
  ]
}

Àpẹẹrẹ kòdì

curl
curl -s "https://africaproxies.com/api/v1/catalog/countries/AE/asns"
Python
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
// 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());

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

Yan 1 GB