Keyword → Blog API

API reference

POST /v1/generate

Generates a single SEO-formatted blog post synchronously and returns it in the response body.

POST/v1/generate

Headers

  • AuthorizationBearer <API_KEY>required
  • Idempotency-Key<uuid>
  • X-Request-ID<uuid>

Request body fields

FieldTypeNotes
keywordsstring[]At least 1 keyword required.
topicstring?Optional framing for the post beyond the raw keywords.
languagestringe.g. "en".
tone"professional" | "friendly" | "bold"Must match one of the supported enum values.
constraints.maxWordsnumberCapped by your plan’s maxWordsPerRequest — see billing & plans.
format.responseTypesArray<"json"|"markdown"|"html">Controls which representations appear under rendered.
factualityMode"standard" | "verified"Optional, defaults to "standard" — see the content quality pipeline.

Full field list: see GenerateRequestV1 in lib/types/Generate.ts.

Content quality pipeline

The response is never the model’s raw first draft — every generation is validated and, if needed, automatically revised by the content quality pipeline before being returned. If it still can’t pass within the revision limit, the request fails with CONTENT_QUALITY_FAILED instead of returning substandard content.

Prohibited input constraints

If the model declines to generate content for a request (its own safety system refuses), the request fails with PROHIBITED_INPUT instead of returning partial or fabricated content — see /docs/error-codes.

Idempotency

Pass a key via the Idempotency-Key header or the body’s idempotencyKey field. The same key with the same request body returns the original response again — generation only ever runs once, so retries after a dropped connection can’t double-bill. Reusing the same key with a different body returns VALIDATION_ERROR.

Response schema

requestId, post (the SEOPostV1 object), rendered (markdown/html/rawJson per requested format.responseTypes), an optional debug block, and quality — a minimal summary from the content quality pipeline (score, revision count); the full internal scoring breakdown is intentionally not part of the public response.

curl example

shell
curl -X POST ${NEXT_PUBLIC_API_BASE_URL}/v1/generate \
  -H "Authorization: Bearer $KEYWORD_TO_BLOG_API_KEY" \
  -H "Idempotency-Key: 3f7c2e9a-1d4b-4e2a-9c3d-8b1a2f4e5c6d" \
  -H "Content-Type: application/json" \
  -d '{
  "keywords": [
    "ai content marketing",
    "small business seo"
  ],
  "topic": "How small businesses can use AI content marketing without losing their voice",
  "language": "en",
  "region": "US",
  "tone": "friendly",
  "targetAudience": "small business owners with no in-house marketing team",
  "brandVoice": "warm, practical, no jargon",
  "industry": "marketing services",
  "targetUrl": "https://example.com/blog/ai-content-marketing",
  "constraints": {
    "maxWords": 900,
    "minWords": 600,
    "maxSections": 5,
    "includeFAQs": true,
    "includeInternalLinksPlaceholders": true,
    "keywordUsageStrategy": "natural"
  },
  "format": {
    "responseTypes": [
      "json",
      "markdown"
    ]
  },
  "clientProvidedRequestId": "req_local_0192"
}'

Example response — 200 OK

json
{
  "requestId": "req_9f3a1c2e4b",
  "post": {
    "title": "AI Content Marketing for Small Businesses: A Practical Starting Point",
    "slugSuggestion": "ai-content-marketing-small-business",
    "meta": {
      "description": "A practical guide to using AI content marketing as a small business, without losing the voice your customers already trust.",
      "primaryKeyword": "ai content marketing"
    },
    "outline": {
      "h1": "AI Content Marketing for Small Businesses: A Practical Starting Point",
      "h2": [
        "Why small businesses are turning to AI content marketing",
        "Where AI helps most, and where it doesn't",
        "Keeping your brand voice consistent",
        "A simple weekly workflow",
        "Frequently asked questions"
      ]
    },
    "sections": [
      {
        "type": "introduction",
        "contentMarkdown": "Most small business owners don't have a marketing department. AI content marketing tools promise to fill that gap, but the real question isn't whether AI can write — it's whether it can write like *you*."
      },
      {
        "type": "body",
        "heading": "Why small businesses are turning to AI content marketing",
        "contentMarkdown": "Small business SEO used to mean choosing between hiring a writer or falling behind. AI content marketing changes that math by making a consistent publishing schedule achievable without a full-time hire."
      },
      {
        "type": "body",
        "heading": "Where AI helps most, and where it doesn't",
        "contentMarkdown": "AI is strongest at first drafts, outlines, and repetitive formats like FAQs. It's weakest at judgment calls that depend on knowing your actual customers — so keep a human review step for anything customer-facing."
      },
      {
        "type": "callout",
        "contentMarkdown": "A five-minute voice check before publishing catches most AI-sounding phrasing.",
        "callout": {
          "label": "Quick tip",
          "text": "Read the draft aloud. If it doesn't sound like something you'd actually say to a customer, rewrite that line."
        }
      },
      {
        "type": "body",
        "heading": "Keeping your brand voice consistent",
        "contentMarkdown": "Give the tool a short brand voice brief once, then reuse it: three adjectives, one thing you never say, and one real customer question you hear often."
      },
      {
        "type": "body",
        "heading": "A simple weekly workflow",
        "contentMarkdown": "Draft on Monday, review and edit Tuesday, publish Wednesday. Keeping a fixed cadence matters more than any individual post."
      },
      {
        "type": "faq",
        "heading": "Frequently asked questions",
        "contentMarkdown": ""
      },
      {
        "type": "conclusion",
        "contentMarkdown": "AI content marketing works best as a drafting partner, not a replacement for judgment. Start with one post a week and keep your own voice in the final pass."
      }
    ],
    "faqs": [
      {
        "question": "Will AI-written content hurt my SEO?",
        "answer": "Search engines rank content on quality and usefulness, not on how it was drafted. Editing for accuracy and voice before publishing is what matters."
      },
      {
        "question": "How much editing does an AI draft usually need?",
        "answer": "Expect to adjust specific claims, add real examples from your business, and tighten anything that reads generic."
      }
    ],
    "conclusion": "AI content marketing works best as a drafting partner, not a replacement for judgment. Start with one post a week and keep your own voice in the final pass.",
    "coverageNotes": {
      "keywordCoverage": [
        {
          "keyword": "ai content marketing",
          "covered": true,
          "evidence": "Appears in title, H1, and introduction."
        },
        {
          "keyword": "small business seo",
          "covered": true,
          "evidence": "Appears in the second H2 section."
        }
      ]
    }
  },
  "rendered": {
    "markdown": "# AI Content Marketing for Small Businesses: A Practical Starting Point\n\nMost small business owners don't have a marketing department..."
  },
  "debug": {
    "generationModel": "claude-haiku-4-5-20251001"
  },
  "quality": {
    "status": "pass",
    "score": 91,
    "revisionCount": 0,
    "qualityVersion": "1.0.0"
  }
}