Channels DVR server API

Channels DVR server API as documented publicly: 6 operations. Contract generated from the documentation by API Evangelist (2026-10-28); not the provider's own document.

Operations 6

GET /api/v1/episodes GET /api/v1/episodes #
GET /api/v1/jobs GET /api/v1/jobs #
GET /api/v1/jobs/{id} Retrieve a job #
GET /api/v1/movies GET /api/v1/movies #
GET /api/v1/shows GET /api/v1/shows #
GET /api/v1/videos GET /api/v1/videos #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/channels-dvr:server-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

channels-dvr-server-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Channels DVR server API
  version: '2026-10-28'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-28: 6 operation(s) read from 5 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; Channels DVR has published no machine-readable contract that
    the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 33
    documentation: 13
    pages-with-code: 6
    pages-read: 6
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-28'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://getchannels.com/docs/server-api/resources/episodes
  - https://getchannels.com/docs/server-api/resources/jobs
  - https://getchannels.com/docs/server-api/resources/movies
  - https://getchannels.com/docs/server-api/resources/shows
  - https://getchannels.com/docs/server-api/resources/videos
  x-docs-section: server-api
paths:
  /api/v1/episodes:
    get:
      operationId: get_api_v1_episodes
      tags:
      - Api
      summary: GET /api/v1/episodes
      x-source: https://getchannels.com/docs/server-api/resources/episodes
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1EpisodesResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl http://192.168.1.3:8089/api/v1/episodes\n Response\n [{ \n \"id\" : \"31260\" , \n \"show_id\" : \"183983\" , \n \"program_id\"\
          \ : \"EP000176170013\" , \n \"path\" : \"/shares/DVR/TV/Law & Order/Law & Order S01E18 1991-03-12 The Secret Sharers 2022-11-25-2359.mpg\"\
          \ , \n \"channel\" : \"512\" , \n \"season_number\" : 1 , \n \"episode_number\" : 18 , \n \"title\" : \"Law & Order\" , \n \"episode_title\"\
          \ : \"The Secret Sharers\" , \n \"summ"
  /api/v1/jobs:
    get:
      operationId: get_api_v1_jobs
      tags:
      - Api
      summary: GET /api/v1/jobs
      x-source: https://getchannels.com/docs/server-api/resources/jobs
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl http://192.168.1.3:8089/api/v1/jobs\n Response\n [{ \n \"id\" : \"1677195000-231\" , \n \"name\" : \"NBC Nightly News With\
          \ Lester Holt\" , \n \"start_time\" : 1677195000 , \n \"end_time\" : 1677196800 , \n \"duration\" : 1800 , \n \"channels\" : [ \n \"\
          512\" , \n \"12.1\" , \n \"6000\" \n ], \n \"skipped\" : false , \n \"failed\" : false , \n \"updated_at\" : 1677092762571 , \n \"item\"\
          \ : { \n \"show_id\" : \"12308123\" , \n \"program_id\" : \"EP"
  /api/v1/jobs/{id}:
    get:
      operationId: get_api_v1_jobs_id
      tags:
      - Api
      summary: Retrieve a job
      x-source: https://getchannels.com/docs/server-api/resources/jobs
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1JobsIdResponse'
      x-evidence:
        kind: documentation
  /api/v1/movies:
    get:
      operationId: get_api_v1_movies
      tags:
      - Api
      summary: GET /api/v1/movies
      x-source: https://getchannels.com/docs/server-api/resources/movies
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1MoviesResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl http://192.168.1.3:8089/api/v1/movies\n Response\n [{ \n \"id\" : \"5157\" , \n \"program_id\" : \"MV000271070000\" , \n\
          \ \"path\" : \"/media/DVR/Movies/Indiana Jones and the Last Crusade (1989) 2021-09-02-0019.mpg\" , \n \"channel\" : \"6004\" , \n \"\
          title\" : \"Indiana Jones and the Last Crusade (1989)\" , \n \"summary\" : \"Jones (Harrison Ford) and his father (Sean Connery) race\
          \ Nazis to the Holy Grail.\" , \n \"full_summa"
  /api/v1/shows:
    get:
      operationId: get_api_v1_shows
      tags:
      - Api
      summary: GET /api/v1/shows
      x-source: https://getchannels.com/docs/server-api/resources/shows
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1ShowsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl http://192.168.1.3:8089/api/v1/shows\n Response\n [{ \n \"id\" : \"183983\" , \n \"name\" : \"Law & Order\" , \n \"summary\"\
          \ : \"Filmed on location in New York, the drama showcases the sometimes-complex process of determining guilt or innocence, while lives\
          \ hang in the balance. Often inspired by the latest headlines, the plots highlight legal, ethical or personal dilemmas to which people\
          \ can relate.\" , \n \"im"
  /api/v1/videos:
    get:
      operationId: get_api_v1_videos
      tags:
      - Api
      summary: GET /api/v1/videos
      x-source: https://getchannels.com/docs/server-api/resources/videos
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1VideosResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl http://192.168.1.3:8089/api/v1/videos\n Response\n [{ \n \"id\" : \"32074\" , \n \"video_group_id\" : \"videos-912b6855d3497def488a22bb41000081c6128dad7bbf71b67b602454960cc92c\"\
          \ , \n \"path\" : \"/media/videos/Stand Up Specials/Patton Oswalt - My Inner Child Doesn't Feel Like Chopping Wood Today [IuzCilEFBgo].webm\"\
          \ , \n \"title\" : \"Stand Up Specials\" , \n \"video_title\" : \"Patton Oswalt - My Inner Child Doesn't "
components:
  schemas:
    GetApiV1EpisodesResponse:
      type: object
      properties:
        id:
          type: string
        show_id:
          type: string
        program_id:
          type: string
        path:
          type: string
        channel:
          type: string
        season_number:
          type: integer
        episode_number:
          type: integer
        title:
          type: string
        episode_title:
          type: string
        summary:
          type: string
        full_summary:
          type: string
        content_rating:
          type: string
        image_url:
          type: string
        thumbnail_url:
          type: string
        duration:
          type: number
        playback_time:
          type: integer
        original_air_date:
          type: string
          format: date
        genres:
          type: array
          items:
            type: string
        tags:
          type: array
          items:
            type: string
        categories:
          type: array
          items:
            type: string
        cast:
          type: array
          items:
            type: string
        commercials:
          type: array
          items:
            type: number
        watched:
          type: boolean
        favorited:
          type: boolean
        delayed:
          type: boolean
        cancelled:
          type: boolean
        corrupted:
          type: boolean
        completed:
          type: boolean
        processed:
          type: boolean
        locked:
          type: boolean
        verified:
          type: boolean
        created_at:
          type: integer
        updated_at:
          type: integer
    GetApiV1JobsIdResponse:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the job.
        name:
          type: integer
          description: The name of the program or Series Pass scheduled to record.
        start_time:
          type: string
          description: The timestamp of when the scheduled recording will begin.
        end_time:
          type: string
          description: The timestamp of when the scheduled recording will end.
        duration:
          type: integer
          description: The duration the scheduled recording will last.
        channels:
          type: array
          description: An array of strings denoting the possible channels the job will record from.
        skipped:
          type: boolean
          description: Whether or not the job will be skipped.
        failed:
          type: boolean
          description: Whether or not the job failed while recording.
        updated_at:
          type: string
          description: The timestamp of when the job was last updated.
        item:
          type: object
          description: The airing item that is set to record with the job.
    GetApiV1MoviesResponse:
      type: object
      properties:
        id:
          type: string
        program_id:
          type: string
        path:
          type: string
        channel:
          type: string
        title:
          type: string
        summary:
          type: string
        full_summary:
          type: string
        content_rating:
          type: string
        image_url:
          type: string
        thumbnail_url:
          type: string
        duration:
          type: number
        playback_time:
          type: integer
        release_year:
          type: integer
        release_date:
          type: string
          format: date
        genres:
          type: array
          items:
            type: string
        tags:
          type: array
          items:
            type: string
        categories:
          type: array
          items:
            type: string
        cast:
          type: array
          items:
            type: string
        directors:
          type: array
          items:
            type: string
        watched:
          type: boolean
        favorited:
          type: boolean
        delayed:
          type: boolean
        cancelled:
          type: boolean
        corrupted:
          type: boolean
        completed:
          type: boolean
        processed:
          type: boolean
        verified:
          type: boolean
        created_at:
          type: integer
        updated_at:
          type: integer
    GetApiV1ShowsResponse:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        summary:
          type: string
        image_url:
          type: string
        release_year:
          type: integer
        release_date:
          type: string
          format: date
        genres:
          type: array
          items:
            type: string
        categories:
          type: array
          items:
            type: string
        labels:
          type: array
          items:
            type: string
        cast:
          type: array
          items:
            type: string
        episode_count:
          type: integer
        number_unwatched:
          type: integer
        favorited:
          type: boolean
        last_watched_at:
          type: integer
        last_recorded_at:
          type: integer
        created_at:
          type: integer
        updated_at:
          type: integer
    GetApiV1VideosResponse:
      type: object
      properties:
        id:
          type: string
        video_group_id:
          type: string
        path:
          type: string
        title:
          type: string
        video_title:
          type: string
        summary:
          type: string
        image_url:
          type: string
        thumbnail_url:
          type: string
        duration:
          type: number
        playback_time:
          type: integer
        original_air_date:
          type: string
          format: date
        genres:
          type: array
          items:
            type: string
        tags:
          type: array
          items:
            type: string
        categories:
          type: array
          items:
            type: string
        watched:
          type: boolean
        favorited:
          type: boolean
        delayed:
          type: boolean
        cancelled:
          type: boolean
        corrupted:
          type: boolean
        completed:
          type: boolean
        processed:
          type: boolean
        locked:
          type: boolean
        verified:
          type: boolean
        created_at:
          type: integer
        updated_at:
          type: integer
tags:
- name: Api