በዚህ ገጽ ያሉ መዳረሻዎች
GET /v1/mobile: የሞባይል ፖርቶችን ይዘርዝሩGET /v1/mobile/{portId}: የሞባይል ፖርት ያግኙPATCH /v1/mobile/{portId}: እንደገና ይሰይሙ፣ ራስ-ሰር እድሳትን ያብሩ/ያጥፉ፣ ወይም ራስ-ሰር ማለዋወጥ ያዋቅሩPOST /v1/mobile/{portId}/rotate: IP አሁን ይቀይሩGET /v1/mobile/{portId}/rotate: የማለዋወጫ አገናኝ (GET ከAPI ቁልፍ ጋር በመጠይቅ ጽሑፍ)POST /v1/mobile/{portId}/reset-password: ለፖርቱ አዲስ የproxy ይለፍ ቃል ይፍጠሩGET /v1/mobile/{portId}/usage: በፖርቱ የሚያልፍ ዕለታዊ ትራፊክ (ለመረጃ፦ በፍትሃዊ አጠቃቀም መሠረት ያልተገደበ ዳታ)GET /v1/catalog/countries/{countryCode}/carriers: በአገር ውስጥ የሚገኙ 4G/5G ፖርቶች ያላቸው የሞባይል ኦፕሬተሮች
መሠረታዊ URL https://africaproxies.com/api/v1። የመለያ ማረጋገጫ፣ ስህተቶችና ገደቦች፦ የAPI አጠቃላይ መግለጫ ይመልከቱ።
የሞባይል ፖርቶችን ይዘርዝሩ
GET/v1/mobile
ማረጋገጫ፦ የAPI ቁልፍ በAuthorization: Bearer API_KEY ራስጌ ውስጥ።
ምላሽ 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"
}
]
}የኮድ ምሳሌዎች
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());የሞባይል ፖርት ያግኙ
GET/v1/mobile/{portId}
ማረጋገጫ፦ የAPI ቁልፍ በAuthorization: Bearer API_KEY ራስጌ ውስጥ።
ፓራሜትሮች
| ስም | በ | ዓይነት | አስፈላጊ | መግለጫ |
|---|---|---|---|---|
portId | path | string | አዎ | — |
ምላሽ 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"
}የኮድ ምሳሌዎች
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());እንደገና ይሰይሙ፣ ራስ-ሰር እድሳትን ያብሩ/ያጥፉ፣ ወይም ራስ-ሰር ማለዋወጥ ያዋቅሩ
PATCH/v1/mobile/{portId}
ፖርቱን እንደገና ይሰይሙ፣ ራስ-ሰር እድሳትን ያብሩ ወይም ያጥፉ፣ ወይም ከእያንዳንዱ 2 ደቂቃ እስከ እያንዳንዱ 24 ሰዓት የሚደርስ ራስ-ሰር ማለዋወጫ ጊዜ ያዘጋጁ፦ "rotation": { "mode": "interval", "intervalMinutes": 10 } (2–1440 ደቂቃ)፤ "mode": "manual" ያጠፋዋል። ካልሆነ፣ እርስዎ እስኪያለዋውጡት ድረስ ፖርትዎ ያለውን IP ያቆያል፣ ምንም እንኳን ኦፕሬተሩ ከጊዜ ወደ ጊዜ በራሱ ሊቀይረው ቢችልም።
ማረጋገጫ፦ የAPI ቁልፍ በAuthorization: Bearer API_KEY ራስጌ ውስጥ።
ፓራሜትሮች
| ስም | በ | ዓይነት | አስፈላጊ | መግለጫ |
|---|---|---|---|---|
portId | path | string | አዎ | — |
የጥያቄ አካል
| መስክ | ዓይነት | አስፈላጊ | መግለጫ |
|---|---|---|---|
label | string | አይደለም | እስከ 60 ቁምፊዎች |
autoRenew | boolean | አይደለም | — |
rotation | object | አይደለም | ራስ-ሰር የማለዋወጫ ሰዓት፦ { "mode": "interval", "intervalMinutes": 2–1440 } (ከእያንዳንዱ 2 ደቂቃ እስከ እያንዳንዱ 24 ሰዓት)፣ ወይም ሲጠየቅ ብቻ ለማለዋወጥ { "mode": "manual", "intervalMinutes": null }። |
{
"rotation": {
"mode": "interval",
"intervalMinutes": 10
}
}{
"rotation": {
"mode": "manual",
"intervalMinutes": null
}
}ምላሽ 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"
}የኮድ ምሳሌዎች
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());IP አሁን ይቀይሩ
POST/v1/mobile/{portId}/rotate
እያንዳንዱ ማለዋወጥ አዲስ IP ለማግኘት ፖርትዎን ከኦፕሬተሩ ጋር እንደገና ያገናኛል፣ ብዙውን ጊዜም 5–15 ሰከንዶች ይወስዳል፤ ኦፕሬተሩ አንዳንድ ጊዜ ያንኑ IP ሊመልስ ይችላል፦ እንደገና ያለዋውጡ። በእያንዳንዱ ፖርት ቢበዛ በ30 ሰከንድ አንድ ጊዜ (minRotationIntervalSeconds)፤ ከጊዜው ቀድሞ የተጠየቀ ማለዋወጥ 429 rotation_too_soon ከ Retry-After ጋር ይመልሳል (መጠበቅ ያለብዎት ሰከንዶች)።
ማረጋገጫ፦ የAPI ቁልፍ በAuthorization: Bearer API_KEY ራስጌ ውስጥ።
ፓራሜትሮች
| ስም | በ | ዓይነት | አስፈላጊ | መግለጫ |
|---|---|---|---|---|
portId | path | string | አዎ | — |
ምላሽ 200 OK
{
"ip": "203.0.113.201",
"previousIp": "203.0.113.77",
"rotatedAt": "2026-10-05T14:03:11Z",
"nextRotationAvailableAt": "2026-10-05T14:03:41Z"
}የኮድ ምሳሌዎች
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());የማለዋወጫ አገናኝ (GET ከAPI ቁልፍ ጋር በመጠይቅ ጽሑፍ)
GET/v1/mobile/{portId}/rotate
ከ POST ጋር ተመሳሳይ፣ ለስክሪፕቶችና ለዕልባቶች፦ GET https://africaproxies.com/api/v1/mobile/{portId}/rotate?key=API_KEY። ቁልፉ proxies የፈቃድ ወሰን ያስፈልገዋል። format=text አዲሱን IP እንደ text/plain ይመልሳል።
ማረጋገጫ፦ በkey query parameter ውስጥ API key (scope proxies) አለ፣ ስለዚህ ሊንኩ ከbookmark ይሰራል።
ፓራሜትሮች
| ስም | በ | ዓይነት | አስፈላጊ | መግለጫ |
|---|---|---|---|---|
key | query | string | አዎ | የእርስዎ API ቁልፍ (proxies የፈቃድ ወሰን)። |
portId | path | string | አዎ | — |
format | query | json · text | አይደለም | ነባሪ json |
ምላሽ 200 OK
{
"ip": "203.0.113.201",
"previousIp": "203.0.113.77",
"rotatedAt": "2026-10-05T14:03:11Z",
"nextRotationAvailableAt": "2026-10-05T14:03:41Z"
}የኮድ ምሳሌዎች
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());ለፖርቱ አዲስ የproxy ይለፍ ቃል ይፍጠሩ
POST/v1/mobile/{portId}/reset-password
ማረጋገጫ፦ የAPI ቁልፍ በAuthorization: Bearer API_KEY ራስጌ ውስጥ።
ፓራሜትሮች
| ስም | በ | ዓይነት | አስፈላጊ | መግለጫ |
|---|---|---|---|---|
portId | path | string | አዎ | — |
ምላሽ 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"
}የኮድ ምሳሌዎች
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());በፖርቱ የሚያልፍ ዕለታዊ ትራፊክ (ለመረጃ፦ በፍትሃዊ አጠቃቀም መሠረት ያልተገደበ ዳታ)
GET/v1/mobile/{portId}/usage
ለመረጃ ብቻ። በተወሰነው ፖርትዎ ያልተገደበ ዳታ፣ በፍትሃዊ አጠቃቀም መሠረት፦ ኦፕሬተሩ እጅግ ከባድ አጠቃቀምን ሊያዘገይ ወይም ሊያቆም ይችላል።
ማረጋገጫ፦ የAPI ቁልፍ በAuthorization: Bearer API_KEY ራስጌ ውስጥ።
ፓራሜትሮች
| ስም | በ | ዓይነት | አስፈላጊ | መግለጫ |
|---|---|---|---|---|
portId | path | string | አዎ | — |
from | query | string (date) | አይደለም | የመጀመሪያ ቀን (UTC)፣ ቀኑን ጨምሮ። ነባሪ = ከ to በፊት 29 ቀናት። |
to | query | string (date) | አይደለም | የመጨረሻ ቀን (UTC)፣ ቀኑን ጨምሮ። ነባሪ = ዛሬ። ከፍተኛ ክልል 366 ቀናት። |
ምላሽ 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
}
]
}የኮድ ምሳሌዎች
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());በአገር ውስጥ የሚገኙ 4G/5G ፖርቶች ያላቸው የሞባይል ኦፕሬተሮች
GET/v1/catalog/countries/{countryCode}/carriers
የሕዝብ፡ ምንም API ቁልፍ አያስፈልግም።
ፓራሜትሮች
| ስም | በ | ዓይነት | አስፈላጊ | መግለጫ |
|---|---|---|---|---|
countryCode | path | string | አዎ | ISO 3166-1 alpha-2፣ በአቢይ ፊደል። |
ምላሽ 200 OK
{
"data": [
{
"id": "etisalat",
"name": "Etisalat",
"networkTypes": [
"4G",
"5G"
],
"available": true,
"cities": []
}
]
}የኮድ ምሳሌዎች
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());