✨ Hello 2026: 40% 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: Webhooks are available on the Business plan and above. The external API is available on the Agency plan. 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 Business and Agency plans.