Platform

AEO Website Research-grade Content Content Factory About Audits Rankings Pricing

Resources

Knowledge Base Research Docs FAQ

API Reference

Plugin Onboard

Kick off the first-run Discovery + Site Audit for a newly connected WordPress site. Called by the plugin immediately after the site token is saved.

POST/api/v1/plugin/onboard

Enqueues an audit job for the calling site, returning the slug and initial status so the plugin can poll GET /api/v1/audits/[slug]/status (pipeline progress) and GET /api/v1/audits/[slug]/discovery (Discovery findings as soon as they land). If an audit job already exists for the domain, returns the current job status instead of queuing a duplicate.

Example

bash
curl -X POST "https:">//audit.aeocontent.ai/api/v1/plugin/onboard" \
  -H "Authorization: Bearer $AEO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "site_url": "https://example.com" }'

Try it

Response

201Onboarding audit queued
json
{
  class="code-string">"data": {
    class="code-string">"slug": class="code-string">"example-com",
    class="code-string">"domain": class="code-string">"example.com",
    class="code-string">"status": class="code-string">"queued",
    class="code-string">"current_stage": null
  },
  class="code-string">"meta": {
    class="code-string">"request_id": class="code-string">"c3d4e5f6-a7b8-9012-cdef-123456789012",
    class="code-string">"timestamp": class="code-string">"2026-04-11T12:00:00.000Z"
  }
}
200Audit already in progress
json
{
  class="code-string">"data": {
    class="code-string">"slug": class="code-string">"example-com",
    class="code-string">"domain": class="code-string">"example.com",
    class="code-string">"status": class="code-string">"discovering",
    class="code-string">"current_stage": class="code-string">"discovering niche and competitors"
  },
  class="code-string">"meta": {
    class="code-string">"request_id": class="code-string">"c3d4e5f6-a7b8-9012-cdef-123456789012",
    class="code-string">"timestamp": class="code-string">"2026-04-11T12:00:00.000Z"
  }
}
400Missing site_url
json
{
  class="code-string">"error": { class="code-string">"code": class="code-string">"bad_request", class="code-string">"message": class="code-string">"Missing site_url and no registered WordPress connection for this client." }
}
The plugin typically calls this the moment the user completes the Google connect flow. The deterministic Discovery stage populates within ~30 seconds and can be fetched via GET /api/v1/audits/[slug]/discovery while the rest of the audit continues running.