Al-Farabi Kazakh National University notifications API

The notifications API from Al-Farabi Kazakh National University — 9 operation(s) for notifications.

Operations 12

GET /notifications/ API view for listing notifications for a user. #
GET /notifications/configurations/ #
GET /notifications/configurations/{course_key_string} Returns notification preference for user for a course. #
PATCH /notifications/configurations/{course_key_string} #
GET /notifications/count/ Get the unseen notifications count and show_notification_tray flag for a user. #
GET /notifications/enrollments/ API endpoint to get active CourseEnrollments for requester. #
PUT /notifications/mark-seen/{app_name}/ #
PATCH /notifications/mark-seen/{app_name}/ #
POST /notifications/preferences/update-all/ #
GET /notifications/preferences/update/{username}/{patch}/ #
POST /notifications/preferences/update/{username}/{patch}/ #
PATCH /notifications/read/ #

Specifications

Other Resources

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/al-farabi-kazakh-national-university-notifications-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

al-farabi-kazakh-national-university-notifications-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Open edX Notifications API
  description: APIs for access to Open edX information
  contact:
    email: dl@kaznu.kz
  version: v1
servers:
- url: https://open.kaznu.kz/api
security:
- Basic: []
tags:
- name: notifications
paths:
  /notifications/:
    get:
      operationId: notifications_list
      summary: API view for listing notifications for a user.
      description: "**Permissions**: User must be authenticated.\n**Response Format** (paginated):\n\n    {\n        \"results\" : [\n            {\n                \"id\": (int) notification_id,\n                \"app_name\": (str) app_name,\n                \"notification_type\": (str) notification_type,\n                \"content\": (str) content,\n                \"content_context\": (dict) content_context,\n                \"content_url\": (str) content_url,\n                \"last_read\": (datetime) last_read,\n                \"last_seen\": (datetime) last_seen\n            },\n            ...\n        ],\n        \"count\": (int) total_number_of_notifications,\n        \"next\": (str) url_to_next_page_of_notifications,\n        \"previous\": (str) url_to_previous_page_of_notifications,\n        \"page_size\": (int) number_of_notifications_per_page,\n\n    }\n\nResponse Error Codes:\n- 403: The requester cannot access resource."
      tags:
      - notifications
      parameters:
      - name: page
        in: query
        required: false
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        in: query
        required: false
        description: Number of results to return per page.
        schema:
          type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                required:
                - count
                - results
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type:
                    - string
                    - 'null'
                    format: uri
                  previous:
                    type:
                    - string
                    - 'null'
                    format: uri
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Notification'
  /notifications/configurations/:
    get:
      operationId: notifications_configurations_list
      description: API view for getting the aggregate notification preferences for the current user.
      tags:
      - notifications
      responses:
        '200':
          description: ''
  /notifications/configurations/{course_key_string}:
    get:
      operationId: notifications_configurations_read
      summary: Returns notification preference for user for a course.
      description: "Parameters:\n     request (Request): The request object.\n     course_key_string (int): The ID of the course to retrieve notification preference.\n\n Returns:\n     {\n        'id': 1,\n        'course_name': 'testcourse',\n        'course_id': 'course-v1:testorg+testcourse+testrun',\n        'notification_preference_config': {\n            'discussion': {\n                'enabled': False,\n                'core': {\n                    'info': '',\n                    'web': False,\n                    'push': False,\n                    'email': False,\n                },\n                'notification_types': {\n                    'new_post': {\n                        'info': '',\n                        'web': False,\n                        'push': False,\n                        'email': False,\n                    },\n                },\n                'not_editable': {},\n            },\n        }\n    }"
      tags:
      - notifications
      parameters:
      - name: course_key_string
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
    patch:
      operationId: notifications_configurations_partial_update
      description: Update an existing user notification preference with the data in the request body.
      tags:
      - notifications
      parameters:
      - name: course_key_string
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
  /notifications/count/:
    get:
      operationId: notifications_count_list
      summary: Get the unseen notifications count and show_notification_tray flag for a user.
      description: "**Permissions**: User must be authenticated.\n**Response Format**:\n```json\n{\n    \"show_notifications_tray\": (bool) show_notifications_tray,\n    \"count\": (int) total_number_of_unseen_notifications,\n    \"count_by_app_name\": {\n        (str) app_name: (int) number_of_unseen_notifications,\n        ...\n    },\n    \"notification_expiry_days\": 60\n}\n```\n**Response Error Codes**:\n- 403: The requester cannot access resource."
      tags:
      - notifications
      responses:
        '200':
          description: ''
  /notifications/enrollments/:
    get:
      operationId: notifications_enrollments_list
      summary: API endpoint to get active CourseEnrollments for requester.
      description: "**Permissions**: User must be authenticated.\n**Response Format** (paginated):\n\n    {\n        \"next\": (str) url_to_next_page_of_courses,\n        \"previous\": (str) url_to_previous_page_of_courses,\n        \"count\": (int) total_number_of_courses,\n        \"num_pages\": (int) total_number_of_pages,\n        \"current_page\": (int) current_page_number,\n        \"start\": (int) index_of_first_course_on_page,\n        \"results\" : [\n            {\n                \"course\": {\n                    \"id\": (int) course_id,\n                    \"display_name\": (str) course_display_name\n                },\n            },\n            ...\n        ],\n    }\n\nResponse Error Codes:\n- 403: The requester cannot access resource."
      tags:
      - notifications
      parameters:
      - name: page
        in: query
        required: false
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        in: query
        required: false
        description: Number of results to return per page.
        schema:
          type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                required:
                - count
                - results
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type:
                    - string
                    - 'null'
                    format: uri
                  previous:
                    type:
                    - string
                    - 'null'
                    format: uri
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/NotificationCourseEnrollment'
  /notifications/mark-seen/{app_name}/:
    put:
      operationId: notifications_mark-seen_update
      description: API view for marking user's all notifications seen for a provided app_name.
      tags:
      - notifications
      parameters:
      - name: app_name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
    patch:
      operationId: notifications_mark-seen_partial_update
      description: API view for marking user's all notifications seen for a provided app_name.
      tags:
      - notifications
      parameters:
      - name: app_name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
  /notifications/preferences/update-all/:
    post:
      operationId: notifications_preferences_update-all_create
      description: Update all notification preferences for the current user.
      tags:
      - notifications
      responses:
        '201':
          description: ''
  /notifications/preferences/update/{username}/{patch}/:
    get:
      operationId: notifications_preferences_update_read
      description: 'View to update user preferences from encrypted username and patch.

        username and patch must be string'
      tags:
      - notifications
      parameters:
      - name: username
        in: path
        required: true
        schema:
          type: string
      - name: patch
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
    post:
      operationId: notifications_preferences_update_create
      description: 'View to update user preferences from encrypted username and patch.

        username and patch must be string'
      tags:
      - notifications
      parameters:
      - name: username
        in: path
        required: true
        schema:
          type: string
      - name: patch
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: ''
  /notifications/read/:
    patch:
      operationId: notifications_read_partial_update
      description: 'Marks all notifications or single notification read for the given

        app name or notification id for the authenticated user.'
      tags:
      - notifications
      responses:
        '200':
          description: ''
components:
  schemas:
    Notification:
      required:
      - app_name
      - notification_type
      type: object
      properties:
        id:
          title: ID
          type: integer
          readOnly: true
        app_name:
          title: App name
          type: string
          maxLength: 64
          minLength: 1
        notification_type:
          title: Notification type
          type: string
          maxLength: 64
          minLength: 1
        content_context:
          title: Content context
          type: object
        content:
          title: Content
          type: string
          readOnly: true
        content_url:
          title: Content url
          type:
          - string
          - 'null'
          format: uri
          maxLength: 200
        course_id:
          title: Course id
          type:
          - string
          - 'null'
          maxLength: 255
        last_read:
          title: Last read
          type:
          - string
          - 'null'
          format: date-time
        last_seen:
          title: Last seen
          type:
          - string
          - 'null'
          format: date-time
        created:
          title: Создано
          type: string
          format: date-time
          readOnly: true
    CourseOverview:
      required:
      - id
      type: object
      properties:
        id:
          title: Id
          type: string
          maxLength: 255
          minLength: 1
        display_name:
          title: Display name
          type:
          - string
          - 'null'
          minLength: 1
    NotificationCourseEnrollment:
      required:
      - course
      type: object
      properties:
        course:
          $ref: '#/components/schemas/CourseOverview'
  securitySchemes:
    Basic:
      type: http
      scheme: basic