{
  "opencollection": "1.0.0",
  "info": {
    "name": "VdoCipher Server API",
    "version": "v3"
  },
  "request": {
    "auth": {
      "type": "apikey",
      "key": "Authorization",
      "value": "Apisecret {{apiSecret}}",
      "in": "header"
    }
  },
  "items": [
    {
      "info": {
        "name": "Videos",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List videos (paginated, filter by folder/query/tag).",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://dev.vdocipher.com/api/videos?page=1&limit=20",
            "params": [
              { "name": "page", "value": "1", "type": "query" },
              { "name": "limit", "value": "20", "type": "query" },
              { "name": "q", "value": "", "type": "query", "description": "Search video ID and title." },
              { "name": "folderId", "value": "", "type": "query", "description": "Restrict to a folder." },
              { "name": "tags", "value": "", "type": "query", "description": "Filter by tag." }
            ]
          },
          "docs": "Returns a paginated list of videos, newest first."
        },
        {
          "info": {
            "name": "Get video status / details.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://dev.vdocipher.com/api/videos/:videoId",
            "params": [
              { "name": "videoId", "value": "", "type": "path", "description": "The video ID." }
            ]
          },
          "docs": "Returns the current status and details of a single video."
        },
        {
          "info": {
            "name": "Edit video metadata.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://dev.vdocipher.com/api/videos/:videoId",
            "params": [
              { "name": "videoId", "value": "", "type": "path", "description": "The video ID." }
            ],
            "body": {
              "type": "json",
              "data": "{\n  \"title\": \"\",\n  \"description\": \"\",\n  \"tags\": []\n}"
            }
          },
          "docs": "Updates editable metadata such as title, description, or tags."
        },
        {
          "info": {
            "name": "Delete video(s).",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://dev.vdocipher.com/api/videos/:videoId",
            "params": [
              { "name": "videoId", "value": "", "type": "path", "description": "Comma-separated video IDs to delete." }
            ]
          },
          "docs": "Deletes one or more videos identified by comma-separated IDs."
        }
      ]
    },
    {
      "info": {
        "name": "Upload",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Obtain upload credentials.",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://dev.vdocipher.com/api/videos?title=videotitle&folderId=root",
            "params": [
              { "name": "title", "value": "videotitle", "type": "query", "description": "Title for the new video." },
              { "name": "folderId", "value": "root", "type": "query", "description": "Folder to place the video in." }
            ]
          },
          "docs": "Reserves a new videoId and returns AWS S3 upload credentials (clientPayload)."
        }
      ]
    },
    {
      "info": {
        "name": "Playback",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Generate OTP and playbackInfo.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://dev.vdocipher.com/api/videos/:videoId/otp",
            "params": [
              { "name": "videoId", "value": "", "type": "path", "description": "The video ID." }
            ],
            "body": {
              "type": "json",
              "data": "{\n  \"ttl\": 300\n}"
            }
          },
          "docs": "Generates a one-time otp / playbackInfo pair for a single DRM-protected playback session."
        }
      ]
    },
    {
      "info": {
        "name": "Watermark",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Generate OTP with dynamic watermark annotation.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://dev.vdocipher.com/api/videos/:videoId/otp",
            "params": [
              { "name": "videoId", "value": "", "type": "path", "description": "The video ID." }
            ],
            "body": {
              "type": "json",
              "data": "{\n  \"ttl\": 300,\n  \"annotate\": \"[{\\\"type\\\":\\\"rtmp\\\",\\\"text\\\":\\\"viewer@example.com\\\",\\\"alpha\\\":\\\"0.60\\\",\\\"color\\\":\\\"0xFFFFFF\\\",\\\"size\\\":\\\"15\\\",\\\"interval\\\":\\\"5000\\\"}]\"\n}"
            }
          },
          "docs": "Attaches a dynamic per-viewer watermark to a playback session via the annotate parameter of the OTP request."
        }
      ]
    },
    {
      "info": {
        "name": "Folders",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List sub-folders.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://dev.vdocipher.com/api/videos/folders?parent=root",
            "params": [
              { "name": "parent", "value": "root", "type": "query", "description": "Parent folder ID." }
            ]
          },
          "docs": "Lists sub-folders under a given parent folder."
        },
        {
          "info": {
            "name": "Create folder.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://dev.vdocipher.com/api/videos/folders",
            "body": {
              "type": "json",
              "data": "{\n  \"name\": \"Course Modules\",\n  \"parent\": \"root\"\n}"
            }
          },
          "docs": "Creates a new folder under a parent folder."
        },
        {
          "info": {
            "name": "Search folders by name.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://dev.vdocipher.com/api/videos/folders/search",
            "body": {
              "type": "json",
              "data": "{\n  \"name\": \"Course Modules\"\n}"
            }
          },
          "docs": "Searches for a folder by name and returns the id and path of matching folders."
        }
      ]
    },
    {
      "info": {
        "name": "Meta & Files",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get video meta.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://dev.vdocipher.com/api/meta/:videoId",
            "params": [
              { "name": "videoId", "value": "", "type": "path", "description": "The video ID." }
            ]
          },
          "docs": "Returns detailed metadata for a video, including poster image download URLs."
        },
        {
          "info": {
            "name": "List files of a video.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://dev.vdocipher.com/api/videos/:videoId/files",
            "params": [
              { "name": "videoId", "value": "", "type": "path", "description": "The video ID." }
            ]
          },
          "docs": "Lists all files of a video, including posters, captions, and rendition assets."
        },
        {
          "info": {
            "name": "List tags.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://dev.vdocipher.com/api/videos/tags"
          },
          "docs": "Returns all tags applied across the account's videos."
        }
      ]
    }
  ],
  "bundled": true
}
