openapi: 3.0.3 info: title: EPFL Memento Events API description: >- Public REST API serving EPFL events ("Memento"), with resources for events, mementos, categories, domains, faculties, registrations, spoken languages and vulgarizations. Converted faithfully from the published Django REST Framework CoreAPI schema at https://memento.epfl.ch/api/docs/?format=corejson and verified against live responses. The Events endpoint supports extensive filtering by date, time, speaker, location and language, plus pagination, search and ordering. Default access is unauthenticated. version: v1 contact: name: EPFL Memento API url: https://memento.epfl.ch/api/docs/ servers: - url: https://memento.epfl.ch/api/v1 paths: /categories/: get: operationId: listCategories summary: List all Category objects. parameters: - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Ordering' responses: '200': description: A paginated list of categories. content: application/json: schema: $ref: '#/components/schemas/PaginatedCategoryList' /categories/{id}/: get: operationId: readCategory summary: Return the details about the given Category id. parameters: - $ref: '#/components/parameters/IntId' - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Ordering' responses: '200': description: A single category. content: application/json: schema: $ref: '#/components/schemas/Category' /domains/: get: operationId: listDomains summary: List all Domain objects. parameters: - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Ordering' responses: '200': description: A paginated list of domains. content: application/json: schema: $ref: '#/components/schemas/PaginatedDomainList' /domains/{id}/: get: operationId: readDomain summary: Return the details about the given Domain id. parameters: - $ref: '#/components/parameters/IntId' - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Ordering' responses: '200': description: A single domain. content: application/json: schema: $ref: '#/components/schemas/Domain' /events/: get: operationId: listEvents summary: List all Event objects with filtering. parameters: - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' - name: title in: query description: Filters the events containing the given text in the title. schema: type: string - name: description in: query description: Filters the events containing the given text in the description. schema: type: string - name: start_date in: query description: Filters the events which start at the given start_date. schema: type: string format: date - name: end_date in: query description: Filters the events which finish at the given end_date. schema: type: string format: date - name: start_time in: query description: Filters the events which start at the given start_time. schema: type: string - name: end_time in: query description: Filters the events which finish at the given end_time. schema: type: string - name: start_year in: query description: Filters the events which start at the given start_year. schema: type: number - name: place_and_room in: query description: Filters the events containing the given text in the place and room. schema: type: string - name: spoken_languages in: query description: 'Spoken Language ID. Return only the events with the given spoken language.' schema: type: string - name: memento in: query description: 'Memento ID. Return only the events in the given memento.' schema: type: number - name: category in: query description: 'Category ID. Return only the events linked to the given category.' schema: type: string - name: theme in: query description: 'Theme name. Return only the events linked to the given theme.' schema: type: string - name: keywords in: query description: 'Keywords name. Return only the events linked to the given keywords.' schema: type: string - name: vulgarization in: query description: 'Vulgarization ID. Return only the events with the given vulgarization.' schema: type: string - name: registration in: query description: 'Registration ID. Return only the events linked to the given registration.' schema: type: string - name: domains in: query description: 'Domain ID. Return only the events linked to the given domain.' schema: type: string - name: academic_calendar_category in: query description: 'Academic Calendar Category ID. Return only matching events.' schema: type: number - name: speaker in: query description: Filters the events containing the given text in the speaker. schema: type: string - name: organizer in: query description: Filters the events containing the given text in the organizer. schema: type: string - name: contact in: query description: Filters the events containing the given text in the contact. schema: type: string - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Ordering' responses: '200': description: A paginated list of events. content: application/json: schema: $ref: '#/components/schemas/PaginatedEventList' /events/{event__pk}/: get: operationId: readEvent summary: Return the details about the given Event id. parameters: - name: event__pk in: path required: true description: A unique integer value identifying this event. schema: type: integer - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Ordering' responses: '200': description: A single event. content: application/json: schema: $ref: '#/components/schemas/Event' /faculties/: get: operationId: listFaculties summary: List all Faculty objects. parameters: - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Ordering' responses: '200': description: A paginated list of faculties. content: application/json: schema: $ref: '#/components/schemas/PaginatedFacultyList' /faculties/{id}/: get: operationId: readFaculty summary: Return the details about the given Faculty id. parameters: - $ref: '#/components/parameters/IntId' - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Ordering' responses: '200': description: A single faculty. content: application/json: schema: $ref: '#/components/schemas/Faculty' /mementos/: get: operationId: listMementos summary: List all Memento objects. parameters: - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Ordering' responses: '200': description: A paginated list of mementos. content: application/json: schema: $ref: '#/components/schemas/PaginatedMementoList' /mementos/{id}/: get: operationId: readMemento summary: Return the details about the given Memento id. parameters: - $ref: '#/components/parameters/IntId' - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Ordering' responses: '200': description: A single memento. content: application/json: schema: $ref: '#/components/schemas/Memento' /mementos/{id}/events/: get: operationId: listMementoEvents summary: List events for a memento. parameters: - $ref: '#/components/parameters/IntId' responses: '200': description: Events for the memento. content: application/json: schema: $ref: '#/components/schemas/PaginatedEventList' /registrations/: get: operationId: listRegistrations summary: List all Registration objects. responses: '200': description: A list of registrations. content: application/json: schema: $ref: '#/components/schemas/PaginatedRegistrationList' /registrations/{id}/: get: operationId: readRegistration summary: Return the details about the given Registration id. parameters: - $ref: '#/components/parameters/IntId' responses: '200': description: A single registration. content: application/json: schema: $ref: '#/components/schemas/Registration' /spoken_languages/: get: operationId: listSpokenLanguages summary: List all Spoken Language objects. parameters: - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Ordering' responses: '200': description: A paginated list of spoken languages. content: application/json: schema: $ref: '#/components/schemas/PaginatedSpokenLanguageList' /spoken_languages/{id}/: get: operationId: readSpokenLanguage summary: Return the details about the given Spoken Language id. parameters: - $ref: '#/components/parameters/IntId' - $ref: '#/components/parameters/Search' - $ref: '#/components/parameters/Ordering' responses: '200': description: A single spoken language. content: application/json: schema: $ref: '#/components/schemas/SpokenLanguage' /vulgarizations/: get: operationId: listVulgarizations summary: List all Vulgarization objects. responses: '200': description: A list of vulgarizations. content: application/json: schema: $ref: '#/components/schemas/PaginatedVulgarizationList' /vulgarizations/{id}/: get: operationId: readVulgarization summary: Return the details about the given Vulgarization id. parameters: - $ref: '#/components/parameters/IntId' responses: '200': description: A single vulgarization. content: application/json: schema: $ref: '#/components/schemas/Vulgarization' components: parameters: 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 Search: name: search in: query description: A search term. schema: type: string Ordering: name: ordering in: query description: Which field to use when ordering the results. schema: type: string IntId: name: id in: path required: true description: A unique integer value identifying this object. schema: type: integer schemas: Category: type: object properties: id: type: integer name: type: string Domain: type: object properties: id: type: integer name: type: string Faculty: type: object properties: id: type: integer name: type: string Memento: type: object properties: id: type: integer name: type: string SpokenLanguage: type: object properties: id: type: integer name: type: string Vulgarization: type: object properties: id: type: integer name: type: string Registration: type: object properties: id: type: integer name: type: string Event: type: object properties: id: type: integer title: type: string slug: type: string event_url: type: string format: uri visual_url: type: string format: uri visual_large_url: type: string format: uri visual_maxsize_url: type: string format: uri lang: type: string start_date: type: string format: date end_date: type: string format: date start_time: type: string end_time: type: string description: type: string image_description: type: string creation_date: type: string format: date-time last_modification_date: type: string format: date-time link_label: type: string link_url: type: string canceled: type: string cancel_reason: type: string place_and_room: type: string url_place_and_room: type: string url_online_room: type: string spoken_languages: type: array items: $ref: '#/components/schemas/SpokenLanguage' speaker: type: string organizer: type: string contact: type: string is_internal: type: string theme: type: string vulgarization: $ref: '#/components/schemas/Vulgarization' registration: $ref: '#/components/schemas/Registration' keywords: type: string file: type: string nullable: true icalendar_url: type: string format: uri category: $ref: '#/components/schemas/Category' academic_calendar_category: type: string nullable: true domains: type: array items: $ref: '#/components/schemas/Domain' mementos: type: array items: $ref: '#/components/schemas/Memento' PaginatedEventList: 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/Event' PaginatedCategoryList: 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/Category' PaginatedDomainList: 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/Domain' PaginatedFacultyList: 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/Faculty' PaginatedMementoList: 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/Memento' PaginatedSpokenLanguageList: 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/SpokenLanguage' PaginatedRegistrationList: 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/Registration' PaginatedVulgarizationList: 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/Vulgarization' securitySchemes: tokenAuth: type: apiKey in: header name: Authorization description: 'Optional DRF Token authentication.' basicAuth: type: http scheme: basic security: []