# Read editions and chapters

Read public weekly editions and chapters, or your private review history, through the same web, API, MCP and CLI services.

## Public history

Use editions.list or chapters.list with project_id. Public reads require a visible project and return published editions or visible chapters. Public DTOs omit raw edition log IDs, private chapter evidence and unsupported metadata. editions.get accepts project_id, iso_year and iso_week and returns the edition, its public updates and previous/next published weeks.

## Complete pagination

List operations accept limit from 1 to 100 and an opaque cursor. Continue with nextCursor until it is null. A cursor belongs to its project, visibility and feed filters; do not change those filters between pages. editions.feed pages public editions across projects, with optional project_id and range. tab following requires authentication and updates:read; project tokens remain restricted to that project.

## Private review

editions.mine and chapters.mine require projects:read and ownership of the requested project. They include draft editions or hidden chapter evidence for review. No new permission scope is added. Existing chapter rename/hide controls still use chapters.update.

## API and tools

The generic invoke_operation MCP tool and CLI call command use these same validated contracts. Dedicated MCP tools whose canonical input is a union use an input object wrapper so discovery preserves conditional requirements; for example op_voice_import nests its source and URL fields inside input. Generic invoke_operation and REST/CLI retain their canonical input shape. Generated operation references below include the exact input schemas and access rules.

```text
GET /api/v2/editions?project_id=7&limit=50
GET /api/v2/editions/detail?project_id=7&iso_year=2026&iso_week=2
GET /api/v2/chapters?project_id=7
indielogs call editions.list '{"project_id":7,"limit":50}'
```