OpenAPI Specification
openapi: 3.0.3
info:
title: EPFL Actu Categories News 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: News
paths:
/news/:
get:
operationId: listNews
summary: List all News objects.
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Search'
- $ref: '#/components/parameters/Lang'
responses:
'200':
description: A paginated list of news items.
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedNewsList'
tags:
- News
/news/{news__pk}/:
get:
operationId: readNews
summary: Return the details about the given News id.
parameters:
- name: news__pk
in: path
required: true
description: A unique integer value identifying this news item.
schema:
type: integer
- $ref: '#/components/parameters/Search'
- $ref: '#/components/parameters/Lang'
responses:
'200':
description: A single news item.
content:
application/json:
schema:
$ref: '#/components/schemas/News'
tags:
- News
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
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'
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
Public:
type: object
properties:
id:
type: integer
name:
type: string
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:
Lang:
name: lang
in: query
description: Preferred language for localized content.
schema:
type: string
enum:
- en
- fr
- de
Search:
name: search
in: query
description: A search term.
schema:
type: string
Offset:
name: offset
in: query
description: The initial index from which to return the results.
schema:
type: integer
Limit:
name: limit
in: query
description: Number of results to return per page.
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