API

Read-only REST access to your published articles.

Authentication

Pass your key in the X-API-Key header on every request. Generate one from Integrations → API in your dashboard.

curl -H "X-API-Key: your_api_key" \
  https://honeytraffic.com/api/public/v1/articles

List articles

GET /api/public/v1/articles

Query parameters:

  • limit — max results per page, default and max 50
  • offset — pagination offset, default 0

Returns published articles only, newest first:

{
  "articles": [
    {
      "id": "...",
      "slug": "best-seo-tools-2026",
      "title": "Best SEO Tools 2026",
      "metaTitle": "Best SEO Tools 2026",
      "metaDescription": "...",
      "angle": "listicle",
      "language": "en-US",
      "publishedAt": "2026-08-01",
      "jsonLd": { "@type": "Article", "...": "..." }
    }
  ],
  "total": 1,
  "limit": 50,
  "offset": 0
}

The list response omits html and markdown to keep it light — fetch the full article by slug for those.

Get one article

GET /api/public/v1/articles/:slug

{
  "article": {
    "id": "...",
    "slug": "best-seo-tools-2026",
    "title": "Best SEO Tools 2026",
    "metaTitle": "Best SEO Tools 2026",
    "metaDescription": "...",
    "html": "<h1>...</h1>...",
    "markdown": "# ...",
    "angle": "listicle",
    "language": "en-US",
    "publishedAt": "2026-08-01",
    "jsonLd": { "@type": "Article", "...": "..." }
  }
}

Returns 404 if the slug doesn't exist or isn't published yet.

Errors

  • 401 — missing or invalid X-API-Key
  • 404 — article not found or not published

v2

/api/public/v2/articles and /api/public/v2/articles/:slug use the same key, parameters, and error codes as v1, plus one additional field on every article: coverImageUrl — a publicly-fetchable URL for the article's generated cover image, or null if it hasn't generated yet. v1 keeps working unchanged; switch your integration to /v2/ whenever you're ready for it.