Read CMS pages — documentation, blog posts, and landing pages served on inference.sh.
Published pages are indexed in the pages search collection. Discover them via GET /suggest or GET /search?collection=pages. See Search API.
List and detail responses use cursor pagination or bare DTOs when you send X-API-Version: 2 (recommended). See REST overview — API version.
Page object
| Field | Type | Description |
|---|---|---|
id | string | Page ID |
short_id | string | Short ID (first 8 characters) |
title | string | Page title |
slug | string | URL slug (unique) |
content | string | Markdown body |
excerpt | string | Short summary |
status | integer | 0 unknown, 1 draft, 2 published, 3 archived |
type | string | doc, blog, or page |
metadata | object | SEO and navigation metadata (title, description, image, tags, order, icon, hide_from_nav) |
is_featured | boolean | Featured flag |
visibility | string | Visibility scope (public, team, private) |
created_at | string | RFC 3339 timestamp |
updated_at | string | RFC 3339 timestamp |
Get page by slug
GET /pages/slug/{slug}
Returns a single page by slug path. No authentication required.
The slug path can include slashes (for example api/rest/overview).
1curl https://api.inference.sh/pages/slug/api/rest/overview \2 -H "X-API-Version: 2"Errors
| Status | Code | When |
|---|---|---|
400 | invalid_request | Slug path is empty |
404 | not_found | No page with that slug, or the page was soft-deleted |
Soft-deleted pages are not returned. After a page is deleted, slug lookups respond with 404 even if the slug still appears in old links or caches. Search removes deleted pages on delete; allow a short propagation delay before assuming a slug is gone everywhere.
Get page by ID
GET /pages/{id}
Returns a page by full ID or short ID. No authentication required for public pages.
1curl https://api.inference.sh/pages/page_abc123 \2 -H "X-API-Version: 2"Soft-deleted pages are excluded and return 404.
List pages
GET /pages or POST /pages/list
Returns published pages only (status = published). Draft and archived pages are omitted from list results.
Query parameters
| Field | Type | Description |
|---|---|---|
cursor | string | Pagination cursor |
limit | integer | Max results (default 50, max 100) |
Responses may include RFC 8288 Link headers (rel="next", rel="prev") with the same cursors.
Comments
GET /pages/{id}/comments or POST /pages/{id}/comments/list
List comments on a page. Uses the same cursor pagination pattern as other list endpoints.
Menus
Navigation menus (for example docs sidebars) are served separately:
| Endpoint | Description |
|---|---|
GET /menus or POST /menus/list | List menus |
GET /menus/{id} | Get menu by ID |
GET /menus/slug/{slug} | Get menu by slug |
Menu items can reference pages by page_id or external url.
Content management
Creating, updating, and deleting pages requires platform admin credentials (POST /admin/pages, POST /admin/pages/{id}, DELETE /admin/pages/{id}). The inference.sh docs site syncs from Markdown using belt pages sync — that workflow is internal to platform operators, not a general developer API.
When a page is deleted, it is soft-deleted: removed from list and slug lookups, and dropped from the search index.