توثيق API

توثيق API Yunex

اربط متجرك أو لوحتك بخدمات Yunex لعرض الكتالوج والأسعار، قراءة الرصيد، وإنشاء الطلبات ومتابعتها من خلال مفتاح API آمن.

المصادقة بمفتاح API

أرسل المفتاح في ترويسة Authorization مع كل طلب. لا تضع المفتاح في كود الواجهة الأمامية أو المستودعات العامة.

Authorization: Bearer API_KEY
  1. 1سجّل الدخول إلى حسابك في Yunex.
  2. 2افتح لوحة التحكم ثم صفحة توثيق API.
  3. 3أنشئ مفتاحًا باسم واضح، واحفظ السر الذي يظهر مرة واحدة في مكان آمن.
  4. 4استخدم المفتاح مع Bearer في جميع طلبات /api/v1.
العنوان الأساسي
https://www.7amody.pro/api/v1

الأسعار والحدود ووقت التنفيذ تأتي من كتالوجك الحالي وقد تتغير عند مزامنة الخدمات. لا تعتمد على السعر في الواجهة فقط؛ خزّن charge الذي يرجعه API بعد إنشاء الطلب.

عرض الخدمات والأسعار

يعرض الكتالوج الخدمات النشطة بأسعار البيع عندك، أرقام الخدمات، المنصة، الفئة، الوصف، الحدود، الضمان، ووقت التنفيذ المتاح.

GET/services

يعرض الكتالوج الخدمات النشطة بأسعار البيع عندك، أرقام الخدمات، المنصة، الفئة، الوصف، الحدود، الضمان، ووقت التنفيذ المتاح.

استجابة مختصرةjson
{
  "services": [
    { "service": "123", "name": "...", "rate": 1.25,
      "platform": "instagram", "min": 100, "max": 100000,
      "description": "...", "average_time": "..." }
  ],
  "total": 50,
  "returned": 50
}
مثال على الطلبcurl
curl -X GET "https://www.7amody.pro/api/v1/services?platform=instagram&limit=100" \
  -H "Authorization: Bearer API_KEY"

الرصيد

يعرض الرصيد الحالي لصاحب مفتاح API والعملة وأسعار الصرف المتاحة.

GET/balance

يعرض الرصيد الحالي لصاحب مفتاح API والعملة وأسعار الصرف المتاحة.

استجابة مختصرةjson
{
  "balance": 25.75,
  "currency": "USD",
  "rates": { "USD": 1, "EGP": 48 }
}
مثال على الطلبcurl
curl -X GET "https://www.7amody.pro/api/v1/balance" \
  -H "Authorization: Bearer API_KEY"

عرض الطلبات

اقرأ طلبات المستخدم نفسه مع الفلاتر والصفحات والحالة والكمية والتكلفة ووقت التنفيذ.

GET/orders

اقرأ طلبات المستخدم نفسه مع الفلاتر والصفحات والحالة والكمية والتكلفة ووقت التنفيذ.

استجابة مختصرةjson
{
  "orders": [{ "id": "...", "service": "123",
    "status": "pending", "quantity": 1000, "charge": 1.25 }],
  "page": 1, "limit": 50, "has_more": false
}
مثال على الطلبcurl
curl -X GET "https://www.7amody.pro/api/v1/orders?page=1&limit=50" \
  -H "Authorization: Bearer API_KEY"

إنشاء طلب

أرسل رقم الخدمة والرابط والكمية. يتم التحقق من الحدود ومن الرصيد ثم يُخصم المبلغ ذريًا ويُرسل الطلب إلى طابور التنفيذ.

POST/orders

service وlink وquantity

استجابة مختصرةjson
{
  "success": true,
  "order": { "id": "...", "status": "pending" },
  "charge": 1.25,
  "currency": "USD",
  "idempotent": false
}
جسم الطلبjson
{
  "service": "123",
  "link": "https://instagram.com/example",
  "quantity": 1000,
  "idempotency_key": "order-2026-0001"
}
ملاحظات مهمة: الأسعار والحدود ووقت التنفيذ تأتي من كتالوجك الحالي وقد تتغير عند مزامنة الخدمات. لا تعتمد على السعر في الواجهة فقط؛ خزّن charge الذي يرجعه API بعد إنشاء الطلب.

حالة طلب واحد

استخدم رقم الطلب الذي أعادته عملية الإنشاء لمتابعة الحالة والتقدم والكمية المتبقية.

GET/orders/{id}

استخدم رقم الطلب الذي أعادته عملية الإنشاء لمتابعة الحالة والتقدم والكمية المتبقية.

استجابة مختصرةjson
{
  "id": "...",
  "status": "completed",
  "quantity": 1000,
  "delivered_quantity": 1000,
  "remains": 0,
  "average_time_minutes": 12
}
مثال على الطلبcurl
curl -X GET "https://www.7amody.pro/api/v1/orders/{order_id}" \
  -H "Authorization: Bearer API_KEY"

أمثلة بلغات متعددة

غيّر قيمة API_KEY فقط، واستخدم رقم خدمة من استجابة /services.

cURLcurl
curl -X POST "https://www.7amody.pro/api/v1/orders" \
  -H "Authorization: Bearer API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"service":"123","link":"https://instagram.com/example","quantity":1000,"idempotency_key":"order-2026-0001"}'
Node.jsjavascript
const response = await fetch("https://www.7amody.pro/api/v1/orders", {
  method: "POST",
  headers: {
    Authorization: "Bearer API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    service: "123",
    link: "https://instagram.com/example",
    quantity: 1000,
    idempotency_key: "order-2026-0001",
  }),
});

const data = await response.json();
console.log(data);
Pythonpython
import requests

response = requests.post(
    "https://www.7amody.pro/api/v1/orders",
    headers={"Authorization": "Bearer API_KEY"},
    json={
        "service": "123",
        "link": "https://instagram.com/example",
        "quantity": 1000,
        "idempotency_key": "order-2026-0001",
    },
    timeout=20,
)
print(response.json())
PHPphp
$ch = curl_init("https://www.7amody.pro/api/v1/orders");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer API_KEY",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "service" => "123",
        "link" => "https://instagram.com/example",
        "quantity" => 1000,
        "idempotency_key" => "order-2026-0001",
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch);
Javajava
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://www.7amody.pro/api/v1/orders"))
    .header("Authorization", "Bearer API_KEY")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(
        "{\"service\":\"123\",\"link\":\"https://instagram.com/example\",\"quantity\":1000}"
    ))
    .build();
HttpResponse<String> response = HttpClient.newHttpClient()
    .send(request, HttpResponse.BodyHandlers.ofString());

الأخطاء وحدود الاستخدام

تستخدم الاستجابات بنية موحدة. عند الخطأ ستجد code وmessage داخل error. حد الاستخدام الافتراضي 60 طلبًا في الدقيقة لكل مفتاح.

HTTPالكود
401UNAUTHORIZED — مفتاح غير موجود أو غير صالح
402INSUFFICIENT_BALANCE — الرصيد غير كافٍ
404SERVICE_NOT_FOUND / ORDER_NOT_FOUND
429RATE_LIMITED — انتظر ثم أعد المحاولة
503MAINTENANCE أو ORDERS_DISABLED