☀️ Summer Sale: 50% Off on Yearly Plans
hrs
min
sec
For Developers & Builders

Add programmatic SEO
to your stack.

One API call. Arvow generates, optimizes, and delivers publish-ready articles - ranked on Google, cited by ChatGPT - straight to your webhook. No dashboard required.

generate.ts — POST /api/v1/batch
// Trigger a batch of SEO articles. Receive each one via webhook when ready.
const res = await fetch("https://api.arvow.com/api/v1/batch", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${ARVOW_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    formulaId: "your-formula-id",
    integrationId: "your-webhook-integration-id",
    formula: {
      generation: {
        entries: [
          { keyword: "best crm for startups" },
          { keyword: "crm pricing comparison 2025" }
        ]
      },
      content: {
        languageCode: "en",
        tone: "informational",
        pointOfView: "first-singular",
        serp: true,
        includeKeywords: ["CRM", "pipeline"]
      },
      knowledge: { brandId: "your-brand-id" },
      formatting: { bold: true, tables: true, lists: true }
    }
  })
});
const { id } = await res.json();  // → batch ID returned immediately
// Arvow generates async. Articles arrive at your webhook when ready.
~30s
per article
150+
languages
14+
CMS integrations
∞
articles per batch
20k+
teams using Arvow

Why Arvow API

Not just content generation.
Content infrastructure.

Arvow isn't a wrapper around GPT. It's a full pipeline — SERP research, SEO optimization, brand voice, formatting, multi-language — delivered programmatically.

📈
Programmatic SEO
Trigger bulk article generation from a keyword list. Each article is SERP-researched, structured, and SEO-optimized — automatically. Scale your content moat without scaling headcount.
🤖
LLM Visibility
Arvow structures content so it's not just ranked on Google — it's cited by ChatGPT, Perplexity, and AI search engines. The new distribution channel most tools ignore.
⚙️
Rich Formula Config
Full control via JSON: tone, formality, point-of-view, custom prompt, brand knowledge base, formatting rules, SERP mode, included keywords. One call, fully configured.
🔗
Webhook Delivery
Async by design. POST your batch, get an ID back instantly. Finished articles arrive at your endpoint with HTML, Markdown, metadata, and images.
🏷️
Brand Voice at Scale
Connect a Knowledge Base and brandId to every batch. Every article sounds like you wrote it — no prompt engineering required.
🌍
Multi-site & Multilingual
Run separate batches per workspace, language, or site. 150+ languages. Agencies manage client pipelines under isolated workspaces via workspaceId.
🔑

Plan requirement: The external API is available on the Solo plan and above. Webhooks are available on the Business plan and above. View pricing →


Architecture

A complete programmatic loop.

Trigger from your code. Receive finished content via webhook. Publish wherever you want. No dashboard, no manual steps.

POST
01
Trigger the batch
Call /api/v1/batch with your formula object — keywords, tone, brand, formatting. Get a batch id back immediately.
→
ASYNC
02
Arvow generates
The engine researches SERPs, writes the article, adds images, internal links, meta tags, schema markup, and TOC. No input needed from you.
→
WEBHOOK
03
Receive & publish
Each finished article POSTs to your endpoint — full HTML, Markdown, thumbnail, and SEO metadata. Your pipeline, your publishing logic.

API Reference

The formula object.

Every article is shaped by a formula. Pass it inline in the request body — or reference a saved formulaId from your dashboard.

formula object — full example
{
  "generation": {
    "entries": [
      { "keyword": "saas onboarding best practices",
        "title": "7 SaaS Onboarding Tips" }
    ]
  },
  "content": {
    "languageCode": "en",
    "countryCode": "us",
    "tone": "informational",
    "formality": "formal",
    "pointOfView": "first-singular",
    "creativity": -1,
    "customPrompt": "Focus on B2B SaaS...",
    "includeKeywords": ["onboarding", "churn"],
    "context": "Our users are CTOs",
    "serp": true
  },
  "knowledge": {
    "brandId": "brand_xyz",
    "serp": true
  },
  "formatting": {
    "bold": true,
    "italics": true,
    "tables": true,
    "quotes": true,
    "lists": true,
    "headingCase": "sentence"
  }
}

Everything configurable.
Nothing hardcoded.

The formula spec gives you precise control over every article in a batch. Save formulas in the dashboard and reference by ID, or pass inline per request.

entries[].keywordstringTarget keyword. Drives SERP research + article focus.
content.serpbooleanPull live top-10 SERP results to inform structure and coverage.
content.customPromptstringFree-text instructions appended to the generation prompt.
content.creativitynumber-1 (factual/tight) to 1 (creative/exploratory). Defaults to 0.
knowledge.brandIduuidAttach a Knowledge Base for brand voice, product context, and tone.
workspaceIduuidScope to a workspace — for agencies managing multiple clients.

Webhook Payload

Fully structured. Ready to ship.

Each webhook POST is a complete, publish-ready article. HTML and Markdown both included — plug into any stack without extra processing.

idstringUnique article ID for deduplication.
titlestringSEO-optimized article title.
contentHTMLFull rendered HTML — headings, lists, tables, embeds.
content_markdownstringRaw Markdown — for MDX, Ghost, Notion, or any Markdown CMS.
thumbnailurlAuto-generated featured image, ready to embed.
thumbnail_alt_textstringAccessibility-compliant alt text for the image.
metadescriptionstringSEO meta description — slot straight into your <head>.
keyword_seedstringThe original keyword that triggered this article.
language_codestringISO language code — for multi-language routing logic.
⚠️
No retry on failure. Webhooks are not retried if your endpoint is down. Queue incoming payloads before processing.
app/api/arvow-hook/route.ts
import { NextRequest, NextResponse } from "next/server";

export async function POST(req: NextRequest) {
  const article = await req.json();

  const {
    id, title, content, content_markdown,
    metadescription, thumbnail, keyword_seed, language_code
  } = article;

  // Queue it — don't process inline, no retries on failure
  await queue.push({ id, title, content, metadescription, thumbnail });

  // Acknowledge immediately
  return NextResponse.json({ ok: true }, { status: 200 });
}

async function processArticle(article) {
  await db.posts.upsert({
    where: { id: article.id },
    create: article,
    update: article
  });
}

Integrations

Works everywhere
in your pipeline.

Native CMS integrations for zero-config publishing. Webhooks + API for when you want full control.

⚡
Next.js / Nuxt / Astro
Webhook route → DB or CMS. Full control.
🔧
n8n / Make / Zapier
Native Zapier integration + full webhook support.
📝
WordPress
Direct plugin — articles land as drafts or published posts.
🛒
Shopify
Auto-publish product content and SEO blog posts at scale.
👻
Ghost
Markdown payload maps directly to Ghost Admin API.
🌊
Webflow
CMS-powered collections via webhook automation.
🔲
Wix / Squarespace
Native integrations for no-code publishing.
✦
Any Custom CMS
Webhook → your endpoint. HTML + Markdown + meta. Done.

Ready to build?

Get your API key and start publishing programmatically. Available on the Solo plan and above.