Skip to content

Endpoints

Three read-only endpoints for retrieving published articles.

All endpoints are authenticated (see Authentication) and rate-limited (see Errors & Rate Limits).

GET /api/v1/articles

Fetch all published articles for your site, paginated.

Parameters

  • page — page number (default: 1)
  • limit — articles per page (default: 10, max: 50)
bash
curl -H "x-api-key: ask_your_api_key_here" \
  "https://www.morphinglabs.com/api/v1/articles?page=1&limit=10"
json
{
  "data": [
    {
      "id": "uuid",
      "headline": "Article Title",
      "slug": "article-title",
      "meta_title": "SEO title (max 60 chars)",
      "meta_description": "SEO description (max 155 chars)",
      "byline": "Site Name",
      "primary_keyword": "main keyword",
      "secondary_keywords": ["keyword2", "keyword3"],
      "featured_image_url": "https://images.unsplash.com/...",
      "table_of_contents": [
        { "id": "section-1", "title": "Section Title" }
      ],
      "sections": [
        {
          "id": "section-1",
          "heading": "Section Title",
          "body": "**Markdown** content with [links](https://...)..."
        }
      ],
      "sources": [
        { "title": "Source Name", "url": "https://..." }
      ],
      "published_at": "2026-03-30T10:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 42,
    "pages": 5
  }
}

GET /api/v1/articles/:slug

Fetch a single article by slug. Returns the same article shape as above under data.

bash
curl -H "x-api-key: ask_your_api_key_here" \
  https://www.morphinglabs.com/api/v1/articles/my-article-slug

A slug that doesn't exist for your site returns 404 — see Errors & Rate Limits.

GET /api/v1/articles/latest

Fetch the most recently published articles.

Parameters

  • limit — number of articles (default: 5, max: 20)
bash
curl -H "x-api-key: ask_your_api_key_here" \
  "https://www.morphinglabs.com/api/v1/articles/latest?limit=5"

This endpoint returns a lighter object per article than /articles — only id, headline, slug, meta_title, meta_description, byline, featured_image_url, and published_at. It does not include sections, sources, or keyword fields, so use /articles or /articles/:slug when you need the full body.

json
{
  "data": [
    {
      "id": "uuid",
      "headline": "Article Title",
      "slug": "article-title",
      "meta_title": "SEO title (max 60 chars)",
      "meta_description": "SEO description (max 155 chars)",
      "byline": "Site Name",
      "featured_image_url": "https://images.unsplash.com/...",
      "published_at": "2026-03-30T10:00:00Z"
    }
  ]
}