API documentation

Use this reference to integrate website analysis, streaming job updates, and content generation with Automate My Blog. Paths below match the production/staging Node API router.
Core endpoints
MethodEndpointPurposeAuth
GET/healthLiveness probe on the API host (same deployment as /api/v1/*)Public
GET/api/v1/public-site/:publicUsernameRead published hosted landing HTML + theme (no auth when hosting is enabled)Public
POST/api/v1/jobs/website-analysisEnqueue async website analysis (returns jobId)Session, JWT, or x-session-id
GET/api/v1/jobs/:jobId/statusPoll job status and result payload when terminalSession, JWT, or x-session-id
GET/api/v1/jobs/:jobId/narrative-streamServer-sent events for analysis narration / progressSession, JWT, or x-session-id
POST/api/v1/jobs/content-generationEnqueue async enhanced blog generation (worker + credits)Session, JWT, or x-session-id
POST/api/v1/topicsGenerate topic suggestions for a selected audienceSession optional (see backend optionalAuth)
POST/api/v1/enhanced-blog-generation/generateSynchronous enhanced blog generation (credits; long-running)Session or JWT
Webhook events
  • Product webhooks (content.ready / publish.completed style) are not a separate public contract today.
  • Prefer jobs + status + narrative-stream / stream for durable integration; confirm any webhook program with support before building to these names.
Integration guide
  • 1. Authenticate (HttpOnly session cookie after login, or Authorization: Bearer …; some job routes also accept x-session-id).
  • 2. POST /api/v1/jobs/website-analysis with { url } → jobId; poll GET /api/v1/jobs/:jobId/status until succeeded or failed.
  • 3. Optionally open GET /api/v1/jobs/:jobId/narrative-stream (SSE) for streaming narration while the job runs.
  • 4. For topics, POST /api/v1/topics with audience + organization context as used in the dashboard.
  • 5. For posts, choose POST /api/v1/jobs/content-generation (async) or POST /api/v1/enhanced-blog-generation/generate (sync); both require credits and auth.
!