Auto Blogger
EN
Log in
Menu

These endpoints support tooling that connects Auto Blogger to external systems: confirming who the token represents, registering webhook URLs, backfilling published posts, and discovering WordPress OAuth settings.

See REST API overview for authentication and scopes.

Current user and account

GET /api/me
Authorization: Bearer TOKEN

No extra scope beyond a valid token. Use this after OAuth to learn which workspace the token acts on.

Example response

{
  "user": {
    "id": 1,
    "name": "Alex Example",
    "email": "[email protected]"
  },
  "accounts": [
    {
      "id": 10,
      "name": "Acme Marketing",
      "slug": "acme-marketing",
      "role": "owner"
    }
  ],
  "account": {
    "id": 10,
    "name": "Acme Marketing",
    "slug": "acme-marketing",
    "role": "owner"
  }
}

account is the first account on the user (same ordering as the dashboard default). Multi-account users should prefer the accounts array to pick the correct workspace.

Published posts (sync)

GET /api/websites/{uuid}/published-posts
Authorization: Bearer TOKEN

Scope: websites:read.

Returns the same JSON shape as outbound webhook post.published deliveries—ideal for backfilling WordPress or verifying sync.

Query parameters

Parameter Default Max
per_page 50 100
page 1 Standard page number for long result sets

Example response

{
  "data": [
    {
      "event": "post.published",
      "website": { "uuid": "550e8400-e29b-41d4-a716-446655440000" },
      "post": {
        "id": 42,
        "slug": "how-we-grew-organic-traffic",
        "title": "How we grew organic traffic",
        "meta_title": "...",
        "meta_description": "...",
        "published_at": "2026-05-20T14:30:00+00:00",
        "url": "https://www.example.com/how-we-grew-organic-traffic",
        "html_excerpt": "...",
        "html": "<p>...</p>"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "last_page": 3,
    "per_page": 50,
    "total": 120
  }
}

Cover images appear under post.images when present (see Webhooks).

Webhook integrations

Manage HTTPS webhook endpoints that receive post.published events. Requires websites:manage or integrations:manage and Owner/Admin role.

List integrations

GET /api/websites/{uuid}/integrations
Authorization: Bearer TOKEN

Returns webhook integrations only (type: webhook).

{
  "data": [
    {
      "id": 7,
      "type": "webhook",
      "name": "WordPress",
      "url": "https://blog.example.com/wp-json/auto-blogger/v1/webhook",
      "signing_configured": true,
      "created_at": "2026-06-01T09:00:00+00:00"
    }
  ]
}

signing_configured is true when a secret was saved (signature header enabled).

Create integration

POST /api/websites/{uuid}/integrations
Authorization: Bearer TOKEN
Content-Type: application/json

{
  "name": "Production WordPress",
  "url": "https://blog.example.com/wp-json/auto-blogger/v1/webhook",
  "secret": "your-webhook-secret"
}
Field Rules
url Required. Must be https://
name Optional. Defaults to WordPress
secret Optional. Enables X-Webhook-Signature verification (webhooks guide)
type Optional. Defaults to webhook

201 Created with data object.

Delete integration

DELETE /api/websites/{uuid}/integrations/{integration_id}
Authorization: Bearer TOKEN

204 No Content. 404 if the integration belongs to another website.

WordPress OAuth config (plugin setup)

This URL is not on the authenticated API prefix. It is public so the WordPress plugin can read the OAuth client ID before the user signs in.

GET /oauth/wordpress/oauth-config

No bearer token. Used by the WordPress plugin and custom OAuth clients to discover client ID and paths.

Example — configured

{
  "oauth_client_id": "019e9234-0000-7000-8000-000000000001",
  "oauth_connect_path": "/oauth/wordpress/connect",
  "oauth_redirect_path": "/oauth/wordpress/callback",
  "oauth_redirect_uri": "https://auto-blogger.ai/oauth/wordpress/callback"
}

Example — not configured

503 Service Unavailable

{
  "message": "WordPress OAuth is not configured on this server."
}

(Exact wording may vary; status code 503 indicates OAuth is unavailable.)

Connect flow (summary)

  1. Plugin calls oauth-config.
  2. Browser opens /oauth/wordpress/connect with:
    • return_url — plugin admin URL (validated)
    • code_challenge / code_challenge_method=S256 (PKCE)
  3. User signs in and approves scopes (default client requests websites:read integrations:manage).
  4. Callback returns to WordPress; plugin exchanges code at POST /oauth/token.

Agents that need topic management should request websites:manage (or rely on integrations:manage, which also grants website writes) during authorization.

Related