---
title: Publication Data Source
slug: experience/publication-data-source
docTags: 
createdAt: 2026-05-12T12:53:50.318Z
---

## Overview

The `publication` data source fetches publications from the Catalog API. It is used wherever a list of publications needs to be rendered — publication pickers, multi-publication homepages, or dropdowns that let users switch between publications.

## When to use this

Use `publication` when you need to display or select from a list of publications. It is not for fetching content within a publication — use `content` for that.

## Basic Example

```json
{
  "type": "publication",
  "contextKey": "publications",
  "batchSize": 50
}
```

## Configuration

### Type-specific properties

| Property | Type            | Default | Description                             |
| -------- | --------------- | ------- | --------------------------------------- |
| filter   | object          | —       | Narrows which publications are returned |
| sort     | object or array | —       | Controls the ordering of results        |

For common properties (`contextKey`, `limit`, `batchSize`, etc.) see [Data Sources Overview](docId\:fuMBUaBWeON_OTO5wfevf)

### Filter properties

| Filter key | Type                  | Description                                                                                                            |
| ---------- | --------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| id         | StringFilter          | Fetch a specific publication by ID                                                                                     |
| type       | `{ value, negated? }` | Restrict by publication type                                                                                           |
| language   | StringFilter          | Restrict by publication language                                                                                       |
| properties | MapFilter             | Filter by custom publication properties                                                                                |
| contents   | ContentListFilter     | Filter publications by their content — `{ negated?, content?: { operation, value: ContentFilter }, size?: IntFilter }` |
| issues     | IssueListFilter       | **Deprecated** — use `contents` instead                                                                                |

Supports `AND`, `OR`, and `condition` — see [Data Sources Overview](docId\:fuMBUaBWeON_OTO5wfevf)

### Sort properties

`sort` accepts a single comparator object or an array of comparators.

| Sort key                      | Type                            | Description                                                |
| ----------------------------- | ------------------------------- | ---------------------------------------------------------- |
| currentContentPublicationDate | `{ direction }`                 | Sort by the most recent content publication date           |
| index                         | `{ direction }`                 | Sort by index field                                        |
| property                      | `{ key, valueType, direction }` | Sort by a custom property (`valueType`: `STRING` or `INT`) |

`direction` accepts `ASC` or `DESC`.

## Advanced Features

### Loading a single publication into context

```json
{
  "type": "publication",
  "contextKey": "currentPublication",
  "limit": 1,
  "filter": {
    "id": { "value": ":publicationId" }
  }
}
```

## Testing Notes / Edge Cases

- **Large publication counts**: Default `batchSize` is 24. If you have more publications, increase `batchSize` or the list will be truncated without a visible error.
- **Empty filter returns all**: Omitting `filter` returns every publication the API exposes.
- **SSR caching**: Only set `preventSSRCache: true` if publication availability is user-specific.

## Related Topics

- [Content Data Source](docId\:dfdY32ZAnYtMHKUhzXOrb)
- [Data Sources Overview](docId\:fuMBUaBWeON_OTO5wfevf)

