Product & API docs
Everything you need to generate, approve, and deliver content — whether you publish to a CMS or pull articles headlessly into your own frontend.
Quickstart
- 1
Create an account
Start free — no credit card. You get 3 quality-gated articles on the trial.
- 2
Add a site
Connect a CMS (WordPress, with Ghost and Webflow next) or choose headless-api to publish via the Content API.
- 3
Add topics & generate
Seed keywords or let Draftwave discover and cluster them, then generate. Articles run the full pipeline and land in your review queue as pending_review.
- 4
Approve & publish
Review the scorecard, tweak if you like, and publish. For headless sites, approving makes the article retrievable from the Content API.
Two publishing models
Draftwave supports both directions. Pick per site — or use both.
Draftwave → your CMS. On approve, the connector publishes the article to WordPress (Ghost and Webflow next). Best for existing CMS-backed sites.
Your app → Draftwave. Set cms_type = headless-api
and fetch published articles from the Content API with a publishable key. Best for
Vue / Next / static sites and apps.
API keys: publishable vs secret
pk_live_… Publishable (read) key Read-only, scoped to published content for one site. Safe to ship in a browser; can be origin-restricted and rate-limited. This is what powers content fetching.
sk_live_… Secret (admin) key Server-side only. Broader access — trigger generation, read drafts, manage topics. Never expose it in a browser. Draftwave stores only a hash of every key and shows the full key exactly once, at creation.
Content Delivery API
Read-only, key-authed, and edge-cached at https://cdn.draftwave.io.
Only ever returns published
content for the key's site — drafts are never exposed.
# Fetch the 10 most recent published articles
curl "https://cdn.draftwave.io/v1/articles?site=SITE_ID&limit=10" \
-H "Authorization: Bearer pk_live_xxx"
# → { "data": [ { "slug": "...", "title": "...",
# "html": "...", "faq": [...], "jsonLd": {...},
# "publishedAt": 1719878400000 }, ... ] } | Method | Endpoint | Description |
|---|---|---|
| GET | /v1/articles | List published articles for a site (paginated). |
| GET | /v1/articles/{slug} | Fetch one published article by slug. |
| GET | /v1/articles/{id}/raw | Get the article body as Markdown. |
| GET | /v1/sites/{siteId}/sitemap.xml | XML sitemap of published articles. |
| GET | /v1/sites/{siteId}/feed.xml | RSS / Atom feed. |
| GET | /v1/sites/{siteId}/manifest | ids + updatedAt for incremental static builds. |
Dashboard API (selected)
Secret-key or session-authed, at https://api.draftwave.io.
A few of the most-used endpoints:
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/generate | Generate one article (async job). |
| GET | /api/sites/{id}/articles | List the review queue for a site. |
| POST | /api/articles/{id}/approve | Approve (and optionally schedule) an article. |
| POST | /api/articles/{id}/publish | Publish an approved article now. |
| POST | /api/keys | Create an API key (full key returned once). |
The complete machine-readable contract lives in our OpenAPI 3.1 spec
(docs/openapi.yaml), covering
auth, sites, topics, generation, review, publishing, scheduling, keys, and the Content
Delivery API.
Build on your own content backend.
Start free, generate an article, and pull it via the Content API.