---
title: "Read back your stored articles"
method: GET
path: "/publishers-content"
tags: ["Publish content"]
---

# Read back your stored articles

`GET /publishers-content`

## Request

- Base URL: `https://api.opedd.com`
- URL: `https://api.opedd.com/publishers-content`
- Auth: HTTP bearer

Your own articles, newest first, with the text exactly as licensed buyers receive it (`include_body=false` to leave it out). `id` returns one article; `search` searches your articles. Up to 20 per page with text, 50 without; follow `data.pagination.next_cursor` while `has_more` is true. 600 reads per hour per key.

## Query parameters

- `search` string
- `id` string, uuid
- `limit` integer
- `cursor` string
- `include_body` boolean

## Headers

- `X-Request-Id` string

## Response `200`

A page of the key's own articles (or one article with `?id=`).

- object: Every successful response. The endpoint's data is in `data`.
  - `success` true, required
  - `data` object, required: Payload of `GET /publishers-content`. A list page carries `articles` + `pagination`; `?id=` carries `article`.
    - `articles` PublisherOwnedArticle[]
      - `id` string, uuid
      - `title` string
      - `source_url` string, uri
      - `canonical_url` string, nullable
      - `description` string, nullable
      - `category` string, nullable
      - `audience` 'everyone' | 'only_free' | 'only_paid' | 'null', nullable
      - `human_price` number, nullable
      - `ai_price` number, nullable
      - `licensing_enabled` boolean
      - `revoked_at` string, date-time, nullable
      - `deletion_deadline` string, date-time, nullable
      - `published_at` string, date-time, nullable
      - `created_at` string, date-time
      - `updated_at` string, date-time
      - `source_id` string, uuid, nullable
      - `ingestion_source` string, nullable
      - `content_complete` boolean, nullable
      - `word_count` integer, nullable
      - `content_hash` string, nullable
      - `author` string, nullable
      - `language` string, nullable
      - `image_urls` string[], nullable
      - `thumbnail_url` string, nullable
      - `tags` string[], nullable
      - `metadata` object, nullable
      - `content_body` string, nullable: The stored article text — what a licensed buyer receives. Absent when `include_body=false`.
    - `article` PublisherOwnedArticle: One of the publisher's own rows as returned by `GET /publishers-content` (the owner read model). `content_body` is present unless `include_body=false`.
      - `id` string, uuid
      - `title` string
      - `source_url` string, uri
      - `canonical_url` string, nullable
      - `description` string, nullable
      - `category` string, nullable
      - `audience` 'everyone' | 'only_free' | 'only_paid' | 'null', nullable
      - `human_price` number, nullable
      - `ai_price` number, nullable
      - `licensing_enabled` boolean
      - `revoked_at` string, date-time, nullable
      - `deletion_deadline` string, date-time, nullable
      - `published_at` string, date-time, nullable
      - `created_at` string, date-time
      - `updated_at` string, date-time
      - `source_id` string, uuid, nullable
      - `ingestion_source` string, nullable
      - `content_complete` boolean, nullable
      - `word_count` integer, nullable
      - `content_hash` string, nullable
      - `author` string, nullable
      - `language` string, nullable
      - `image_urls` string[], nullable
      - `thumbnail_url` string, nullable
      - `tags` string[], nullable
      - `metadata` object, nullable
      - `content_body` string, nullable: The stored article text — what a licensed buyer receives. Absent when `include_body=false`.
    - `pagination` object
      - `limit` integer
      - `next_cursor` string, nullable
      - `has_more` boolean
    - `include_body` boolean
  - `request_id` string: Echoed from request `X-Request-Id` header or server-generated.

## Other responses

- `400`: The body failed validation. `error.details` names the fields.
- `401`: Missing or invalid credential
- `404`: `?id=` is unknown or belongs to another publisher.
- `429`: Too many requests. Wait for the number of seconds in `Retry-After`, then retry.

---

[API](https://skmtc.dev/opedd/apis/opedd-api.md) · [All operations](https://skmtc.dev/opedd/apis/opedd-api/llms.txt) · [OpenAPI document](https://skmtc.dev/opedd/apis/opedd-api/revisions/a33336810cf0?raw)
