v1

latestOpenAPI 3.1.0MIT2026-07-173438118.7 KB
Posts

Update a post

Errors

Returns error if post not found, access denied, slug/number conflict, or database update error

put/api/posts/{post_id}

Path parameters

post_idstring uuid required

UUID of the post to update

Request body

audioFileIdstring uuid nullable

Updated audio file reference for the post

contentstring nullable

Updated post content text (optional)

isPublishedboolean nullable

Change the publication visibility of this post

postNumberinteger nullable

Updated sequential number within the series (optional)

slugstring nullable

New URL-friendly slug for the post (optional)

thumbnailUrlstring nullable

Replace the post's cover image with a new URL

titlestring nullable

New title for the post (optional)

videoFileIdstring uuid nullable

Updated video file reference for the post

Example request

{
  "audioFileId": "c3d4e5f6-7890-1234-cdef-123456789012",
  "content": "Updated content for the first episode with more details...",
  "isPublished": true,
  "postNumber": 2,
  "slug": "episode-1-updated",
  "thumbnailUrl": "https://example.com/new-thumbnail.jpg",
  "title": "Episode 1: Getting Started (Updated)",
  "videoFileId": "d4e5f6a7-8901-2345-def0-234567890123"
}

Response

Post updated successfully

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"
}