جديد هنا؟ اتبع هذه الخطوات
- 1سجّل ببريد إلكتروني وكلمة مرور، أو برمز، وافتح لوحة التحكم.
- 2أصدر مفتاح API من تبويب Connect. يظهر المفتاح كاملًا مرة واحدة فقط، لحظة إصداره، لذا احفظه فورًا.
- 3ضع المفتاح في ترويسة Authorization لكل طلب يحتاج إليه.
- 4استدعِ /account أولًا للتأكد من قبول المفتاح، ثم أرسل الطلبات عبر /orders.
كيف تعمل المصادقة؟
الطلبات التي تخص حسابك (account وorders وproxy-user) تحتاج إلى مفتاح API. أرسله في الترويسة بالشكل Authorization: Bearer pwk_... أما الأسعار والدول وعروض الأسعار فمتاحة للجميع ويمكن استدعاؤها دون مفتاح.
خوادم ProxyWorld لا تخزن المفتاح نفسه أبدًا، بل قيمة hash منه فقط. إذا فقدت مفتاحًا فأنشئ مفتاحًا جديدًا في لوحة التحكم، ويُحظر القديم فورًا. ضع المفاتيح في الكود الذي يعمل على الخادم فقط. إذا وصل المفتاح إلى كود يعمل في المتصفح أو إلى مستودع عام، يمكن لغيرك استخدامه.
Authorization: Bearer pwk_your_api_key
عنوان URL الأساسي وصيغة البيانات
- عنوان URL الأساسي
- https://proxyworld.shop/api/v1
- محتوى الطلب والاستجابة
- application/json
- المبالغ
- بالدولار الأمريكي كرقم، مثل 1058.50
- الطوابع الزمنية
- ISO 8601 (UTC)
كم استدعاءً يمكنني إجراؤه؟
يمكن لكل مفتاح API إجراء 60 استدعاء في الدقيقة. نقاط الاتصال العامة التي تُستدعى دون مفتاح تسمح بـ 60 استدعاء في الدقيقة لكل IP. إذا تجاوزت ذلك تحصل على HTTP 429. انتظر نحو دقيقة ثم حاول مرة أخرى.
ماذا يعود عند حدوث خطأ؟
تحصل على رمز حالة HTTP ومحتوى JSON يتضمن رمز خطأ قصيرًا وشرحًا.
{
"error": {
"code": "insufficient_balance",
"message": "Your balance is too low for this order. Top up in the dashboard."
}
}| HTTP | code | المعنى |
|---|---|---|
| bad_requestHTTP 400قيمة مطلوبة مفقودة، أو أُرسلت قيمة لا يقبلها هذا المنتج. | قيمة مطلوبة مفقودة، أو أُرسلت قيمة لا يقبلها هذا المنتج. | |
| unauthorizedHTTP 401مفتاح API مفقود أو غير صالح. | مفتاح API مفقود أو غير صالح. | |
| insufficient_balanceHTTP 402رصيدك أقل من إجمالي الطلب. لم يُخصم أي مبلغ من رصيدك. | رصيدك أقل من إجمالي الطلب. لم يُخصم أي مبلغ من رصيدك. | |
| not_foundHTTP 404لا يوجد في حسابك طلب بهذا الرقم. | لا يوجد في حسابك طلب بهذا الرقم. | |
| rate_limitedHTTP 429تجاوزت عدد الاستدعاءات المسموح به في الدقيقة. | تجاوزت عدد الاستدعاءات المسموح به في الدقيقة. | |
| server_errorHTTP 500تعذّر على الخادم إتمام الطلب. لم يُخصم أي مبلغ من رصيدك. | تعذّر على الخادم إتمام الطلب. لم يُخصم أي مبلغ من رصيدك. |
نقاط الاتصال
عرض حسابك
GET/api/v1/accountيتطلب مفتاح API
يعيد طريقة تسجيل دخولك (login: email أو token)، وبريدك الإلكتروني، والرصيد، ومضيف البروكسي ومنافذه، واسم مستخدم البروكسي وكلمة المرور، وعناوين IP المسموح بها. في الحسابات المنشأة برمز تكون قيمة email هي null.
curl https://proxyworld.shop/api/v1/account \ -H "Authorization: Bearer pwk_your_api_key"
{
"login": "email",
"email": "you@example.com",
"balance_usd": 1300,
"proxy": {
"host": "gate.proxyworld.shop",
"http_port": 6100,
"socks5_port": 6200,
"username": "pwexample1",
"password": "your_password"
},
"allowed_ips": [
"203.0.113.10"
]
}عرض المنتجات والأسعار
GET/api/v1/productsيعمل دون مفتاح
يعيد نطاق الطلب لكل منتج، وسعر الوحدة لكل شريحة كمية، وخصومات المدة. ويستخدم جدول الأسعار نفسه الموجود في صفحة الأسعار.
curl https://proxyworld.shop/api/v1/products
{
"currency": "USD",
"prices_as_of": "2026-10-31",
"products": [
{
"id": "unlimited",
"unit": "day",
"quantity": {
"meaning": "days",
"min": 1,
"max": 365
},
"...": "..."
},
{
"id": "residential",
"unit": "gb",
"...": "..."
}
]
}الدول والمدن
GET/api/v1/countriesيعمل دون مفتاح
يعيد الدول التي يمكنك اختيارها لكل منتج، مع قيم المدن المستخدمة في خيار -city- في اسم المستخدم.
| الاسم | النوع | المعنى |
|---|---|---|
productاختياري | string | إحدى القيم unlimited أو residential أو isp أو datacenter. إذا لم تُرسل، تُستخدم residential. |
curl "https://proxyworld.shop/api/v1/countries?product=datacenter"
{
"product": "datacenter",
"countries": [
{
"code": "us",
"name": "United States",
"region": "americas",
"datacenter": true,
"cities": [
{
"name": "New York",
"value": "new_york"
},
{
"name": "Los Angeles",
"value": "los_angeles"
}
]
}
]
}الحصول على عرض سعر
POST/api/v1/quoteيعمل دون مفتاح
يحسب إجمالي الطلب دون المساس برصيدك. أرسل المحتوى نفسه الذي سترسله لتنفيذ الطلب.
| الاسم | النوع | المعنى |
|---|---|---|
productمطلوب | string | إحدى القيم unlimited أو residential أو isp أو datacenter. |
quantityمطلوب | integer | الكمية المطلوبة: الأيام لـ unlimited (1~365)، وGB لـ residential (5~5,000)، وعدد عناوين IP لـ isp (1~1,000) أو datacenter (5~5,000). |
concurrencyاختياري | integer | لـ unlimited فقط. اختر إحدى القيم 200 أو 500 أو 1000 أو 2000. |
bandwidthاختياري | integer | لـ unlimited فقط، بوحدة Mbps. إحدى القيم 100 أو 200 أو 500 أو 1000. |
monthsاختياري | integer | لـ isp وdatacenter فقط. إحدى القيم 1 أو 3 أو 6 أو 12. |
countryاختياري | string | لـ isp وdatacenter فقط. رمز دولة من حرفين مثل jp. القيم المقبولة مدرجة في /countries. |
curl -X POST https://proxyworld.shop/api/v1/quote \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"product": "unlimited",
"quantity": 30,
"unit_price_usd": 8.05,
"unit": "day",
"total_usd": 241.5
}تنفيذ طلب
POST/api/v1/ordersيتطلب مفتاح API
يخصم الإجمالي من رصيدك وينشئ الطلب. يبدأ بحالة pending (قيد التفعيل) ويتحول إلى active عندما يصبح جاهزًا. الطلب الذي يتعذّر تفعيله يصبح refunded، ويعود كل ما دفعته إلى رصيدك. إذا كان رصيدك منخفضًا جدًا، تحصل على 402.
| الاسم | النوع | المعنى |
|---|---|---|
productمطلوب | string | إحدى القيم unlimited أو residential أو isp أو datacenter. |
quantityمطلوب | integer | الكمية المطلوبة: الأيام لـ unlimited (1~365)، وGB لـ residential (5~5,000)، وعدد عناوين IP لـ isp (1~1,000) أو datacenter (5~5,000). |
concurrencyاختياري | integer | لـ unlimited فقط. اختر إحدى القيم 200 أو 500 أو 1000 أو 2000. |
bandwidthاختياري | integer | لـ unlimited فقط، بوحدة Mbps. إحدى القيم 100 أو 200 أو 500 أو 1000. |
monthsاختياري | integer | لـ isp وdatacenter فقط. إحدى القيم 1 أو 3 أو 6 أو 12. |
countryاختياري | string | لـ isp وdatacenter فقط. رمز دولة من حرفين مثل jp. القيم المقبولة مدرجة في /countries. |
curl -X POST https://proxyworld.shop/api/v1/orders \
-H "Authorization: Bearer pwk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"order": {
"id": "PW-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.05,
"total_usd": 241.5,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
},
"balance_usd": 1058.5
}عرض طلباتك
GET/api/v1/ordersيتطلب مفتاح API
يعرض حتى 100 طلب، بدءًا من الأحدث.
| الاسم | النوع | المعنى |
|---|---|---|
statusاختياري | string | إحدى القيم pending أو active أو refunded. اتركها فارغة للحصول على الطلبات بأي حالة. |
curl "https://proxyworld.shop/api/v1/orders?status=pending" \ -H "Authorization: Bearer pwk_your_api_key"
{
"orders": [
{
"id": "PW-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.05,
"total_usd": 241.5,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
}
]
}عرض طلب واحد
GET/api/v1/orders/{id}يتطلب مفتاح API
يعيد الطلب المطابق لرقم الطلب. مفيد للتحقق مما إذا انتهى التفعيل.
| الاسم | النوع | المعنى |
|---|---|---|
idمطلوب | string | رقم الطلب، مثل PW-7KQ2M-X4HTD. |
curl https://proxyworld.shop/api/v1/orders/PW-7KQ2M-X4HTD \ -H "Authorization: Bearer pwk_your_api_key"
{
"order": {
"id": "PW-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.05,
"total_usd": 241.5,
"status": "active",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:40:02.511Z"
}
}تكوين اسم مستخدم البروكسي
GET/api/v1/proxy-userيتطلب مفتاح API
يعيد اسم مستخدم بروكسي مضافًا إليه خياراتك، مع عناوين URL لـ HTTP وSOCKS5 يمكنك لصقها كما هي. إذا لم ترسل session، يتغير IP مع كل طلب.
| الاسم | النوع | المعنى |
|---|---|---|
productاختياري | string | إحدى القيم unlimited أو residential أو isp أو datacenter. إذا لم تُرسل، تُستخدم unlimited. |
countryاختياري | string | رمز دولة من حرفين، مثل jp. |
cityاختياري | string | قيمة مدينة مدرجة في /countries، مثل tokyo. أرسل country معها. |
sessionاختياري | string | من 1~32 حرفًا ورقمًا. الطلبات التي تحمل session نفسها تستخدم IP نفسه. |
ttlاختياري | integer | مدة احتفاظ الجلسة بالـ IP، من 1~60 دقيقة. إذا لم تُرسل، 30 دقيقة. |
curl "https://proxyworld.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \ -H "Authorization: Bearer pwk_your_api_key"
{
"username": "pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
"password": "your_password",
"http": "http://pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyworld.shop:6100",
"socks5": "socks5h://pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyworld.shop:6200"
}مثال كامل من البداية إلى النهاية
سكربت واحد يحصل على عرض سعر، ويطلب من رصيدك، ثم يتصل عبر IP في اليابان.
import requests
API = "https://proxyworld.shop/api/v1"
HEAD = {"Authorization": "Bearer pwk_your_api_key"}
# 1) Check the price first
plan = {"product": "residential", "quantity": 100}
print(requests.post(f"{API}/quote", json=plan).json())
# 2) Order from your balance
r = requests.post(f"{API}/orders", json=plan, headers=HEAD)
order = r.json()["order"]
print(order["id"], order["status"])
# 3) Get a username for Japanese IPs
u = requests.get(f"{API}/proxy-user", headers=HEAD,
params={"product": "residential", "country": "jp"}).json()
proxies = {"http": u["http"], "https": u["http"]}
print(requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30).json())const API = "https://proxyworld.shop/api/v1";
const HEAD = { Authorization: "Bearer pwk_your_api_key", "Content-Type": "application/json" };
// Check the balance
const acc = await fetch(`${API}/account`, { headers: HEAD }).then((r) => r.json());
console.log(acc.balance_usd);
// Order 7 days of unlimited
const res = await fetch(`${API}/orders`, {
method: "POST",
headers: HEAD,
body: JSON.stringify({ product: "unlimited", quantity: 7, concurrency: 500, bandwidth: 100 }),
});
if (res.status === 402) console.log("Top up first");
else console.log((await res.json()).order.id);الطلبات المنفذة عبر API تُعالج تمامًا مثل طلبات لوحة التحكم وتظهر في تبويب السجل مع غيرها. استبدل pwk_your_api_key في الأمثلة بمفتاح API الخاص بك.