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.
// 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.
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.
Plan requirement: Webhooks are available on the Business plan and above. The external API is available on the Agency plan. View pricing →
A complete programmatic loop.
Trigger from your code. Receive finished content via webhook. Publish wherever you want. No dashboard, no manual steps.
/api/v1/batch with your formula object — keywords, tone, brand, formatting. Get a batch id back immediately.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.
{
"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.
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.
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 }); }
Works everywhere
in your pipeline.
Native CMS integrations for zero-config publishing. Webhooks + API for when you want full control.
Ready to build?
Get your API key and start publishing programmatically. Available on Business and Agency plans.