> ## Documentation Index
> Fetch the complete documentation index at: https://docs.capedigital.co.ke/llms.txt
> Use this file to discover all available pages before exploring further.

# List CTS schedules

> Base model view set providing standardized CRUD operations and error handling.

This view set enforces consistent response formats, error handling patterns,
and logging across all API endpoints. Subclasses must override the class
variables below.



## OpenAPI

````yaml /openapi/commercial.yaml get /api/v1/cts
openapi: 3.0.3
info:
  title: Commercial Service API
  version: 1.0.0
  description: |2-

        **Commercial Service API** - Lead management and campaign workflow system.

        ## Versioning
        The API uses URL path versioning (e.g., `/api/v1/`, `/api/v2/`).
        Current version: **v1**
        
servers:
  - url: https://api.capedigital.co.ke/commercial
    description: Production
  - url: http://localhost:8000
    description: Local
security: []
paths:
  /api/v1/cts:
    get:
      tags:
        - CTS
      summary: List CTS schedules
      description: >-
        Base model view set providing standardized CRUD operations and error
        handling.


        This view set enforces consistent response formats, error handling
        patterns,

        and logging across all API endpoints. Subclasses must override the class

        variables below.
      operationId: cts_list
      parameters:
        - name: cursor
          required: false
          in: query
          description: The pagination cursor value.
          schema:
            type: string
        - name: page_size
          required: false
          in: query
          description: Number of results to return per page.
          schema:
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCTSListList'
              examples:
                CTSSchedule:
                  value:
                    next: http://api.example.org/accounts/?cursor=cD00ODY%3D"
                    previous: http://api.example.org/accounts/?cursor=cj0xJnA9NDg3
                    results:
                      - id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                        medium: TV
                        channel: TV47
                        date: '2024-02-05'
                        day_of_week: Monday
                        title: TV47 CTS 05-02-2024
                        uploaded_by:
                          id: uuid
                          name: John Doe
                        slot_count: 24
                        metadata: {}
                        created_at: '2024-02-05T06:00:00Z'
                        updated_at: '2024-02-05T06:00:00Z'
                  summary: CTS schedule
          description: ''
      security:
        - bearerAuth: []
components:
  schemas:
    PaginatedCTSListList:
      type: object
      required:
        - results
      properties:
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?cursor=cD00ODY%3D"
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?cursor=cj0xJnA9NDg3
        results:
          type: array
          items:
            $ref: '#/components/schemas/CTSList'
    CTSList:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        medium:
          enum:
            - TV
            - RADIO
            - DIGITAL
          type: string
          description: |-
            * `TV` - TV
            * `RADIO` - Radio
            * `DIGITAL` - Digital
          x-spec-enum-id: aa21c11e9618ab2e
        channel:
          type: string
          maxLength: 100
        date:
          type: string
          format: date
        day_of_week:
          type: string
          maxLength: 20
        title:
          type: string
          maxLength: 255
        uploaded_by:
          type: string
          readOnly: true
        slot_count:
          type: integer
          readOnly: true
        metadata: {}
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
      required:
        - channel
        - created_at
        - date
        - day_of_week
        - id
        - medium
        - slot_count
        - title
        - updated_at
        - uploaded_by
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Enter your JWT token in the format: Bearer <token>'

````