> ## Documentation Index
> Fetch the complete documentation index at: https://docs.skayle.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Article / Item

> Retrieve a single article or collection item by ID or slug.

## Endpoints

```bash theme={null}
GET /articles/:id-or-slug
GET /posts/:id-or-slug                              # backward-compatible alias
GET /collections/:collection-slug/items/:id-or-slug
```

Plan note:

* `Articles` are available on all plans.
* Additional non-article collections require the `Authority` plan.

The path value accepts either:

* Skayle content ID
* Content slug

## Query parameters

| Parameter | Type   | Description                                           |
| --------- | ------ | ----------------------------------------------------- |
| `_fields` | string | Comma-separated attribute field filter                |
| `include` | string | Include related resources (`categories,tags,authors`) |

## Example request (root article)

```bash theme={null}
curl "https://api.skayle.ai/v1/ORG_ID/articles/b2b-saas-content-strategy-2026?include=categories,tags,authors"
```

## Example request (collection item)

```bash theme={null}
curl "https://api.skayle.ai/v1/ORG_ID/collections/answers/items/what-is-product-led-seo"
```

## Example response

```json theme={null}
{
  "data": {
    "id": "post_01HZX2...",
    "type": "articles",
    "attributes": {
      "title": "B2B SaaS Content Strategy for 2026",
      "slug": "b2b-saas-content-strategy-2026",
      "excerpt": "A practical framework for demand capture and category coverage.",
      "content_html": "<h2>...</h2>",
      "comparison_screenshots": [
        {
          "section_heading": "Acme vs Competitor A",
          "section_slug": "acme-vs-competitor-a",
          "competitor_name": "Competitor A",
          "source_url": "https://competitor-a.com/",
          "screenshot_url": "https://cdn.example.com/comparison-screenshots/org/post/acme-vs-competitor-a.webp",
          "captured_at": "2026-02-25T13:02:11.000Z",
          "status": "captured"
        }
      ],
      "status": "published",
      "seo_title": "B2B SaaS Content Strategy for 2026",
      "meta_description": "Framework for planning and publishing ranking-focused content.",
      "author": "Alex Jordan",
      "created_at": "2026-01-28T12:15:01.000Z",
      "updated_at": "2026-02-01T09:20:11.000Z"
    },
    "relationships": {
      "categories": {
        "data": [{ "type": "categories", "id": "cat_01HZX..." }]
      },
      "tags": {
        "data": [{ "type": "tags", "id": "tag_01HZX..." }]
      },
      "authors": {
        "data": [{ "type": "authors", "id": "author_01HZX..." }]
      }
    },
    "links": {
      "self": "/v1/ORG_ID/articles/post_01HZX2..."
    }
  },
  "included": [
    {
      "id": "author_01HZX...",
      "type": "authors",
      "attributes": {
        "name": "Alex Jordan",
        "slug": "alex-jordan",
        "bio": "SEO lead focused on B2B SaaS growth.",
        "avatar_url": "https://cdn.example.com/avatar.jpg",
        "social_links": {
          "linkedin": "https://www.linkedin.com/in/alex-jordan"
        }
      }
    }
  ]
}
```

## Error responses

### Content not found

```json theme={null}
{
  "errors": [
    {
      "status": "404",
      "title": "Not Found",
      "detail": "Post with id or slug \"missing-post\" not found"
    }
  ]
}
```

## Response field descriptions

| Field                                    | Type           | Description                                                                   |
| ---------------------------------------- | -------------- | ----------------------------------------------------------------------------- |
| `data.id`                                | string         | Content ID                                                                    |
| `data.type`                              | string         | Resource type (`articles` for root feed, `items` for non-article collections) |
| `data.attributes.title`                  | string         | Content title                                                                 |
| `data.attributes.slug`                   | string         | Content slug                                                                  |
| `data.attributes.excerpt`                | string \| null | Summary text                                                                  |
| `data.attributes.content`                | string         | Content body                                                                  |
| `data.attributes.content_html`           | string \| null | Rendered HTML                                                                 |
| `data.attributes.comparison_screenshots` | array          | Competitor screenshot metadata for comparison sections                        |
| `data.attributes.status`                 | string         | Content status (`published`, `draft`, `scheduled`)                            |
| `data.attributes.author`                 | string \| null | Display author name                                                           |
| `data.attributes.created_at`             | string         | ISO datetime                                                                  |
| `data.attributes.updated_at`             | string         | ISO datetime                                                                  |
| `data.relationships`                     | object         | Linked taxonomy references                                                    |
| `included[]`                             | array          | Optional included resources                                                   |

## Notes

* Path supports either a content ID or slug.
* `/posts/:id-or-slug` remains backward-compatible.
* For comparison posts, `content_html` may include embedded `<img>` tags directly below competitor `H2` headings, and `comparison_screenshots` returns structured capture metadata.
