MetaRank API Documentation

Generate clean, search-optimized SEO metadata from real content using a single API call.

What MetaRank does

MetaRank analyzes your article content and returns SEO-ready metadata including titles, descriptions, keywords, slugs, and search intent.

There is no training phase, no prompt management, and no tuning required. You provide content. MetaRank returns metadata.

Authentication

All requests require an API key passed via the Authorization header.

Authorization: Bearer YOUR_API_KEY

API Endpoint

POST
https://api.metarank.dev/v1/seo/meta

Request body

{
  "title": "How to build a SaaS product as a solo founder",
  "body": "Full article content in Markdown, HTML, or plain text",
  "location": "United Kingdom",
  "targetQuery": "build a SaaS product"
}
  • title (required) โ€” Article title
  • body (required) โ€” Minimum 100 characters
  • location (optional) โ€” Geographic SEO context
  • targetQuery (optional) โ€” Overrides inferred intent

Response

{
  "metaTitle": "How to Build a SaaS Product as a Solo Founder",
  "metaDescription": "Learn how to validate a SaaS idea, choose a tech stack, build an MVP, and launch.",
  "slug": "build-saas-product-solo-founder",
  "keywords": "saas product, solo founder, build saas",
  "ogDescription": "A practical guide to building a SaaS product as a solo founder.",
  "searchIntent": "informational",
  "primaryLocation": "United Kingdom",
  "languageCode": "en"
}

Responses are deterministic JSON and safe to store or cache.

Examples

cURL
curl -X POST https://api.metarank.dev/v1/seo/meta \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "How to build a SaaS product",
    "body": "Full article content in Markdown, HTML, or plain text"
  }'
JavaScript
fetch("https://api.metarank.dev/v1/seo/meta", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    title: "How to build a SaaS product",
    body: "Full article content in Markdown, HTML, or plain text"
  })
}).then(res => res.json());

Usage and limits

  • One request equals one article processed
  • Failed requests are not billed
  • Retries do not count toward usage
  • Usage resets monthly

Data handling

Content is processed ephemerally. MetaRank does not store content or use it for training.

Get started

Try MetaRank in the browser or integrate it directly using the API.

View API docs