---
title: "Read updates for one base you follow."
method: GET
path: "/api/following/{base_id}/updates"
---

# Read updates for one base you follow.

`GET /api/following/{base_id}/updates`

## Request

- Base URL: `https://okfindex.com`
- URL: `https://okfindex.com/api/following/{base_id}/updates`
- Auth: none declared

Requires a personal account or personal API key. Following grants no private access. Up to 50 hosted public bases per account. Updates show the latest published version of each document, not a version history. Repeated publication of the same version creates no update. Each read checks current publication. Unfollowing removes all notices for that base. Responses use private, no-store. No email or push messages.
Returns: { items[{id,published_at,base,document}], next }

## Path parameters

- `base_id` string, required

## Query parameters

- `after` string

## Response `200`

{ items[{id,published_at,base,document}], next }

- object
  - `items` BaseUpdate[], required: At most 20 latest published document versions, newer than the follow date. Withdrawn bases and removed documents are excluded.
    - `id` string, required: Published version ID. Repeated reads return the same ID until the document version changes.
    - `published_at` string, required: Publication date of this document version, ISO 8601.
    - `base` UpdateOrigin, required
      - `id` string, required: The hosted base ID: 64 lowercase hexadecimal characters.
      - `name` string, required: Current public base name.
      - `author` string, required: Author declared by the publisher.
      - `public_url` string, required: Public base page.
    - `document` Document, required
      - `id` string, required: The 64-character ID returned by the API.
      - `base_id` string, required: The 64-character ID returned by the API.
      - `filename` string, required: Original filename.
      - `title` string, required: Filename without extension.
      - `format` string, required: md, txt, pdf, docx or doc after conversion.
      - `managed` string, nullable, required: dataset for generated metadata; edit through save_base_dataset. Null for ordinary files.
      - `sha256` string, required: SHA-256 of stored UTF-8 text. Converted source hash is source_sha256.
      - `bytes` integer, required: Stored UTF-8 text size in bytes.
      - `status` string, required: ready or pending.
      - `created_at` string, required: Upload date, ISO 8601.
      - `api` string, required: JSON with Markdown.
      - `source_url` string, nullable: Present on document reads: source URL preserved with this version, or null for manual uploads. Also included in the exported OKF concept.
      - `source_sha256` string: SHA-256 of the original converted file.
      - `pages` integer: PDF physical page count. Zero for continuous DOC and DOCX text.
      - `review` object: PDF: completed automated review. DOC/DOCX: not_applicable, null model and zero pages reviewed.
      - `markdown_url` string, required: Markdown download.
      - `original_url` string, required: Original file download.
      - `okf_url` string, required: OKF concept URL.
  - `next` string, nullable, required: Next page URL, or null.

## Other responses

- `400`: Invalid cursor.
- `401`: Sign in or use a personal API key.
- `403`: Organization keys cannot use a personal library.
- `404`: Base or following entry is inaccessible.
- `405`: Method not allowed.
- `409`: The account already follows 50 bases.
- `503`: The library is unavailable.

---

[API](https://skmtc.dev/okfindex/apis/okf-index.md) · [All operations](https://skmtc.dev/okfindex/apis/okf-index/llms.txt) · [OpenAPI document](https://skmtc.dev/okfindex/apis/okf-index/revisions/4b13ca3c739f?raw)
