Quickstart

Two ways to your first article — pick how you build. The agentic path (MCP + skill) is recommended and needs no code; the raw REST API is right below. Either way, start by getting an API key.

1. Get an API key

Sign in to your dashboard and visit the Developers page. Click Create API key and copy the secret — it starts with sk_live_ and is shown only once.

Store it safely

API keys grant full access to your account. Never commit them to source control. Use environment variables locally and a secrets manager in production (Vercel env, AWS Secrets Manager, Doppler).

Export the key in your shell so the rest of the examples just work:

bash
export SEOLADDERS_API_KEY=sk_live_••••••••••••••••

Option A — Agentic (recommended)

Best for Claude, Claude Code, Cursor, ChatGPT, or any agent. Add the MCP (the tools that run the work) + the skill (the SEO playbook + guided /seoladders commands) once, then drive the whole platform in plain language — no code.

Connect — pick your app:

In the Claude app (web + desktop), both live under Customize:

  1. Skills → + — upload the SEOLadders skill zip. Download the repo ZIP, zip the seoladders folder, and upload it.
  2. Connectors → Add custom connector — name it "SEO Ladders". The app has no header field, so put your key in the URL:
text
https://www.seoladders.com/api/mcp?key=sk_live_...

Leave the OAuth fields blank → Add. The Skill gives Claude the process; the connector gives it execution — you want both.

Run your first action — ask for keyword ideas. It's instant and needs almost nothing from you:

text
/keyword-research best crm for startups

…or just say "find keywords for a CRM for startups." You get ideas with real search volume, difficulty, and DR-match. From there, /write-article turns any of them into a full article, and /seoladders runs the whole pipeline.

The whole loop, hands-off

Beyond one keyword, /seoladders runs the full pipeline — audit, find gaps, write, publish, and track where AI recommends you. Full per-client config + every command are in MCP Setup and the SEOLadders skill.

Option B — REST API

Prefer raw HTTP? The same result in three calls — generate, poll, fetch. Generation is async: even a single article uses the batch endpoint with a one-item array.

Generate — returns a batchId immediately; the article runs in the background:

curl -X POST https://www.seoladders.com/api/v1/articles/batch \
  -H "Authorization: Bearer $SEOLADDERS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      { "keyword": "best crm for startups" }
    ]
  }'

Poll until status === "completed" (usually 2–3 minutes):

bash
curl https://www.seoladders.com/api/v1/batches/$BATCH_ID \
  -H "Authorization: Bearer $SEOLADDERS_API_KEY"

A completed batch returns:

json
{
  "batchId": "btc_01HXY...",
  "status": "completed",
  "totalCount": 1,
  "completedCount": 1,
  "failedCount": 0,
  "items": [
    {
      "articleId": "art_01HZ...",
      "keyword": "best crm for startups",
      "status": "ready",
      "title": "Best CRM for Startups in 2026",
      "wordCount": 3450,
      "url": "https://www.seoladders.com/api/v1/articles/art_01HZ..."
    }
  ]
}

Fetch the finished article — title, body in Markdown and HTML, keyword, word count, JSON-LD schema, FAQ, and citation sources:

bash
curl https://www.seoladders.com/api/v1/articles/$ARTICLE_ID \
  -H "Authorization: Bearer $SEOLADDERS_API_KEY"

Skip polling in production

Pass webhookUrl in the batch request and we'll POST a signed article.ready event when each article finishes. See the Webhooks guide.

Where next?