> ## Documentation Index
> Fetch the complete documentation index at: https://germeytechnology-docs-remove-4o-image-nav.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# دليل دمج واجهة برمجة التطبيقات WebExtrator لتصيير صفحات الويب

> WebExtrator Web Render & Extract 集成指南 - Ace Data Cloud

`POST https://api.acedata.cloud/webextrator/render`

## المصادقة

أضف في رأس الطلب `Authorization: Bearer &lt;مفتاح API الخاص بك>`.

## معلمات الطلب

| الحقل               | النوع     | مطلوب | الافتراضي        | الوصف                                                                                             |
| ------------------- | --------- | :---: | ---------------- | ------------------------------------------------------------------------------------------------- |
| `url`               | string    |   ✅   | -                | عنوان URL للصفحة المراد تصييرها                                                                   |
| `user_agent`        | string    |   ❌   | النظام الافتراضي | تعيين User-Agent مخصص                                                                             |
| `timeout`           | number    |   ❌   | 30000            | مهلة التصيير الواحدة (بالملي ثانية)، الحد الأقصى 120000                                           |
| `wait_until`        | string    |   ❌   | `load`           | حدث اكتمال التحميل: `load`/`domcontentloaded`/`networkidle`                                       |
| `delay`             | number    |   ❌   | 0                | وقت الانتظار بعد اكتمال التحميل (بالملي ثانية)، الحد الأقصى 30000                                 |
| `wait_for_selector` | string    |   ❌   | -                | الانتظار حتى ظهور محدد CSS هذا                                                                    |
| `block_resources`   | string\[] |   ❌   | -                | حجب أنواع الموارد: `image`/`media`/`font`/`stylesheet` وغيرها                                     |
| `headers`           | object    |   ❌   | -                | رؤوس HTTP إضافية                                                                                  |
| `cookies`           | array     |   ❌   | -                | قائمة الكوكيز، كل عنصر بالشكل `{name, value, domain, path}`                                       |
| `callback_url`      | string    |   ❌   | -                | عنوان رد النداء في الوضع غير المتزامن؛ عند التوفير يعاد معرف المهمة فوراً، والنتيجة ترسل عبر POST |

## الاستجابة المتزامنة (بدون callback\_url)

```json theme={null}
{
  "success": true,
  "task_id": "550e8400-e29b-41d4-a716-446655440000",
  "trace_id": "550e8400-e29b-41d4-a716-446655440001",
  "started_at": "2026-05-02T10:30:00.123Z",
  "finished_at": "2026-05-02T10:30:05.456Z",
  "elapsed": 5.333,
  "data": {
    "kind": "render",
    "url": "https://example.com",
    "title": "Example Domain",
    "html": "<!doctype html>...",
    "text": "Example Domain ...",
    "markdown": "# Example Domain\n...",
    "screenshot": "data:image/png;base64,iVBORw0K...",
    "links": ["https://www.iana.org/domains/example"]
  }
}
```

## الوضع غير المتزامن (مع callback\_url)

الاستجابة الأولية:

```json theme={null}
{
  "success": true,
  "task_id": "550e8400-e29b-41d4-a716-446655440000",
  "trace_id": "550e8400-e29b-41d4-a716-446655440001",
  "started_at": "2026-05-02T10:30:00.123Z"
}
```

رؤوس الاستجابة ستحتوي على `x-usage-exempt: true`، مما يعني أن هذه المصافحة المتزامنة غير محسوبة ضمن التكلفة. عند إتمام المهمة فعلياً، سترسل المنصة طلب POST إلى `callback_url`، ويكون جسم الطلب هو حقل `data` من الاستجابة المتزامنة مضافاً إليه نفس حقول `task_id` / `trace_id` / `started_at` / `finished_at` / `elapsed`.

## استجابة الخطأ

```json theme={null}
{
  "success": false,
  "task_id": "550e8400-e29b-41d4-a716-446655440000",
  "trace_id": "550e8400-e29b-41d4-a716-446655440001",
  "started_at": "2026-05-02T10:30:00.123Z",
  "error": {
    "code": "timeout",
    "message": "page load timed out after 30000ms"
  }
}
```

رموز الخطأ: `bad_request` / `forbidden` / `too_many_requests` / `not_found` / `api_error` / `timeout` / `unknown` / `busy`.

## مثال

```bash theme={null}
curl -X POST https://api.acedata.cloud/webextrator/render \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "wait_until": "networkidle",
    "block_resources": ["image", "media", "font"]
  }'
```
