المطورون

ابنِ على AutoSeoPro.aiواجهة REST API وموصل MCP

اقرأ مواقعك ومقالاتك وروابطك الخلفية وكلماتك المفتاحية وتدقيقاتك وإحصاءاتك، وعدّل المقالات بأمان، واربط مساعدي الذكاء الاصطناعي مثل Claude وCursor وChatGPT بمساحة عملك.

  • متاح في باقات Growth وAgency وScale وEnterprise

ما يمكنك فعله

  • اقرأ المواقع والمقالات بكامل كود HTML والروابط الخلفية وأبحاث الكلمات المفتاحية وملخصات التدقيق التقني والإحصاءات الشهرية، بما في ذلك النقرات ومرات الظهور من Search Console.
  • حدّث عنوان المقالة أو محتوى HTML واستبدل صورتها البارزة. كل تغيير مراجعة قابلة للاستعادة، ولا يُنشر أي شيء تلقائيًا.
  • اربط Claude وCursor وChatGPT وغيرها من عملاء MCP ليعمل المساعد على بيانات SEO الخاصة بك أثناء المحادثة.
  • استقبل خطافات ويب موقّعة عند نشر المقالات وانتهاء عمليات التدقيق والحصول على روابط خلفية وغير ذلك.

لا يرى المفتاح أو الاتصال إلا مواقع مساحة العمل التي أنشأته، أو موقعًا واحدًا إذا حصرته فيه.

المصادقة

أنشئ مفتاحًا من الإعدادات ← المطورون وأرسله مع كل طلب، إما كرمز Bearer أو في الترويسة X-API-Key. يُعرض المفتاح مرة واحدة، ويُخزَّن كبصمة فقط، ويمكن أن تنتهي صلاحيته، ويمكن إلغاؤه في أي وقت.

عنوان URL الأساسي: https://autoseopro.ai/api/v1

Authorization: Bearer rk_…
# or
X-API-Key: rk_…

يحمل كل مفتاح الصلاحيات التي تختارها فقط. صلاحية القراءة لا تسمح بأي تغيير أبدًا.

الصلاحيةتسمح بـ
sites:readعرض قائمة المواقع
articles:readقراءة المقالات وكود HTML الخاص بها
articles:writeتعديل عناوين المقالات ومحتواها واستبدال الصور البارزة
audits:readقراءة ملخصات التدقيق التقني
keywords:readقراءة الكلمات المفتاحية والمجموعات
reports:readقراءة الإحصاءات وملخصات Search Console
backlinks:readقراءة الروابط الخلفية
metadata:readقراءة مقترحات عنوان SEO والوصف
metadata:writeاعتماد مقترحات البيانات الوصفية أو رفضها (بتأكيد مسبق دائمًا)
approvals:writeاعتماد المقالات للنشر (بتأكيد مسبق دائمًا)
generation:writeطلب مقالات جديدة ضمن الباقة (بتأكيد مسبق دائمًا)
sharing:writeإنشاء روابط مشاركة تقارير العملاء (بتأكيد مسبق دائمًا)
notifications:readقراءة الإشعارات
social:readقراءة خطة ونتائج وسائل التواصل الاجتماعي

يمكنك حصر المفتاح في موقع واحد. عندها تُرجع المواقع الأخرى الرمز 403 مع site_not_allowed.

لا تقبل الواجهة جلسة المتصفح أبدًا. يُرفض الطلب الذي يحمل ملف تعريف ارتباط تسجيل الدخول إلى AutoSeoPro.ai فقط مع الرمز session_auth_not_supported.

حدود الاستخدام

  • 60 طلبًا في الدقيقة لكل مفتاح API، مجموع REST وMCP.
  • 200 تعديلًا للمقالات لكل مساحة عمل في اليوم بتوقيت UTC (تغييرات العنوان أو المحتوى واستبدال الصور البارزة).
  • عند تجاوز أي حد ستتلقى 429 مع الترويسة Retry-After. انتظر هذا العدد من الثواني قبل المحاولة مجددًا.

ترقيم الصفحات

تقبل نقاط نهاية القوائم page (بدءًا من 1) وper_page (الافتراضي 25 والحد الأقصى 100) وتُرجع كائن pagination يتضمن العدد الإجمالي.

{
  "data": [
    "…"
  ],
  "pagination": {
    "page": 2,
    "per_page": 25,
    "total": 61,
    "total_pages": 3,
    "has_more": true
  }
}

الأخطاء

لكل الأخطاء شكل JSON واحد. اعتمد على code لأنه ثابت؛ أما message فهو إرشاد للمطورين وقد يتغير.

{
  "error": {
    "code": "insufficient_scope",
    "message": "The API key does not carry the scope this operation needs.",
    "status": 403,
    "request_id": "6f1d2c3b-4a5e-4f60-8a7b-9c0d1e2f3a4b"
  }
}

يُولَّد هذا المرجع من مستند OpenAPI ويُعرض باللغة الإنجليزية.

الرمزHTTPالمعنى
unauthorized401Send an API key as `Authorization: Bearer rk_…` or `X-API-Key: rk_…`.
invalid_token401The API key is not valid.
token_expired401The API key has expired. Create a new one in Settings → Developers.
token_revoked401The API key was revoked.
session_auth_not_supported401The API does not accept browser sessions. Use an API key.
insufficient_scope403The API key does not carry the scope this operation needs.
plan_upgrade_required403API access is not included in this workspace's plan.
subscription_inactive403The workspace subscription is not active.
site_not_allowed403The API key is limited to a different website.
actor_not_allowed403The person this connection acts for may not make this change (their role or website access does not allow it).
not_found404No such resource in this workspace.
method_not_allowed405That HTTP method is not supported on this path.
stale_article409The article changed since the content hash you sent. Fetch it again and retry.
article_busy409The article cannot be edited right now (it is publishing, queued or not eligible for an update).
not_decidable409This item is no longer waiting for a decision. Read it again to see its current state.
confirmation_stale409The item changed after the preview. Run the preview again and confirm the new result.
payload_too_large413The request body is too large.
unsupported_media_type415Unsupported Content-Type for this operation.
invalid_request422The request is not valid. See `details`.
nothing_to_update422Send at least one of `title` or `body_html`.
unsafe_html422The HTML contains elements or attributes the article editor does not allow.
protected_links_removed422The edit removes internal links that AutoSeoPro.ai placed. Keep them, or edit the article in AutoSeoPro.ai.
image_invalid422The image must be a JPEG, PNG, WebP, GIF or AVIF file within the size limit.
image_fetch_failed422The image URL could not be fetched (it must be a public https URL).
confirmation_invalid422The confirmation token is not valid for this action or this connection. Run the matching preview first.
confirmation_expired422The confirmation token has expired or was already used. Run the preview again.
rate_limited429Too many requests. Slow down and retry after the Retry-After interval.
edit_quota_exceeded429The daily article-edit allowance for this workspace is used up.
plan_limit_reached429The plan's allowance for this is used up for the current period.
internal_error500Something went wrong on our side. Quote the request id if you contact support.
image_hosting_unavailable503Image uploads are not available on this installation; send a public image URL instead.
service_unavailable503The service is temporarily unavailable. Retry shortly.

نقاط النهاية

يُولَّد هذا المرجع من مستند OpenAPI ويُعرض باللغة الإنجليزية.

GET/sites

List websites

Websites in the workspace that owns the API key. A key limited to one website sees only that website.

الصلاحية: sites:read · أداة MCP: list_sites

المعاملات
pagequery · اختياريPage number, from 1.
per_pagequery · اختياريItems per page (max 100).
الطلب
curl "https://autoseopro.ai/api/v1/sites?per_page=25" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": [
    {
      "id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
      "name": "Acme Plumbing",
      "domain": "acmeplumbing.com",
      "platform": "wordpress",
      "article_language": "en",
      "created_at": "2026-08-14T09:12:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1,
    "has_more": false
  }
}
GET/sites/{site_id}/articles

List articles

Articles for one website, newest first, without their bodies. `from`/`to` filter on the publication date, or the creation date for unpublished articles.

الصلاحية: articles:read · أداة MCP: list_articles

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
pagequery · اختياريPage number, from 1.
per_pagequery · اختياريItems per page (max 100).
statusquery · اختياريOnly articles in this status. (draft, in_review, scheduled, queued, publishing, published, failed)
fromquery · اختياريEarliest date to include: YYYY-MM-DD (UTC, start of day) or an ISO-8601 timestamp.
toquery · اختياريLatest date to include: YYYY-MM-DD (UTC, inclusive of the whole day) or an ISO-8601 timestamp.
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/articles?from=2026-09-01&to=2026-09-30&per_page=25" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": [
    {
      "id": "9b8e7d6c-5a4b-4c3d-8e2f-1a0b9c8d7e6f",
      "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
      "title": "How to Fix a Leaking Tap",
      "status": "published",
      "target_keyword": "fix leaking tap",
      "word_count": 1640,
      "featured_image_url": "https://acmeplumbing.com/wp-content/uploads/tap.jpg",
      "external_url": "https://acmeplumbing.com/fix-leaking-tap/",
      "published_at": "2026-09-12T08:00:00.000Z",
      "scheduled_for": "2026-09-12T08:00:00.000Z",
      "created_at": "2026-09-10T15:41:00.000Z",
      "content_hash": "3f6c1d0a9b8e7f6d5c4b3a2918f7e6d5c4b3a29180f7e6d5c4b3a29180f7e6d5"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1,
    "has_more": false
  }
}
GET/articles/{article_id}

Get an article

One article with its full HTML body, SEO title and meta description, and the content hash to send back with an edit.

الصلاحية: articles:read · أداة MCP: get_article

المعاملات
article_idpath · مطلوبArticle id.
الطلب
curl "https://autoseopro.ai/api/v1/articles/9b8e7d6c-5a4b-4c3d-8e2f-1a0b9c8d7e6f" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": {
    "id": "9b8e7d6c-5a4b-4c3d-8e2f-1a0b9c8d7e6f",
    "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
    "title": "How to Fix a Leaking Tap",
    "status": "published",
    "target_keyword": "fix leaking tap",
    "word_count": 1640,
    "featured_image_url": "https://acmeplumbing.com/wp-content/uploads/tap.jpg",
    "external_url": "https://acmeplumbing.com/fix-leaking-tap/",
    "published_at": "2026-09-12T08:00:00.000Z",
    "scheduled_for": "2026-09-12T08:00:00.000Z",
    "created_at": "2026-09-10T15:41:00.000Z",
    "content_hash": "3f6c1d0a9b8e7f6d5c4b3a2918f7e6d5c4b3a29180f7e6d5c4b3a29180f7e6d5",
    "meta_title": "How to Fix a Leaking Tap (Step by Step)",
    "meta_description": "A plumber's guide to stopping a dripping tap in 20 minutes.",
    "body_html": "<h2>What you need</h2><p>An adjustable spanner and a new washer.</p>",
    "revision": 4
  }
}
PUT/articles/{article_id}

Update an article's title or body

Edit the working copy of an article exactly as the AutoSeoPro.ai editor saves it: the HTML is normalised to the editor's allowed subset, unsafe markup is refused, the website's external-link policy is applied, and quality checks are recomputed. Every change is stored as a new revision (source `api`, or `mcp` from the connector) that can be restored from the article page. This never publishes, unpublishes, schedules or changes settings. A published article's working copy can be edited when it is eligible for an update; push it live from AutoSeoPro.ai. Edits that remove internal links AutoSeoPro.ai placed (the related-resources block or tracked contextual links) are refused with `protected_links_removed`. Send `expected_content_hash` (from a read) to refuse the edit with `stale_article` if the article changed in the meantime.

الصلاحية: articles:write · أداة MCP: update_article

المعاملات
article_idpath · مطلوبArticle id.
titlebody · اختياريNew display title.
body_htmlbody · اختياريNew article body (HTML).
reasonbody · اختياريWhy the change was made; kept in the activity log.
expected_content_hashbody · اختياريcontent_hash from your last read.
الطلب
curl -X PUT "https://autoseopro.ai/api/v1/articles/9b8e7d6c-5a4b-4c3d-8e2f-1a0b9c8d7e6f" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"How to Fix a Leaking Tap in 20 Minutes","body_html":"<h2>What you need</h2><p>An adjustable spanner, a new washer and 20 minutes.</p>","reason":"Refresh intro","expected_content_hash":"3f6c1d0a9b8e7f6d5c4b3a2918f7e6d5c4b3a29180f7e6d5c4b3a29180f7e6d5"}'
الاستجابة
{
  "data": {
    "changed": true,
    "revision": 5,
    "article": {
      "id": "9b8e7d6c-5a4b-4c3d-8e2f-1a0b9c8d7e6f",
      "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
      "title": "How to Fix a Leaking Tap",
      "status": "published",
      "target_keyword": "fix leaking tap",
      "word_count": 1640,
      "featured_image_url": "https://acmeplumbing.com/wp-content/uploads/tap.jpg",
      "external_url": "https://acmeplumbing.com/fix-leaking-tap/",
      "published_at": "2026-09-12T08:00:00.000Z",
      "scheduled_for": "2026-09-12T08:00:00.000Z",
      "created_at": "2026-09-10T15:41:00.000Z",
      "content_hash": "3f6c1d0a9b8e7f6d5c4b3a2918f7e6d5c4b3a29180f7e6d5c4b3a29180f7e6d5",
      "meta_title": "How to Fix a Leaking Tap (Step by Step)",
      "meta_description": "A plumber's guide to stopping a dripping tap in 20 minutes.",
      "body_html": "<h2>What you need</h2><p>An adjustable spanner and a new washer.</p>",
      "revision": 5
    }
  }
}
POST/articles/{article_id}/featured-image

Replace the featured image

Set a new featured image from a public https URL (JSON body), or upload the image bytes directly with an image Content-Type. JPEG, PNG, WebP, GIF or AVIF up to 5 MB. The URL is fetched once from AutoSeoPro.ai's servers (private and internal addresses are refused) and checked to be a real image. Uploaded images are hosted by AutoSeoPro.ai. The change is stored as a restorable revision and never publishes.

الصلاحية: articles:write · أداة MCP: replace_featured_image

المعاملات
article_idpath · مطلوبArticle id.
urlbody · مطلوبPublic https URL of the image.
altbody · اختياريAlt text. Defaults to the current alt text or the article title.
expected_content_hashbody · اختياريcontent_hash from your last read.
الطلب
curl -X POST "https://autoseopro.ai/api/v1/articles/9b8e7d6c-5a4b-4c3d-8e2f-1a0b9c8d7e6f/featured-image" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://images.example.com/leaking-tap.jpg","alt":"Dripping kitchen tap"}'
الاستجابة
{
  "data": {
    "changed": true,
    "revision": 6,
    "article": {
      "id": "9b8e7d6c-5a4b-4c3d-8e2f-1a0b9c8d7e6f",
      "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
      "title": "How to Fix a Leaking Tap",
      "status": "published",
      "target_keyword": "fix leaking tap",
      "word_count": 1640,
      "featured_image_url": "https://images.example.com/leaking-tap.jpg",
      "external_url": "https://acmeplumbing.com/fix-leaking-tap/",
      "published_at": "2026-09-12T08:00:00.000Z",
      "scheduled_for": "2026-09-12T08:00:00.000Z",
      "created_at": "2026-09-10T15:41:00.000Z",
      "content_hash": "3f6c1d0a9b8e7f6d5c4b3a2918f7e6d5c4b3a29180f7e6d5c4b3a29180f7e6d5",
      "meta_title": "How to Fix a Leaking Tap (Step by Step)",
      "meta_description": "A plumber's guide to stopping a dripping tap in 20 minutes.",
      "body_html": "<h2>What you need</h2><p>An adjustable spanner and a new washer.</p>",
      "revision": 6
    }
  }
}
أو ارفع ملف الصورة مباشرة
curl -X POST "https://autoseopro.ai/api/v1/articles/9b8e7d6c-5a4b-4c3d-8e2f-1a0b9c8d7e6f/featured-image" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY" \
  -H "Content-Type: image/jpeg" \
  --data-binary @featured.jpg
GET/sites/{site_id}/stats

Get website stats

Counts for a reporting period (articles created and published, backlinks verified, keywords tracked) plus the Search Console summary for published articles when Search Console is connected.

الصلاحية: reports:read · أداة MCP: get_stats

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
periodquery · اختياريthis_month, last_month, last_30_days or a calendar month YYYY-MM (UTC). Defaults to this_month.
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/stats?period=last_month" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": {
    "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
    "period": {
      "key": "last_month",
      "start": "2026-08-01T00:00:00.000Z",
      "end": "2026-09-01T00:00:00.000Z"
    },
    "articles": {
      "created": 12,
      "published": 10
    },
    "backlinks": {
      "verified": 3,
      "live_total": 17
    },
    "keywords": {
      "tracked": 84
    },
    "search_console": {
      "connected": true,
      "clicks": 1520,
      "impressions": 48210,
      "tracked_articles": 31,
      "window_start": "2026-08-31",
      "window_end": "2026-09-27"
    }
  }
}
GET/sites/{site_id}/keywords

List keywords

The website's keywords with research metrics, cluster and, when observed, their own Search Console figures. Read-only.

الصلاحية: keywords:read · أداة MCP: get_keywords

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
pagequery · اختياريPage number, from 1.
per_pagequery · اختياريItems per page (max 100).
statusquery · اختياريadded = tracked, candidate = suggested. (candidate, added, rejected, archived)
cluster_idquery · اختياريOnly keywords in this cluster.
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/keywords?per_page=25" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": [
    {
      "id": "0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
      "keyword": "emergency plumber",
      "status": "added",
      "cluster": {
        "id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b",
        "name": "Emergency services"
      },
      "is_primary": true,
      "search_volume": 2400,
      "difficulty": 38,
      "intent": "transactional",
      "potential": 71.5,
      "priority": null,
      "target_url": null,
      "search_console": {
        "impressions": 3100,
        "clicks": 140,
        "ctr": 0.045,
        "position": 8.2,
        "window_days": 28,
        "observed_at": "2026-09-27T04:00:00.000Z"
      },
      "created_at": "2026-08-15T11:00:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1,
    "has_more": false
  }
}
GET/sites/{site_id}/keyword-clusters

List keyword clusters

Topic clusters with their pillar page and keyword count. Read-only.

الصلاحية: keywords:read

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
pagequery · اختياريPage number, from 1.
per_pagequery · اختياريItems per page (max 100).
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/keyword-clusters?per_page=25" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": [
    {
      "id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b",
      "name": "Emergency services",
      "status": "active",
      "is_primary": true,
      "pillar_url": "https://acmeplumbing.com/emergency/",
      "keyword_count": 14,
      "created_at": "2026-08-15T11:00:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1,
    "has_more": false
  }
}
GET/sites/{site_id}/audit

Get the audit summary

Scores and check counts from the latest technical SEO/GEO audit, plus the problems of the latest full-site audit in fix-plan order. Read-only; audits are run from AutoSeoPro.ai. For the full plan, trend and example URLs use the full-site audit endpoints.

الصلاحية: audits:read · أداة MCP: get_audit_summary

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/audit" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": {
    "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
    "audit": {
      "id": "7c8d9e0f-1a2b-4c3d-9e4f-5a6b7c8d9e0f",
      "created_at": "2026-09-25T02:10:00.000Z",
      "scores": {
        "seo": 78,
        "geo": 64,
        "combined": 72
      },
      "findings": {
        "seo": {
          "optimized": 31,
          "quick_win": 4,
          "big_opportunity": 2,
          "needs_api": 1
        },
        "geo": {
          "optimized": 12,
          "quick_win": 3,
          "big_opportunity": 1,
          "needs_api": 0
        }
      }
    },
    "issues": [
      {
        "id": "8d9e0f1a-2b3c-4d4e-8f5a-6b7c8d9e0f1a",
        "category": "performance",
        "rule_id": "lcp_slow",
        "severity": "high",
        "title": "Largest Contentful Paint is slow on mobile",
        "fix_summary": "Compress the hero image."
      }
    ]
  }
}
GET/sites/{site_id}/growth

Get growth history

The website's month-by-month growth record (up to 24 months): Search Console clicks, impressions, CTR, average position, pages with impressions and queries in the top 3/10/100; indexed pages; GA4 sessions; AI visibility. Includes month-over-month and since-start changes. Read-only.

الصلاحية: reports:read

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/growth" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": {
    "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
    "starting_month": "2026-06",
    "starting_month_source": "first_snapshot",
    "latest_complete_month": "2026-09",
    "months": [
      {
        "month": "2026-09",
        "complete": true,
        "search_console": {
          "state": "ok",
          "data_through": "2026-09-30",
          "clicks": 1520,
          "impressions": 48210,
          "ctr": 0.0315,
          "position": 14.2,
          "pages_with_impressions": 212,
          "queries_top3": 18,
          "queries_top10": 96,
          "queries_top100": 1240,
          "rows_truncated": false
        },
        "index": {
          "state": "no_data",
          "indexed_pages": null,
          "checked_pages": null
        },
        "analytics": {
          "state": "ok",
          "sessions": 4100,
          "users": 3300,
          "organic_sessions": 2050,
          "ai_referral_sessions": 37
        },
        "ai_visibility": {
          "state": "ok",
          "score": 42.5,
          "citation_share": 30
        }
      }
    ],
    "month_over_month": {
      "gsc_clicks": {
        "from": 1310,
        "to": 1520,
        "delta": 210,
        "percent": 16.03
      }
    },
    "since_start": {
      "gsc_clicks": {
        "from": 980,
        "to": 1520,
        "delta": 540,
        "percent": 55.1
      }
    }
  }
}
GET/sites/{site_id}/performance

Get Search Console + GA4 performance

Search Console clicks, impressions, CTR and position (last 28 days vs the 28 before, and last 7 days vs the 7 before), top pages and queries, plus GA4 sessions, AI-assistant referral sessions and top landing pages. Read from AutoSeoPro.ai's stored readings; sections carry a state such as not_connected.

الصلاحية: reports:read · أداة MCP: get_performance

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/performance" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": {
    "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
    "search_console": {
      "state": "ok",
      "fetched_at": "2026-10-03T06:00:00.000Z",
      "stale": false,
      "window": {
        "start": "2026-09-05",
        "end": "2026-10-02"
      },
      "current": {
        "clicks": 1520,
        "impressions": 48210,
        "ctr": 0.0315,
        "position": 14.2
      },
      "previous": {
        "clicks": 1610,
        "impressions": 47100,
        "ctr": 0.0342,
        "position": 13.8
      },
      "last_7_days": {
        "clicks": 310,
        "impressions": 11200
      },
      "previous_7_days": {
        "clicks": 402,
        "impressions": 11900
      },
      "top_pages": [
        {
          "key": "https://acmeplumbing.com/emergency/",
          "clicks": 220,
          "impressions": 5100,
          "ctr": 0.043,
          "position": 6.1
        }
      ],
      "top_queries": [
        {
          "key": "emergency plumber",
          "clicks": 140,
          "impressions": 3100,
          "ctr": 0.045,
          "position": 8.2
        }
      ]
    },
    "analytics": {
      "state": "connected",
      "fetched_at": "2026-10-03T06:00:00.000Z",
      "current": {
        "sessions": 4100,
        "engaged_sessions": 2600,
        "key_events": 41
      },
      "previous": {
        "sessions": 4300,
        "engaged_sessions": 2700,
        "key_events": 44
      },
      "ai_referral_sessions": {
        "current": 37,
        "previous": 29
      },
      "top_landing_pages": [
        {
          "path": "/emergency/",
          "sessions": 820
        }
      ]
    }
  }
}
GET/sites/{site_id}/geo-visibility

Get AI visibility (GEO) and AI visits

The latest and previous completed AI visibility runs (score 0-100, prompts tested, answers citing the website, engines) and AI crawler / AI assistant visits over the last 28 days vs the 28 before, as measured by the WordPress plugin, Cloudflare or the tracking snippet.

الصلاحية: reports:read · أداة MCP: get_geo_visibility

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/geo-visibility" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": {
    "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
    "latest_run": {
      "id": "1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e",
      "run_date": "2026-09-28T03:00:00.000Z",
      "score": 42.5,
      "prompts_tested": 24,
      "cited_answers": 7,
      "failed_prompts": 0,
      "engines": [
        "chatgpt",
        "perplexity",
        "gemini"
      ]
    },
    "previous_run": null,
    "ai_visits": {
      "window_days": 28,
      "sources": [
        "wordpress"
      ],
      "crawler_hits": {
        "current": 410,
        "previous": 350,
        "change_pct": 17
      },
      "assistant_referrals": {
        "current": 37,
        "previous": 29,
        "change_pct": 28
      },
      "top_pages": [
        {
          "path": "/emergency/",
          "hits": 51
        }
      ]
    }
  }
}
GET/sites/{site_id}/metadata-proposals

List metadata proposals

SEO title and meta description proposals for the website's pages, newest first, with what the page served at the time. `state=proposed` lists the ones waiting for a decision.

الصلاحية: metadata:read · أداة MCP: list_metadata_proposals

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
pagequery · اختياريPage number, from 1.
per_pagequery · اختياريItems per page (max 100).
statequery · اختياريOnly proposals in this state. (proposed, approved, rejected, applied, partially_applied, refused, rolled_back, superseded, assessed)
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/metadata-proposals?state=proposed&per_page=25" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": [
    {
      "id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d",
      "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
      "page_url": "https://acmeplumbing.com/rigid-boxes/",
      "state": "proposed",
      "current": {
        "title": "Rigid boxes",
        "description": null
      },
      "proposed": {
        "title": "Rigid Boxes | Custom Sizes, Fast UK Delivery",
        "description": "Custom rigid boxes made to your size."
      },
      "approved_fields": [],
      "created_at": "2026-10-01T09:00:00.000Z",
      "updated_at": "2026-10-01T09:00:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1,
    "has_more": false
  }
}
GET/sites/{site_id}/backlink-report

Get the backlink report

Links verified live now, lost links, referring domains and, per link where measured, the growth proof: Search Console clicks before vs after the link went live and GA4 referral sessions.

الصلاحية: backlinks:read · أداة MCP: get_backlink_report

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/backlink-report" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": {
    "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
    "summary": {
      "live": 17,
      "lost": 1,
      "referring_domains": 14,
      "growth_available": 6,
      "clicks_delta": 85,
      "referral_sessions": 40
    },
    "links": [
      {
        "linking_page": "https://homeguide.example/best-plumbers",
        "target_url": "https://acmeplumbing.com/",
        "status": "live",
        "first_live_at": "2026-09-03T10:00:00.000Z",
        "growth": {
          "gsc_state": "ok",
          "clicks_before": 120,
          "clicks_after": 160,
          "referral_sessions": 12
        }
      }
    ]
  }
}
GET/notifications

List notifications

Notifications of the person the connection acts for (the API key's creator), newest first; a website-limited key sees only that website's.

الصلاحية: notifications:read · أداة MCP: list_notifications

المعاملات
filterquery · اختياريall (default) or unread. (all, unread)
limitquery · اختياريHow many (max 50).
الطلب
curl "https://autoseopro.ai/api/v1/notifications?filter=unread&per_page=25" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": [
    {
      "id": "4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a",
      "type": "content.published",
      "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
      "title": "Article published",
      "body": "How to Fix a Leaking Tap is live.",
      "read": false,
      "created_at": "2026-10-02T09:30:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1,
    "has_more": false
  }
}
GET/sites/{site_id}/health

Get site health

Latest usable technical audit scores and the ten highest-priority problems of the latest full-site audit, plus real-user Core Web Vitals (p75 LCP, INP, CLS, TTFB over 28 days, mobile and desktop) for the whole site and for AutoSeoPro.ai article pages vs the rest of the site.

الصلاحية: audits:read · أداة MCP: get_site_health

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/health" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": {
    "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
    "audit": {
      "id": "7c8d9e0f-1a2b-4c3d-9e4f-5a6b7c8d9e0f",
      "created_at": "2026-09-25T02:10:00.000Z",
      "scores": {
        "seo": 78,
        "geo": 64,
        "combined": 72
      }
    },
    "top_issues": [
      {
        "severity": "high",
        "title": "Largest Contentful Paint is slow on mobile",
        "fix_summary": "Compress the hero image."
      }
    ],
    "web_vitals": {
      "enabled": true,
      "days": 28,
      "site": {
        "mobile": {
          "lcp": {
            "p75": 2900,
            "rating": "needs-improvement",
            "samples": 410
          }
        }
      },
      "articles_vs_site": {
        "has_article_data": true,
        "slower": [
          {
            "device": "mobile",
            "metric": "lcp"
          }
        ]
      }
    }
  }
}
GET/sites/{site_id}/crawl

Get the full-site audit and the fix plan

The latest completed full-site audit: site health, what was covered, the prioritised fix plan (fix these 5 first, quick wins, bigger projects, each with why, how, affected pages and example URLs), the health-score history of the stored audits, what is new, fixed or worse since the previous audit, and checks that could not measure something. Read-only; audits are run from AutoSeoPro.ai.

الصلاحية: audits:read · أداة MCP: get_crawl_summary

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/crawl" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": {
    "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
    "crawl": {
      "id": "3c4d5e6f-7a8b-4c9d-8e0f-1a2b3c4d5e6f",
      "finished_at": "2026-10-14T03:12:00.000Z",
      "health_score": 74,
      "pages_crawled": 312,
      "pages_discovered": 340,
      "images_checked": 120,
      "page_budget": 500,
      "budget_reached": false,
      "totals": {
        "errors": 9,
        "warnings": 41,
        "notices": 22
      },
      "issue_types": 11,
      "comparison": {
        "fixed": 6,
        "new": 3,
        "remaining": 28,
        "not_rechecked": 0,
        "previous_finished_at": "2026-09-14T03:10:00.000Z"
      }
    },
    "active_crawl": null,
    "fix_plan": {
      "fix_first": [
        {
          "code": "canonical_to_non_200",
          "title": "Canonical points to a page that does not work",
          "why": "Search engines may ignore the page you want ranked.",
          "how": "Point the canonical tag at the live, final address of the page.",
          "severity": "warning",
          "category": "indexability",
          "impact": "high",
          "effort": "low",
          "group": "fix_first",
          "rank": 1,
          "priority": 12.8,
          "affected_pages": 12,
          "share_of_pages": 0.0385,
          "examples": [
            "https://acmeplumbing.com/emergency/"
          ]
        }
      ],
      "quick_wins": [],
      "bigger_projects": []
    },
    "trend": {
      "verdict": "improved",
      "sample": "similar",
      "score_change": 4,
      "points": [
        {
          "crawl_id": "3c4d5e6f-7a8b-4c9d-8e0f-1a2b3c4d5e6f",
          "finished_at": "2026-10-14T03:12:00.000Z",
          "health_score": 74,
          "pages_crawled": 312,
          "errors": 9,
          "warnings": 41,
          "notices": 22
        }
      ],
      "new_issues": [],
      "fixed_issues": [
        "h1_missing"
      ],
      "regressed_issues": [],
      "improved_issues": []
    },
    "not_measured": []
  }
}
GET/sites/{site_id}/crawl/issues

List full-site audit issues

Every kind of problem the latest completed full-site audit found, highest priority first, each with why, how, affected-page count and example URLs. Filter by severity, impact or area. Read-only.

الصلاحية: audits:read · أداة MCP: list_crawl_issues

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
severityquery · اختياريOnly this severity. (error, warning, notice)
impactquery · اختياريOnly issues of this impact (what fixing them is worth). (high, medium, low)
categoryquery · اختياريOnly this area of the site. (crawlability, indexability, links, metadata, content, images, structured_data, international, performance, security, accessibility, mobile, ai_readiness)
pagequery · اختياريPage number, from 1.
per_pagequery · اختياريItems per page (max 100).
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/crawl/issues?severity=error&impact=high&category=indexability&per_page=25" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": [
    {
      "code": "canonical_to_non_200",
      "title": "Canonical points to a page that does not work",
      "why": "Search engines may ignore the page you want ranked.",
      "how": "Point the canonical tag at the live, final address of the page.",
      "severity": "warning",
      "category": "indexability",
      "impact": "high",
      "effort": "low",
      "group": "fix_first",
      "rank": 1,
      "priority": 12.8,
      "affected_pages": 12,
      "share_of_pages": 0.0385,
      "examples": [
        "https://acmeplumbing.com/emergency/"
      ]
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1,
    "has_more": false
  }
}
GET/sites/{site_id}/crawl/issues/{issue_code}/urls

List the URLs affected by one issue

The URLs the latest completed full-site audit found with one issue (50 per page, most linked-to first), optionally one page type. Only the latest audit keeps its per-URL results. Read-only.

الصلاحية: audits:read · أداة MCP: list_crawl_issue_urls

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
issue_codepath · مطلوبIssue code (from list full-site audit issues).
page_typequery · اختياريOnly URLs of this page type. (home, product, category, service, location, blog_post, blog_index, page, custom, tag, pagination, filtered, utility)
pagequery · اختياريPage number, from 1.
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/crawl/issues/title_missing/urls?page_type=product&per_page=25" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": [
    {
      "url": "https://acmeplumbing.com/emergency/",
      "page_type": "service",
      "http_status": 200,
      "final_status": 200,
      "final_url": null,
      "title": "Emergency plumbing",
      "internal_links_in": 14,
      "linked_from": [
        "https://acmeplumbing.com/"
      ],
      "crawl_depth": 1,
      "words": 540
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 50,
    "total": 1,
    "total_pages": 1,
    "has_more": false
  }
}
GET/sites/{site_id}/social/plan

Get the social media plan

The Social Media Autopilot add-on tier in force for the website and its Social AI Manager plan for the coming days (default 7, max 31): the brief's content pillars and cadence, and the rolling plan board — one idea per card with its posts on each platform (time, status, caption excerpt), whether it is approved, awaiting approval, locked (inside the 24-hour lock) or being regenerated. Read-only.

الصلاحية: social:read · أداة MCP: get_social_plan

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
daysquery · اختياريHow many days ahead (1-31).
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/social/plan?days=7" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": {
    "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
    "add_on": {
      "tier": "pro",
      "state": "active",
      "grace_ends_at": null
    },
    "approval_mode": "approve_first",
    "lock_hours": 24,
    "brief": {
      "status": "confirmed",
      "confirmed": true,
      "pillars": [
        {
          "pillar": "educate",
          "share": 40
        },
        {
          "pillar": "promote",
          "share": 30
        }
      ],
      "cadence": {
        "perWeek": 3
      },
      "goals": [
        "leads"
      ],
      "learned_adjusted": false
    },
    "window": {
      "from": "2026-10-04T00:00:00.000Z",
      "to": "2026-10-11T00:00:00.000Z",
      "days": 7
    },
    "ideas": [
      {
        "id": "1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
        "at": "2026-10-06T09:00:00.000Z",
        "title": "Fix a dripping tap in 20 minutes",
        "pillar": "educate",
        "locked": false,
        "approved": false,
        "awaiting_approval": true,
        "regenerating": false,
        "posts": [
          {
            "id": "6f7a8b9c-0d1e-4f2a-8b3c-4d5e6f7a8b9c",
            "platform": "facebook",
            "format": "image",
            "scheduled_at": "2026-10-06T09:00:00.000Z",
            "status": "scheduled",
            "approved": false,
            "locked": false,
            "caption_excerpt": "Dripping tap? Here is the 20-minute fix.",
            "link": "https://acmeplumbing.com/fix-leaking-tap/",
            "image_mode": "template",
            "ai_generated": true
          }
        ]
      }
    ],
    "posts": [
      {
        "id": "6f7a8b9c-0d1e-4f2a-8b3c-4d5e6f7a8b9c",
        "platform": "facebook",
        "format": "image",
        "scheduled_at": "2026-10-06T09:00:00.000Z",
        "status": "scheduled",
        "approved": false,
        "locked": false,
        "pillar": "educate",
        "caption_excerpt": "Dripping tap? Here is the 20-minute fix.",
        "link": "https://acmeplumbing.com/fix-leaking-tap/"
      }
    ]
  }
}
GET/sites/{site_id}/social/results

Get social media results

Totals for posts published in the period (default the last 30 days): impressions, reach, engagements, clicks and video views by platform, ideas per content pillar, plus the latest published posts with their links.

الصلاحية: social:read · أداة MCP: list_social_results

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
fromquery · اختياريEarliest publication date to include: YYYY-MM-DD (UTC, start of day) or an ISO-8601 timestamp.
toquery · اختياريLatest publication date to include: YYYY-MM-DD (UTC, inclusive of the whole day) or an ISO-8601 timestamp.
الطلب
curl "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/social/results?from=2026-09-01&to=2026-09-30" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": {
    "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
    "period": {
      "from": "2026-09-04T00:00:00.000Z",
      "to": "2026-10-04T00:00:00.000Z"
    },
    "totals": {
      "posts": 12,
      "impressions": 8400,
      "reach": 6100,
      "engagements": 390,
      "clicks": 75,
      "video_views": 0
    },
    "by_platform": [
      {
        "platform": "facebook",
        "posts": 6,
        "impressions": 5100,
        "engagements": 240,
        "clicks": 41
      }
    ],
    "ideas_by_pillar": [
      {
        "pillar": "educate",
        "ideas": 5
      }
    ],
    "recent_posts": [
      {
        "platform": "facebook",
        "published_at": "2026-10-02T09:00:00.000Z",
        "external_url": "https://facebook.example/post/1"
      }
    ]
  }
}
POST/metadata-proposals/{proposal_id}/preview-decision

Preview approving or rejecting a metadata proposal

Shows exactly which title/description would be approved (or that the proposal would be rejected) and returns a confirmation token valid for 10 minutes. Changes nothing. Approval does not by itself change the live page: AutoSeoPro.ai applies approved metadata through the website connection as configured.

الصلاحية: metadata:write · أداة MCP: preview_metadata_proposal_decision

المعاملات
proposal_idpath · مطلوبMetadata proposal id (from list metadata proposals).
decisionbody · مطلوب (approve, reject)
fieldsbody · اختياريFields to approve (default every proposed field).
notebody · اختياريWhy it is rejected (kept with the proposal).
الطلب
curl -X POST "https://autoseopro.ai/api/v1/metadata-proposals/2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d/preview-decision" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"decision":"approve","fields":["title","description"]}'
الاستجابة
{
  "data": {
    "action": "metadata_proposal_decision",
    "will_change": true,
    "summary": {
      "proposal_id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d",
      "page_url": "https://acmeplumbing.com/rigid-boxes/",
      "decision": "approve",
      "fields": [
        "title"
      ],
      "from": {
        "title": "Rigid boxes"
      },
      "to": {
        "title": "Rigid Boxes | Custom Sizes, Fast UK Delivery"
      }
    },
    "blocked_reason": null,
    "confirmation_token": "rkcf_example",
    "expires_at": "2026-10-04T10:10:00.000Z"
  }
}
POST/metadata-proposals/{proposal_id}/apply-decision

Apply a previewed metadata decision

Records the approval or rejection exactly as previewed. CHANGES DATA. Requires the confirmation token from the preview (same connection, within 10 minutes, single use); refused with confirmation_stale if the proposal changed meanwhile.

الصلاحية: metadata:write · أداة MCP: apply_metadata_proposal_decision

المعاملات
proposal_idpath · مطلوبMetadata proposal id (from list metadata proposals).
confirmation_tokenbody · مطلوبToken returned by the matching preview (valid 10 minutes, single use, only for the connection that previewed).
الطلب
curl -X POST "https://autoseopro.ai/api/v1/metadata-proposals/2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d/apply-decision" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"confirmation_token":"rkcf_AbCdEf0123456789…"}'
الاستجابة
{
  "data": {
    "action": "metadata_proposal_decision",
    "applied": true,
    "result": {
      "proposal_id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d",
      "state": "approved"
    }
  }
}
POST/articles/{article_id}/preview-approval

Preview approving an article for publishing

Shows the article, its current status and what approval would do (scheduled articles keep their date; others become ready to publish), plus the latest human fact-check status. Returns a confirmation token. Changes nothing. Fact-checks are recorded by a person in AutoSeoPro.ai, never through the API.

الصلاحية: approvals:write · أداة MCP: preview_article_approval

المعاملات
article_idpath · مطلوبArticle id.
الطلب
curl -X POST "https://autoseopro.ai/api/v1/articles/9b8e7d6c-5a4b-4c3d-8e2f-1a0b9c8d7e6f/preview-approval" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY"
الاستجابة
{
  "data": {
    "action": "article_approval",
    "will_change": true,
    "summary": {
      "article_id": "9b8e7d6c-5a4b-4c3d-8e2f-1a0b9c8d7e6f",
      "title": "How to Fix a Leaking Tap",
      "status": "draft",
      "status_after": "in_review",
      "scheduled_for": null,
      "fact_check": "verified"
    },
    "blocked_reason": null,
    "confirmation_token": "rkcf_example",
    "expires_at": "2026-10-04T10:10:00.000Z"
  }
}
POST/articles/{article_id}/apply-approval

Approve an article for publishing (confirmed)

Records the approval previewed by preview approval, as the person the connection acts for. CHANGES DATA and lets AutoSeoPro.ai publish the article on its schedule. Requires the preview's confirmation token; refused if the article changed after the preview.

الصلاحية: approvals:write · أداة MCP: apply_article_approval

المعاملات
article_idpath · مطلوبArticle id.
confirmation_tokenbody · مطلوبToken returned by the matching preview (valid 10 minutes, single use, only for the connection that previewed).
الطلب
curl -X POST "https://autoseopro.ai/api/v1/articles/9b8e7d6c-5a4b-4c3d-8e2f-1a0b9c8d7e6f/apply-approval" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"confirmation_token":"rkcf_AbCdEf0123456789…"}'
الاستجابة
{
  "data": {
    "action": "article_approval",
    "applied": true,
    "result": {
      "article_id": "9b8e7d6c-5a4b-4c3d-8e2f-1a0b9c8d7e6f",
      "status": "in_review"
    }
  }
}
POST/sites/{site_id}/article-requests/preview

Preview requesting a new article

Checks a tracked keyword (by id or exact text) and the plan's article allowance, and returns a confirmation token. Changes nothing. Keywords must already be tracked in AutoSeoPro.ai.

الصلاحية: generation:write · أداة MCP: preview_article_request

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
keyword_idbody · اختياريTracked keyword id (from get_keywords).
keywordbody · اختياريExact keyword text, when no id is given.
الطلب
curl -X POST "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/article-requests/preview" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword":"emergency plumber"}'
الاستجابة
{
  "data": {
    "action": "article_request",
    "will_change": true,
    "summary": {
      "site_id": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
      "keyword_id": "0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
      "keyword": "emergency plumber",
      "monthly_limit": 90,
      "monthly_used": 41,
      "monthly_remaining": 49,
      "pack_credits": 0
    },
    "blocked_reason": null,
    "confirmation_token": "rkcf_example",
    "expires_at": "2026-10-04T10:10:00.000Z"
  }
}
POST/sites/{site_id}/article-requests/apply

Request a new article (confirmed)

Queues article generation for the previewed keyword, using one article from the plan allowance. CHANGES DATA. The article arrives as a draft for review; it is never published without approval. Requires the preview's confirmation token.

الصلاحية: generation:write · أداة MCP: apply_article_request

المعاملات
site_idpath · مطلوبWebsite id (from list sites).
confirmation_tokenbody · مطلوبToken returned by the matching preview (valid 10 minutes, single use, only for the connection that previewed).
الطلب
curl -X POST "https://autoseopro.ai/api/v1/sites/4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a/article-requests/apply" \
  -H "Authorization: Bearer $AUTOSEOPRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"confirmation_token":"rkcf_AbCdEf0123456789…"}'
الاستجابة
{
  "data": {
    "action": "article_request",
    "applied": true,
    "result": {
      "job_id": "5f6a7b8c-9d0e-4f1a-8b2c-3d4e5f6a7b8c",
      "state": "queued"
    }
  }
}

التعديلات الآمنة والمراجعات

  • يمر كود HTML للمقالة بنفس معالجة محرر AutoSeoPro.ai: يُوحَّد وفق العناصر المسموح بها في المحرر، ويُرفض الترميز غير الآمن (unsafe_html)، وتُطبَّق سياسة الروابط الخارجية لموقعك.
  • تُرفض التعديلات التي تزيل روابط داخلية وضعها AutoSeoPro.ai، سواء كتلة المحتوى ذي الصلة أو الروابط التي يتتبعها الربط الداخلي، مع الرمز protected_links_removed. يمكنك نقلها أو تغيير نص الرابط.
  • أرسل expected_content_hash من آخر قراءة حتى لا يكتب التعديل فوق تغيير أجراه شخص آخر (stale_article).
  • يُحفظ كل تغيير كمراجعة مميزة بـ API أو موصل MCP. افتح المقالة في AutoSeoPro.ai لرؤية سجلها واستعادة أي نسخة سابقة.
  • لا تنشر الواجهة المقالات أو تلغي نشرها أو تجدولها أو تحذفها أبدًا، ولا تغيّر الإعدادات أبدًا.
  • يُسجَّل كل طلب في سجل نشاط مساحة العمل مع المفتاح والعملية والموقع والنتيجة.
  • التغييرات الأخرى (اعتماد البيانات الوصفية أو المقالات، وطلب المقالات، وإنشاء روابط تقارير العملاء) تتم على خطوتين: المعاينة لا تغيّر شيئًا وتُرجع رمز تأكيد صالحًا لمدة 10 دقائق؛ واستدعاء apply المطابق ينفّذ التغيير مرة واحدة وللمفتاح نفسه.

خطافات الويب

أضف نقاط النهاية من الإعدادات ← المطورون واختر الأحداث التي تريدها. يرسل AutoSeoPro.ai طلب POST بصيغة JSON موقّعًا إلى نقطة نهاية HTTPS الخاصة بك، ويعيد المحاولة عند الإخفاق بفواصل متزايدة، ويوقف مؤقتًا أي نقطة نهاية تستمر في الإخفاق.

الأحداث

article.publishedarticle.generation_failedaudit.completedgeo.run_completedbacklink.placedreport.deliveredbilling.subscription_changed

يحمل كل إرسال الترويسات rankora-signature وrankora-timestamp (بالمللي ثانية) وrankora-event وrankora-event-id.

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

{
  "id": "3f9c0b1e7a2d4c5b8e6f1a2b3c4d5e6f",
  "type": "article.published",
  "occurredAt": "2026-10-02T09:30:00.000Z",
  "data": {
    "siteId": "4f1c2a9e-7b1d-4c55-9a51-1f2e3d4c5b6a",
    "notificationType": "content.published"
  }
}

تحقّق من كل إرسال: احسب HMAC-SHA256 على "الطابع الزمني.المحتوى الخام" باستخدام سر التوقيع، وقارنه في زمن ثابت بالترويسة السداسية عشرية rankora-signature، وارفض الطوابع الزمنية الأقدم من خمس دقائق.

Node.js
import { createHmac, timingSafeEqual } from "node:crypto";

// rawBody: the exact request body string, before JSON.parse
export function verifyAutoSeoProWebhook(rawBody, headers, secret) {
  const timestamp = Number(headers["rankora-timestamp"]);
  if (!Number.isFinite(timestamp) || Math.abs(Date.now() - timestamp) > 5 * 60_000) return false;
  const expected = createHmac("sha256", secret).update(`${timestamp}.${rawBody}`).digest();
  const given = Buffer.from(String(headers["rankora-signature"] ?? ""), "hex");
  return given.length === expected.length && timingSafeEqual(given, expected);
}

موصل MCP

يتيح خادم MCP من AutoSeoPro.ai لمساعدي الذكاء الاصطناعي استخدام الواجهة كأدوات. لا يرى الاتصال إلا مواقع مساحة العمل التي فوّضته.

دليل الموصلات خطوة بخطوة

عنوان URL للخادم: https://autoseopro.ai/api/mcp

الأدوات

  • list_sitesList the websites this AutoSeoPro.ai connection can see. Call this first to get site ids for the other tools.
  • list_articlesList a website's articles (id, title, status, dates, live URL), newest first. Filter by status or date range.
  • get_articleGet one article with its full HTML body, SEO title, meta description and content_hash.
  • update_articleChange an article's title and/or HTML body. Saved as a restorable revision; never publishes. Refused if it removes internal links AutoSeoPro.ai placed. Pass expected_content_hash from get_article to avoid overwriting someone else's change.
  • replace_featured_imageReplace an article's featured image with a public https image URL. Saved as a restorable revision; never publishes.
  • list_backlinksList backlinks AutoSeoPro.ai earned or recorded for a website, with live verification state. Filter by state or date range.
  • get_statsGet a website's numbers for a period (this_month, last_month, last_30_days or YYYY-MM): articles, backlinks, keywords and the Search Console clicks/impressions summary.
  • get_keywordsList a website's keywords with volume, difficulty, intent, cluster and Search Console position/clicks. Filter by status or cluster.
  • get_audit_summaryGet the latest technical SEO/GEO audit scores, check counts and open issues for a website.
  • get_performanceGet a website's Google Search Console and GA4 numbers: last 28 days vs the 28 before, last 7 days vs the 7 before, top pages and queries, sessions and AI-assistant referrals. Use it to explain traffic changes; it never estimates.
  • get_geo_visibilityGet a website's latest AI visibility (GEO) run score and citations, and AI crawler / AI assistant visits for the last 28 days.
  • list_metadata_proposalsList a website's SEO title / meta description proposals (page URL, current vs proposed, state). Filter state=proposed for the ones awaiting a decision.
  • get_backlink_reportGet verified live backlinks, lost links, referring domains and the measured growth each link brought (Search Console before/after, GA4 referrals).
  • get_client_report_linkCheck whether a website has an active client report share link and when it expires. To create a new link, use preview_client_report_link then apply_client_report_link.
  • list_notificationsList recent AutoSeoPro.ai notifications (published articles, audits, alerts) for the connected person; filter unread.
  • get_site_healthGet a website's latest technical audit scores and top issues plus real-user Core Web Vitals, including whether AutoSeoPro.ai article pages are slower than the rest of the site. Use it for 'what should I fix first?'.
  • get_crawl_summaryGet the latest full-site audit of a website: site health, the prioritised fix plan (fix these first, quick wins, bigger projects), the trend since the previous audits and what could not be measured. Use it for 'what should I fix first?'.
  • list_crawl_issuesList the problems found by a website's latest full-site audit, highest priority first, with why, how, affected pages and example URLs. Filter by severity, impact or area.
  • list_crawl_issue_urlsList the URLs affected by one full-site audit issue (use an issue code from list_crawl_issues), 50 per page, most linked-to first; optionally one page type.
  • get_social_planShow a website's Social AI Manager plan (next 7 days by default): ideas with their pillar, posts per platform, time, caption excerpt and approval/lock state, plus the brief's pillar mix and cadence. Read-only.
  • list_social_resultsGet a website's social media results for a period (default last 30 days): posts, impressions, reach, engagements and clicks by platform. Read-only.
  • preview_metadata_proposal_decisionStep 1 of 2 to approve or reject a metadata proposal: shows what would change and returns a confirmation_token. Changes nothing. Show the preview to the user and only call apply_metadata_proposal_decision after they explicitly confirm.
  • apply_metadata_proposal_decisionStep 2 of 2. CHANGES DATA: records the approval/rejection previewed by preview_metadata_proposal_decision. Requires its confirmation_token. Only call after the user explicitly confirmed the preview.
  • preview_article_approvalStep 1 of 2 to approve an article for publishing: shows the article and what approval would do, returns a confirmation_token. Changes nothing. Fact-checking cannot be done here (people do it in AutoSeoPro.ai).
  • apply_article_approvalStep 2 of 2. CHANGES DATA: approves the article previewed by preview_article_approval so it can be published. Requires its confirmation_token. Only call after the user explicitly confirmed.
  • preview_article_requestStep 1 of 2 to have AutoSeoPro.ai write a new article for a tracked keyword: checks the keyword and the plan allowance, returns a confirmation_token. Changes nothing.
  • apply_article_requestStep 2 of 2. CHANGES DATA and uses plan allowance: queues the article previewed by preview_article_request. Requires its confirmation_token. Only call after the user explicitly confirmed.
  • preview_client_report_linkStep 1 of 2 to create a shareable client report link (anyone with the link can view the report for 30 days): shows the sections, returns a confirmation_token. Changes nothing; no e-mail is sent.
  • apply_client_report_linkStep 2 of 2. CHANGES DATA: creates the shareable client report link previewed by preview_client_report_link and returns its URL. Requires its confirmation_token. Only call after the user explicitly confirmed.

Claude (claude.ai وClaude Desktop)

افتح الإعدادات ← الموصلات ← إضافة موصل مخصص، والصق عنوان URL للخادم، ثم سجّل الدخول إلى AutoSeoPro.ai وانقر سماح.

https://autoseopro.ai/api/mcp

ChatGPT

افتح الإعدادات ← التطبيقات والموصلات ← الإعدادات المتقدمة وفعّل وضع المطور. ثم أنشئ موصلًا والصق عنوان URL للخادم واختر OAuth وسجّل الدخول إلى AutoSeoPro.ai وانقر سماح.

https://autoseopro.ai/api/mcp

Claude Code

شغّل هذا في الطرفية باستخدام مفتاح API من الإعدادات ← المطورون:

claude mcp add --transport http autoseopro https://autoseopro.ai/api/mcp \
  --header "Authorization: Bearer $AUTOSEOPRO_API_KEY"

Cursor

أضف هذا إلى ‎~/.cursor/mcp.json (أو ‎.cursor/mcp.json داخل مشروع). من دون حقل headers يسجّل Cursor الدخول عبر OAuth بدلًا من ذلك.

{
  "mcpServers": {
    "autoseopro": {
      "url": "https://autoseopro.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer rk_your_api_key"
      }
    }
  }
}

يعمل أي عميل يدعم Streamable HTTP مع ترويسة Authorization: Bearer تحمل مفتاح API. وتكتشف العملاء الداعمة لـ OAuth تسجيل الدخول تلقائيًا.

ينشئ اتصال OAuth مفتاح API صالحًا لمدة 30 يومًا باسم التطبيق. يظهر في الإعدادات ← المطورون حيث يمكنك إلغاؤه في أي وقت.

النشر على موقعك الخاص

لست على WordPress أو Webflow؟ ابنِ مستقبِلًا صغيرًا فينشر AutoSeoPro.ai المقالات ويحدّثها ويحذفها على موقعك عبر واجهة API موقّعة وآمنة من التكرار. يغطي الدليل خطوات الإعداد الخمس والترويسات والتوقيع والردود الدقيقة وحزمًا جاهزة للنسخ لـ Node.js وPHP وPython.

اقرأ دليل النشر

OpenAPI

الوصف الكامل القابل للقراءة آليًا، مولَّد من المصدر نفسه الذي تعمل منه الواجهة. استورده في Postman أو Insomnia أو مولّد شيفرة.

تنزيل openapi.json