EPFL Channels API

The Channels API from EPFL — 4 operation(s) for channels.

OpenAPI Specification

epfl-channels-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: EPFL Actu News Categories Channels API
  description: Public REST API serving EPFL news ("Actu") content, with resources for news, projects, channels, faculties, categories, themes and publics. Converted faithfully from the published Django REST Framework CoreAPI schema at https://actu.epfl.ch/api-docs/?format=corejson. Only paths, parameters and objects observed in the real schema and live responses are included. Default access is unauthenticated; optional Token, Basic and Session authentication exist.
  version: v1
  contact:
    name: EPFL Actu API
    url: https://actu.epfl.ch/api-docs/
servers:
- url: https://actu.epfl.ch/api/v1
security: []
tags:
- name: Channels
paths:
  /channels/:
    get:
      operationId: listChannels
      summary: List all Channel objects.
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Search'
      responses:
        '200':
          description: A paginated list of channels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedChannelList'
      tags:
      - Channels
  /channels/{id}/:
    get:
      operationId: readChannel
      summary: Return the details about the given Channel id.
      parameters:
      - $ref: '#/components/parameters/StringId'
      - $ref: '#/components/parameters/Search'
      responses:
        '200':
          description: A single channel.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel'
      tags:
      - Channels
  /channels/{id}/news/:
    get:
      operationId: listChannelNews
      summary: List news for a channel.
      parameters:
      - $ref: '#/components/parameters/StringId'
      responses:
        '200':
          description: News items for the channel.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedNewsList'
      tags:
      - Channels
  /channels/{id}/projects/:
    get:
      operationId: listChannelProjects
      summary: List projects for a channel.
      parameters:
      - $ref: '#/components/parameters/StringId'
      responses:
        '200':
          description: Projects for the channel.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedProjectList'
      tags:
      - Channels
components:
  schemas:
    Category:
      type: object
      properties:
        id:
          type: integer
        fr_label:
          type: string
        en_label:
          type: string
        de_label:
          type: string
    Faculty:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
    PaginatedChannelList:
      type: object
      properties:
        count:
          type: integer
        next:
          type: string
          format: uri
          nullable: true
        previous:
          type: string
          format: uri
          nullable: true
        results:
          type: array
          items:
            $ref: '#/components/schemas/Channel'
    Public:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
    Theme:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
    Project:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
        news_url:
          type: string
          format: uri
    PaginatedNewsList:
      type: object
      properties:
        count:
          type: integer
        next:
          type: string
          format: uri
          nullable: true
        previous:
          type: string
          format: uri
          nullable: true
        results:
          type: array
          items:
            $ref: '#/components/schemas/News'
    PaginatedProjectList:
      type: object
      properties:
        count:
          type: integer
        next:
          type: string
          format: uri
          nullable: true
        previous:
          type: string
          format: uri
          nullable: true
        results:
          type: array
          items:
            $ref: '#/components/schemas/Project'
    Channel:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        fr_description:
          type: string
        en_description:
          type: string
        de_description:
          type: string
        is_active:
          type: boolean
    News:
      type: object
      properties:
        id:
          type: integer
        lang:
          type: string
        title:
          type: string
        subtitle:
          type: string
        text:
          type: string
        order:
          type: integer
        publish_date:
          type: string
          format: date-time
        visual_url:
          type: string
          format: uri
          nullable: true
        thumbnail_url:
          type: string
          format: uri
          nullable: true
        visual_description:
          type: string
        short_vimeo_video_id:
          type: string
        short_vimeo_video_credits:
          type: string
        carousel_images:
          type: array
          items:
            type: object
        video:
          type: string
        channel:
          $ref: '#/components/schemas/Channel'
        category:
          $ref: '#/components/schemas/Category'
        news_url:
          type: string
          format: uri
        themes:
          type: array
          items:
            $ref: '#/components/schemas/Theme'
        publics:
          type: array
          items:
            $ref: '#/components/schemas/Public'
        faculties:
          type: array
          items:
            $ref: '#/components/schemas/Faculty'
        projects:
          type: array
          items:
            $ref: '#/components/schemas/Project'
        authors:
          type: array
          items:
            type: object
        links:
          type: array
          items:
            type: object
        funding:
          type: string
        references:
          type: string
        is_under_cc_license:
          type: boolean
  parameters:
    Search:
      name: search
      in: query
      description: A search term.
      schema:
        type: string
    StringId:
      name: id
      in: path
      required: true
      description: A unique value identifying this object.
      schema:
        type: string
    Limit:
      name: limit
      in: query
      description: Number of results to return per page.
      schema:
        type: integer
    Offset:
      name: offset
      in: query
      description: The initial index from which to return the results.
      schema:
        type: integer
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'DRF Token authentication, e.g. "Authorization: Token <key>".'
    basicAuth:
      type: http
      scheme: basic