v1

latestOpenAPI 3.1.0MIT2026-07-173438118.7 KB
Posts

List posts with cursor-based pagination and optional series filtering

Errors

Returns error if posts database query fails, series filtering fails, or connection issues occur

get/api/posts

Query parameters

offsetstring uuid nullable

UUID offset for cursor-based posts pagination

limitinteger nullable

Maximum number of posts to return (default: 50, max: 100)

series_idstring uuid nullable

Filter posts by series ID

Response

Posts list retrieved

audioFileIdstring uuid nullable

ID of associated audio file

contentstring required

Post body text and content

createdAtstring date-time nullable

Post creation timestamp

idstring uuid required

Post's unique identifier

isPublishedboolean required

Whether the post is published and visible to users

postNumberinteger required

Position number for ordering this post within its parent series

seriesIdstring uuid required

Parent series identifier

slugstring required

SEO-friendly URL identifier for the post

thumbnailUrlstring nullable

URL to the post's thumbnail image

titlestring required

Post display title

updatedAtstring date-time nullable

Post last update timestamp

videoFileIdstring uuid nullable

ID of associated video file

Example response

[
  {
    "audioFileId": "c3d4e5f6-7890-1234-cdef-123456789012",
    "content": "Welcome to our first episode where we discuss the fundamentals...",
    "createdAt": "2023-01-01T00:00:00Z",
    "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "isPublished": true,
    "postNumber": 1,
    "seriesId": "b2c3d4e5-6f78-9012-bcde-f12345678901",
    "slug": "episode-1-getting-started",
    "thumbnailUrl": "https://example.com/thumbnail.jpg",
    "title": "Episode 1: Getting Started",
    "updatedAt": "2023-01-01T12:00:00Z",
    "videoFileId": "d4e5f6a7-8901-2345-def0-234567890123"
  }
]