PHPeerTube - A PHP‑based federated video platform, inspired by PeerTube.

Copyright (C) 2025 Lucentinian Works Co Ltd

Moderator/Administrator Category API Examples

This document provides curl examples for managing video categories using the moderator/administrator API.

Authentication

All moderator/administrator endpoints require authentication. Replace YOUR_AUTH_TOKEN with a valid JWT.

List all categories

curl -X GET \
  http://localhost/moderator/categories \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN'

Create a new category

curl -X POST \
  http://localhost/moderator/categories \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
  -d '{
        "name": "New Category Name",
        "slug": "new-category-slug",
        "isApproved": true
      }'

Get a single category by ID

curl -X GET \
  http://localhost/moderator/categories/1 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN'

Update a category

curl -X PUT \
  http://localhost/moderator/categories/1 \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
  -d '{
        "name": "Updated Category Name",
        "slug": "updated-category-slug",
        "isApproved": false
      }'

Approve a category

curl -X PATCH \
  http://localhost/moderator/categories/1/approve \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN'

Delete a category

curl -X DELETE \
  http://localhost/moderator/categories/1 \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN'

Update video-category status (Approve/Reject)

This endpoint allows moderators/administrators to approve or reject a category assigned to a specific video.

Approve a video-category link

curl -X PATCH \
  http://localhost/moderator/videos/123/categories/456/status \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
  -d '{"status": "approved"}'

Reject a video-category link

curl -X PATCH \
  http://localhost/moderator/videos/123/categories/456/status \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
  -d '{"status": "rejected"}'