> ## 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.

# Categories

> List categories and fetch single category resources.

## Endpoints

```bash theme={null}
GET /categories
GET /categories/:id-or-slug
```

Taxonomy scope:

* Categories are available only at root (`/categories`) and apply to `articles` content.
* Collection-specific taxonomy endpoints are not supported.

## List query parameters

| Parameter  | Type    | Default | Description                                        |
| ---------- | ------- | ------- | -------------------------------------------------- |
| `page`     | integer | `1`     | Page number                                        |
| `per_page` | integer | `10`    | Items per page                                     |
| `search`   | string  | -       | Search by name or slug                             |
| `orderby`  | string  | `name`  | Sort by `name`, `slug`, `id`, `date`, `created_at` |
| `order`    | string  | `desc`  | `asc` or `desc`                                    |
| `_fields`  | string  | -       | Comma-separated attribute field filter             |

## Example list request

```bash theme={null}
curl "https://api.skayle.ai/v1/ORG_ID/categories?page=1&per_page=20&orderby=name&order=asc"
```

## Example list response

```json theme={null}
{
  "data": [
    {
      "id": "cat_01HZX...",
      "type": "categories",
      "attributes": {
        "name": "Content Strategy",
        "slug": "content-strategy",
        "post_count": 18,
        "created_at": "2025-12-10T08:01:00.000Z",
        "updated_at": "2026-01-20T09:15:00.000Z"
      },
      "relationships": {
        "articles": {
          "data": null,
          "links": {
            "related": "/v1/ORG_ID/articles?categories=cat_01HZX..."
          }
        }
      },
      "links": {
        "self": "/v1/ORG_ID/categories/cat_01HZX..."
      }
    }
  ],
  "meta": {
    "total": 12,
    "per_page": 20,
    "page": 1
  }
}
```

## Example single request

```bash theme={null}
curl "https://api.skayle.ai/v1/ORG_ID/categories/content-strategy"
```

## Single not found

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

## Response field descriptions

| Field                           | Type   | Description                               |
| ------------------------------- | ------ | ----------------------------------------- |
| `data[].id`                     | string | Category ID                               |
| `data[].type`                   | string | Resource type (`categories`)              |
| `data[].attributes.name`        | string | Category display name                     |
| `data[].attributes.slug`        | string | Category slug                             |
| `data[].attributes.post_count`  | number | Published article count for this category |
| `data[].attributes.created_at`  | string | ISO datetime                              |
| `data[].attributes.updated_at`  | string | ISO datetime                              |
| `data[].relationships.articles` | object | Related filtered items feed               |
| `meta.total`                    | number | Total categories                          |
| `meta.per_page`                 | number | Page size                                 |
| `meta.page`                     | number | Current page                              |

## Filtering and pagination

* `search` filters by category name/slug.
* `page` and `per_page` control pagination.
* `orderby` and `order` control sorting.

## Error responses

* `404` when single category ID/slug is not found.
