Developer API

Blogo Writing API

Send a website and a keyword. Get a reviewed, publish-ready article back through the same research → draft → fact-check → human-review workflow the app uses. REST over HTTPS, API-key auth, asynchronous jobs you poll to completion.

Principles

  • The API removes UI work — it does not bypass quality. Every article runs the full pipeline and lands in your review queue as a draft.
  • Writing is asynchronous: research, drafting, fact-checks, and review signals take time.
  • API keys are server-side secrets. Never expose them in browser code.
  • Each delivered article costs one credit (a refresh costs half). Buying API capacity means buying credits — the same wallet the app uses.

Authentication

Create a key in Settings → API Keys. Send it on every request as either header:

Authorization: Bearer sk_your_key
# or
x-api-key: sk_your_key

1. Analyze a website

Use this when you only have a URL. Returns a draft business profile to confirm.

curl -X POST https://www.blogo.ai/api/articleos/onboarding/analyze \
  -H "Authorization: Bearer sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"website":"https://example.com"}'

2. Confirm the business

Save the confirmed profile. This creates (or reuses) the site the article is written for.

curl -X POST https://www.blogo.ai/api/articleos/onboarding/confirm \
  -H "Authorization: Bearer sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"website":"https://example.com","understanding":{"companyOneLiner":"..."}}'

3. Start an article

Send a keyword. The job runs asynchronously; the response returns a jobId. Prepare-only runs (precomputeOnly: true) build the plan without writing and are free.

curl -X POST https://www.blogo.ai/api/articleos/v2/workflow-runs \
  -H "Authorization: Bearer sk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"input":{"topic":"best airless pump bottles","siteId":"<site-id>"}}'

4. Poll the job

List recent runs and read status. An article is ready for you when its status iswaiting_for_human_review or ready_to_publish.

curl https://www.blogo.ai/api/articleos/v2/workflow-runs?limit=10 \
  -H "Authorization: Bearer sk_your_key"

Statuses

  • running — the pipeline is working.
  • waiting_for_human_review — a reviewable draft exists; open it in the app.
  • ready_to_publish — approved; a WordPress draft can be pushed.
  • blocked — the run stopped fail-closed (never a fabricated article). Read the reason and retry.

Credits & billing

One delivered article = one credit; a refresh = half. Prepare-only runs and failed runs are never charged. Per-key usage is visible in Settings → API Keys. Add capacity by buying credits — there is no separate API pricing tier.

Errors

  • 401 Unauthorized — missing or invalid key.
  • 402 / "Not enough credits" — top up your credit balance.
  • 429 Too Many Requests — rate limited; retry after the indicated delay.