AutoAiSeo API وMCP
استخدم بيانات AutoAiSeo في برامجك الخاصة (REST API) أو مع مساعدي الذكاء الاصطناعي مثل Claude وChatGPT وCursor (MCP). كل طلب يصل فقط إلى بيانات حسابك.
البدء
- افتح في اللوحة علامة التبويب API وMCP ، ثم أنشئ مفتاحًا عبر مفتاح جديد . يُعرض المفتاح (
rk_live_…) مرة واحدة فقط. - أرسله عبر الترويسة
Authorization: Bearerفي كل طلب.
curl -H "Authorization: Bearer rk_live_…" https://autoaiseo.example/api/v1/sites
العنوان الأساسي: https://autoaiseo.example/api/v1. جميع الاستجابات بصيغة JSON؛ وتأتي نتائج الطلبات الناجحة ضمن الحقل data في جسم الاستجابة.
المصادقة والصلاحيات
| الصلاحية | ما الذي يمكنه فعله |
|---|---|
read (قراءة) | الحساب، والمواقع، والمقالات، والكلمات المفتاحية، وتقرير الروابط الخلفية، والتقدّم، وسجل الخدمات. |
read_write (قراءة وكتابة) | بالإضافة إلى إضافة أفكار المقالات، وطلب كتابة المقالات (تُخصم من الحصة الشهرية لخطتك)، ونشر المقالات. |
- 10 مفاتيح مفعّلة كحد أقصى لكل حساب. يمكن أن تكون المفاتيح بلا انتهاء أو صالحة لمدة 30 يومًا أو 90 يومًا أو سنة.
- لا يحفظ AutoAiSeo المفتاح نفسه، بل يحفظ فقط بصمة SHA-256 الخاصة به وبدايته الظاهرة (
rk_live_Ab3dEf). لا يمكن استعادة المفتاح المفقود؛ ألغِه وأنشئ مفتاحًا جديدًا. - تتوقف فورًا عن العمل المفاتيح التابعة لحسابات ملغاة أو منتهية أو معلّقة.
- ملفات تعريف الارتباط الخاصة بجلسة المتصفح غير صالحة في API؛ ويجب إرسال المفتاح مع كل طلب.
حد الطلبات
60 طلبًا في الدقيقة لكل مفتاح (أو اتصال OAuth). تتضمن الاستجابات الترويستين X-RateLimit-Limit و X-RateLimit-Remaining . وعند تجاوز الحد يُعاد الرمز 429 مع الترويسة Retry-After التي تحدد عدد الثواني الواجب انتظارها.
الأخطاء
{ "error": { "code": "not_found", "message": "Site bulunamadı" } }
| HTTP | code | المعنى |
|---|---|---|
| 400 | invalid_request | المعامل أو جسم الطلب غير صالح. |
| 401 | unauthorized, invalid_token | المفتاح مفقود أو غير صالح أو ملغى أو منتهي الصلاحية. |
| 402 | quota_exceeded | استُنفدت حصتك من المقالات لهذا الشهر. |
| 403 | insufficient_scope | تتطلب العملية صلاحية “قراءة وكتابة”. |
| 403 | account_suspended | الحساب معلّق. |
| 404 | not_found | السجل غير موجود أو لا يخصك. |
| 409 | conflict, not_ready, limit_reached | المقالة قيد الكتابة/منشورة بالفعل، أو غير جاهزة للنشر، أو تم بلوغ أحد الحدود. |
| 429 | rate_limited | تم تجاوز حد الطلبات. |
| 502 | publish_failed | لم تقبل وجهة النشر (WordPress، Shopify…) عملية النشر. |
| 500 | internal_error | خطأ غير متوقع في الخادم. |
ترقيم الصفحات
تقبل القوائم الطويلة المعاملين page و per_page (بحد أقصى 100–200)، وتُعيد المعلومات التالية:
"pagination": { "page": 1, "per_page": 50, "total": 132, "total_pages": 3 }
نقاط النهاية
GET /api/v1/me
الحساب، وحدود الخطة، واستخدام هذا الشهر، ورصيد الروابط الخلفية الإضافي، وصلاحية المفتاح المستخدم.
GET /api/v1/sites
مواقعك: id، اسم النطاق، الحالة، درجة صحة SEO، درجة الثقة، المقالات المنشورة، الروابط الخلفية النشطة، النطاقات المُحيلة، التغيّر خلال 30 يومًا، والمقالة التالية.
GET /api/v1/sites/{id}
ملخص الموقع: الملف، وإعدادات النشر، وأعداد المقالات (حسب الحالة)، وملخص شبكة الروابط الخلفية، وملخص التقدّم خلال 30 يومًا.
GET /api/v1/sites/{id}/progress?range=90d
تقرير التقدّم. range: 30d, 90d, 180d, 365d, all.
GET /api/v1/sites/{id}/articles
المقالات (مقسّمة على صفحات). المعاملات: status (planned, generating, review, approved, published, failed), q (البحث في العنوان/الكلمة)، page, per_page.
GET /api/v1/articles/{id}
المقالة: العنوان، ووصف meta، والدرجات (SEO وGEO وسهولة القراءة)، والأسئلة الشائعة، وروابط الشركاء الخلفية، والروابط في النص (داخلية/خارجية/للشركاء)، والمحتوى. content: html (افتراضي)، markdown أو none.
GET /api/v1/sites/{id}/keywords
الكلمات المفتاحية (مقسّمة على صفحات): المجموعة، ونية البحث، والأولوية، والمقالة التي تستهدف الكلمة (article_id, article_status). المعاملات: cluster, q, page, per_page.
GET /api/v1/sites/{id}/backlinks
تقرير الروابط الخلفية: النقاط، والروابط النشطة/المعلّقة، والنطاقات المُحيلة، وتوزيع نصوص الروابط، والروابط المستلمة (مقسّمة على صفحات)، وآخر الروابط الممنوحة.
GET /api/v1/sites/{id}/services
الأعمال التي أنجزها AutoAiSeo للموقع: الإجماليات، وآخر 12 شهرًا، والسجل (30 لكل صفحة). المعاملات: kind, q, page.
POST /api/v1/sites/{id}/articles read_write
يضيف فكرة مقالة إلى خطة المحتوى (الحالة planned). إذا لم يُحدَّد تاريخ، توضع الفكرة في اليوم التالي لآخر مقالة في الخطة؛ وعند حلول التاريخ يكتبها AutoAiSeo. لا تستهلك من الحصة.
curl -X POST -H "Authorization: Bearer rk_live_…" -H "Content-Type: application/json" \
-d '{"title":"Filtre kahve nasıl demlenir?","target_keyword":"filtre kahve demleme","angle":"Yeni başlayanlar için"}' \
https://autoaiseo.example/api/v1/sites/12/articles
جسم الطلب: title (إلزامي، 5–200)، target_keyword, cluster, angle, scheduled_for (YYYY-MM-DD). رمز الاستجابة: 201.
POST /api/v1/articles/{id}/generate read_write
يطلب كتابة المقالة في الخلفية (202، الحالة generating). تنطبق القواعد نفسها المطبقة في اللوحة: تُخصم من حصتك الشهرية (إعادة كتابة مقالة كُتبت هذا الشهر مجانية)، ولا يمكن إعادة كتابة مقالة منشورة. وعند الانتهاء تصبح الحالة review olur.
POST /api/v1/articles/{id}/publish read_write
يرسل المقالة المكتوبة إلى وجهة النشر الخاصة بالموقع (مدونة AutoAiSeo، WordPress، Shopify، Webflow، webhook) ويُعيد عنوان النشر.
خادم MCP
العنوان: https://autoaiseo.example/mcp — طبقة النقل Streamable HTTP (استجابات JSON). إصدارات البروتوكول: 2026-07-28 والإصدارات الأقدم القائمة على المصافحة (2025-11-25, 2025-06-18, 2025-03-26).
تتم المصادقة بإحدى طريقتين:
- OAuth — عند إضافة العنوان، تفتح الموصلات مثل Claude وChatGPT صفحة تسجيل الدخول والإذن في AutoAiSeo؛ ولا حاجة إلى مفتاح API. يظهر الاتصال في اللوحة ضمن التطبيقات المتصلة— يمكنك إزالة الاتصال من هناك.
- مفتاح API — في عملاء مثل Cursor وClaude Code وVS Code، باستخدام
Authorization: Bearer rk_live_…كترويسة.
Claude
الإعدادات ← الموصلات ← إضافة موصل مخصص، ثم الصق عنوان MCP في حقل URL واضغط على اتصالللمتابعة.
ChatGPT
الإعدادات ← التطبيقات والموصلات ← الإعدادات المتقدمة: فعّل وضع المطوّر، ثم استخدم إنشاء موصل لإدخال عنوان MCP واختيار مصادقة OAuth.
Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"autoaiseo": {
"url": "https://autoaiseo.example/mcp",
"headers": { "Authorization": "Bearer rk_live_…" }
}
}
}
Claude Code
claude mcp add --transport http autoaiseo https://autoaiseo.example/mcp --header "Authorization: Bearer rk_live_…"
أدوات MCP
تتضمن نتائج الأدوات ملخصًا نصيًا قصيرًا والبيانات نفسها بصيغة منظَّمة (structuredContent). لا تظهر أدوات الكتابة إلا عند منح إذن الكتابة.
| الأداة | ما الذي تفعله |
|---|---|
list_sites | المواقع والمقاييس الموجزة؛ وللأدوات الأخرى: site_id. |
site_overview | ملف الموقع، والمقاييس، وأعداد المقالات، وملخص شبكة الروابط الخلفية. |
site_progress | تقرير التقدّم لفترة معينة (البداية والآن، والمحطات البارزة). |
list_articles | المقالات؛ مع تصفية بالحالة والنص، ومقسّمة على صفحات. |
get_article | محتوى المقالة (markdown/HTML)، والدرجات، والروابط، والأسئلة الشائعة. |
list_keywords | الكلمات المفتاحية والمقالات التي تغطيها. |
backlink_report | تقرير شبكة الروابط الخلفية والروابط المستلمة. |
services_history | تفصيل الأعمال التي أنجزها AutoAiSeo. |
add_article_idea yazma | يضيف فكرة مقالة إلى خطة المحتوى. |
generate_article yazma | يطلب كتابة المقالة (تُخصم من الحصة). |
publish_article yazma | ينشر المقالة. |
OAuth (لمن يطوّر عميل MCP)
يتضمن AutoAiSeo خادم تفويض OAuth 2.1 صغيرًا متوافقًا مع مواصفة تفويض MCP.
| معلومات المورد المحمي | /.well-known/oauth-protected-resource (وكذلك /mcp مُلحقًا بآخره) |
| معلومات خادم التفويض | /.well-known/oauth-authorization-server |
| تسجيل العميل | Client ID Metadata Documents (https client_id) أو التسجيل الديناميكي: POST /oauth/register (للعملاء العامّين فقط، token_endpoint_auth_method: none) |
| التفويض | GET /oauth/authorize — response_type=code، PKCE S256 zorunlu, resource (RFC 8707)، وفي الاستجابة iss (RFC 9207) |
| المفتاح | POST /oauth/token — authorization_code و refresh_token |
| إلغاء | POST /oauth/revoke (RFC 7009) |
| النطاقات (Scopes) | read, write (الكتابة تشمل القراءة). يختار المستخدم المستوى في شاشة الموافقة. |
- يجب أن تكون عناوين إعادة التوجيه https أو
localhost/127.0.0.1— ويجب أن تتطابق تمامًا (المنفذ حرّ في عناوين loopback). - رمز التفويض صالح لمدة دقيقتين ويُستخدم مرة واحدة فقط؛ واستخدامه مرة ثانية يُلغي جميع رموز ذلك الاتصال.
- رمز الوصول صالح لمدة ساعة واحدة، ورمز التحديث لمدة 30 يومًا. تتغيّر رموز التحديث مع كل استخدام؛ وإعادة استخدام رمز تحديث قديم تُغلق الاتصال.
- لا تُصدر رموز الوصول إلا لخادم MCP؛ أما REST API فتتطلب مفتاح API شخصيًا.
- نطاق صلاحية غير كافٍ
403وWWW-Authenticate: Bearer error="insufficient_scope", scope="read write"في الاستجابة.
الخصوصية
لا يتضمن سجل نشاط API الذي تراه في اللوحة إلا الطريقة والمسار ورمز الحالة والمدة والبداية الظاهرة للمفتاح (أو اسم تطبيق OAuth) والوقت. ولا تُسجَّل محتويات الطلبات والاستجابات ولا عناوين IP؛ ويُحتفظ بآخر 1000 طلب لكل حساب.