من أين أبدأ؟
- 1سجّل باسم مستخدم وادخل إلى لوحة التحكم.
- 2أنشئ مفتاح API في تبويب Connect. يظهر المفتاح كاملًا مرة واحدة، عند إنشائه، لذا احفظه في مكان آمن فورًا.
- 3أرسل المفتاح في ترويسة Authorization مع كل طلب يحتاج إليه.
- 4استدعِ /account أولًا للتحقق من أن المفتاح يعمل، ثم نفّذ الطلبات عبر /orders.
المصادقة
الطلبات الخاصة بحسابك (account وorders وproxy-user) تتطلب مفتاح API يُرسل في الترويسة بالشكل Authorization: Bearer spk_... أما الأسعار والدول وعروض الأسعار فعامة وتعمل دون مفتاح.
تحتفظ StarProxy بقيمة hash لكل مفتاح فقط، لا بالمفتاح نفسه. إذا فقدت مفتاحًا، فأنشئ مفتاحًا جديدًا في لوحة التحكم. يتوقف المفتاح القديم عن العمل في تلك اللحظة. احفظ المفاتيح في كود الخادم فقط. لا تضعها أبدًا في كود يعمل في المتصفح أو في مستودع عام.
Authorization: Bearer spk_your_api_key
عنوان URL الأساسي وصيغة البيانات
- عنوان URL الأساسي
- https://starproxy.shop/api/v1
- محتوى الطلب والاستجابة
- application/json
- المبالغ
- بالدولار الأمريكي كرقم، مثل 1047.70
- الطوابع الزمنية
- 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
يعيد رصيدك، ومضيف البروكسي ومنافذه، واسم مستخدم البروكسي وكلمة المرور، وعناوين IP المسموح بها.
curl https://starproxy.shop/api/v1/account \ -H "Authorization: Bearer spk_your_api_key"
{
"username": "star_user01",
"balance_usd": 1300,
"proxy": {
"host": "gate.starproxy.shop",
"http_port": 6100,
"socks5_port": 6200,
"username": "spexample1",
"password": "your_password"
},
"allowed_ips": [
"203.0.113.10"
]
}عرض المنتجات والأسعار
GET/api/v1/productsلا يحتاج إلى مفتاح
يعيد نطاق الطلب لكل منتج، والسعر لكل شريحة كمية، وخصومات المدة، من جدول الأسعار نفسه الموجود في صفحة الأسعار.
curl https://starproxy.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://starproxy.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://starproxy.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.41,
"unit": "day",
"total_usd": 252.3
}إنشاء طلب
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://starproxy.shop/api/v1/orders \
-H "Authorization: Bearer spk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"order": {
"id": "SP-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.41,
"total_usd": 252.3,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
},
"balance_usd": 1047.7
}قائمة الطلبات
GET/api/v1/ordersيتطلب مفتاح API
يعيد حتى 100 طلب، الأحدث أولًا.
| الحقل | النوع | المعنى |
|---|---|---|
statusاختياري | string | إحدى القيم pending أو active أو refunded. اتركها فارغة لكل الحالات. |
curl "https://starproxy.shop/api/v1/orders?status=pending" \ -H "Authorization: Bearer spk_your_api_key"
{
"orders": [
{
"id": "SP-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.41,
"total_usd": 252.3,
"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 | معرّف الطلب، مثل SP-7KQ2M-X4HTD. |
curl https://starproxy.shop/api/v1/orders/SP-7KQ2M-X4HTD \ -H "Authorization: Bearer spk_your_api_key"
{
"order": {
"id": "SP-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.41,
"total_usd": 252.3,
"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://starproxy.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \ -H "Authorization: Bearer spk_your_api_key"
{
"username": "spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
"password": "your_password",
"http": "http://spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.starproxy.shop:6100",
"socks5": "socks5h://spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.starproxy.shop:6200"
}مثال كامل
سكربت واحد يحصل على عرض سعر، ويطلب من رصيدك، ويتصل عبر IP ياباني.
import requests
API = "https://starproxy.shop/api/v1"
HEAD = {"Authorization": "Bearer spk_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://starproxy.shop/api/v1";
const HEAD = { Authorization: "Bearer spk_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 بالطريقة نفسها التي تُعالج بها طلبات لوحة التحكم وتظهر في تبويب السجل. استبدل spk_your_api_key في الأمثلة بمفتاحك.