Al-Farabi Kazakh National University Mobile API

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

Operations 12

GET /mobile/{api_version}/course_info/blocks/ **Use Case** #
POST /mobile/{api_version}/course_info/record_user_activity Handle the POST request #
GET /mobile/{api_version}/course_info/{course_id}/enrollment_details Handle the GET request #
GET /mobile/{api_version}/course_info/{course_id}/handouts **Use Case** #
GET /mobile/{api_version}/course_info/{course_id}/updates **Use Case** #
GET /mobile/{api_version}/my_user_info Mobile my user info list #
POST /mobile/{api_version}/notifications/create-token/ **Use Case** This endpoint allows clients to register a device for push… #
GET /mobile/{api_version}/users/{username} **Use Case** #
GET /mobile/{api_version}/users/{username}/course_enrollments/ **Use Case** #
GET /mobile/{api_version}/users/{username}/course_status_info/{course_id} Mobile users course status info read #
PATCH /mobile/{api_version}/users/{username}/course_status_info/{course_id} Mobile users course status info partial update #
GET /mobile/{api_version}/users/{username}/enrollments_status/ Mobile users enrollments status list #

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-mobile-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-mobile-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Open edX Mobile 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: Mobile
paths:
  /mobile/{api_version}/course_info/blocks/:
    get:
      operationId: mobile_course_info_blocks_list
      summary: '**Use Case**'
      description: This API endpoint is specifically optimized for the course homepage on Mobile Apps.
      tags:
      - Mobile
      parameters:
      - name: api_version
        in: path
        required: true
        schema:
          type: string
      - 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: ''
  /mobile/{api_version}/course_info/record_user_activity:
    post:
      operationId: mobile_course_info_record_user_activity_create
      summary: Handle the POST request
      description: Populate the user activity table.
      tags:
      - Mobile
      parameters:
      - name: api_version
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: ''
  /mobile/{api_version}/course_info/{course_id}/enrollment_details:
    get:
      operationId: mobile_course_info_enrollment_details_list
      summary: Handle the GET request
      description: Returns user enrollment and course details.
      tags:
      - Mobile
      parameters:
      - name: api_version
        in: path
        required: true
        schema:
          type: string
      - name: course_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
  /mobile/{api_version}/course_info/{course_id}/handouts:
    get:
      operationId: mobile_course_info_handouts_list
      summary: '**Use Case**'
      description: 'Get the HTML for course handouts.


        **Example Request**


        GET /api/mobile/v0.5/course_info/{course_id}/handouts


        **Response Values**


        If the request is successful, the request returns an HTTP 200 "OK"

        response along with the following value.


        * handouts_html: The HTML for course handouts.'
      tags:
      - Mobile
      parameters:
      - name: api_version
        in: path
        required: true
        schema:
          type: string
      - name: course_id
        in: path
        required: true
        schema:
          type: string
      - 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: ''
  /mobile/{api_version}/course_info/{course_id}/updates:
    get:
      operationId: mobile_course_info_updates_list
      summary: '**Use Case**'
      description: 'Get the content for course updates.


        **Example Request**


        GET /api/mobile/v0.5/course_info/{course_id}/updates


        **Response Values**


        If the request is successful, the request returns an HTTP 200 "OK"

        response along with an array of course updates. Each course update

        contains the following values.


        * content: The content, as an HTML string, of the course update.

        * date: The date of the course update.

        * id: The unique identifier of the update.

        * status: Whether the update is visible or not.'
      tags:
      - Mobile
      parameters:
      - name: api_version
        in: path
        required: true
        schema:
          type: string
      - name: course_id
        in: path
        required: true
        schema:
          type: string
      - 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: ''
  /mobile/{api_version}/my_user_info:
    get:
      operationId: mobile_my_user_info_list
      description: Redirect to the currently-logged-in user's info page
      tags:
      - Mobile
      parameters:
      - name: api_version
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
      summary: Mobile my user info list
      x-summary-source: derived
  /mobile/{api_version}/notifications/create-token/:
    post:
      operationId: mobile_notifications_create-token_create
      summary: '**Use Case** This endpoint allows clients to register a device for push…'
      description: 'If the device is already registered, the existing registration will be updated.

        If setting PUSH_NOTIFICATIONS_SETTINGS is not configured, the endpoint will return a 501 error.


        **Example Request**

        POST /api/mobile/{version}/notifications/create-token/

        **POST Parameters**

        The body of the POST request can include the following parameters.

        * name (optional) - A name of the device.

        * registration_id (required) - The device token of the device.

        * device_id (optional) - ANDROID_ID / TelephonyManager.getDeviceId() (always as hex)

        * active (optional) - Whether the device is active, default is True.

        If False, the device will not receive notifications.

        * cloud_message_type (required) - You should choose FCM or GCM. Currently, only FCM is supported.

        * application_id (optional) - Opaque application identity, should be filled in for multiple

        key/certificate access. Should be equal settings.FCM_APP_NAME.

        **Example Response**

        ```json

        {

        "id": 1,

        "name": "My Device",

        "registration_id": "fj3j4",

        "device_id": 1234,

        "active": true,

        "date_created": "2024-04-18T07:39:37.132787Z",

        "cloud_message_type": "FCM",

        "application_id": "my_app_id"

        }

        ```'
      tags:
      - Mobile
      parameters:
      - name: api_version
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GCMDevice'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GCMDevice'
  /mobile/{api_version}/users/{username}:
    get:
      operationId: mobile_users_read
      summary: '**Use Case**'
      description: 'Get information about the specified user and access other resources

        the user has permissions for.


        Users are redirected to this endpoint after they sign in.


        You can use the **course_enrollments** value in the response to get a

        list of courses the user is enrolled in.


        **Example Request**


        GET /api/mobile/{version}/users/{username}


        **Response Values**


        If the request is successful, the request returns an HTTP 200 "OK" response.


        The HTTP 200 response has the following values.


        * course_enrollments: The URI to list the courses the currently signed

        in user is enrolled in.

        * email: The email address of the currently signed in user.

        * id: The ID of the user.

        * name: The full name of the currently signed in user.

        * username: The username of the currently signed in user.'
      tags:
      - Mobile
      parameters:
      - name: api_version
        in: path
        required: true
        schema:
          type: string
      - name: username
        in: path
        required: true
        description: Обязательное поле. Не более 150 символов. Только буквы, цифры и символы @/./+/-/_.
        schema:
          type: string
          pattern: ^[\w.@+-]+$
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mobile_api.User'
  /mobile/{api_version}/users/{username}/course_enrollments/:
    get:
      operationId: mobile_users_course_enrollments_list
      summary: '**Use Case**'
      description: 'Get information about the courses that the currently signed in user is

        enrolled in.


        v1 differs from v0.5 version by returning ALL enrollments for

        a user rather than only the enrollments the user has access to (that haven''t expired).

        An additional attribute "expiration" has been added to the response, which lists the date

        when access to the course will expire or null if it doesn''t expire.


        In v4 we added to the response primary object. Primary object contains the latest user''s enrollment

        or course where user has the latest progress. Primary object has been cut from user''s

        enrolments array and inserted into separated section with key `primary`.


        **Example Request**


        GET /api/mobile/v1/users/{username}/course_enrollments/


        **Response Values**


        If the request for information about the user is successful, the

        request returns an HTTP 200 "OK" response.


        The HTTP 200 response has the following values.


        * expiration: The course expiration date for given user course pair

        or null if the course does not expire.

        * certificate: Information about the user''s earned certificate in the

        course.

        * course: A collection of the following data about the course.


        * courseware_access: A JSON representation with access information for the course,

        including any access errors.


        * course_about: The URL to the course about page.

        * course_sharing_utm_parameters: Encoded UTM parameters to be included in course sharing url

        * course_handouts: The URI to get data for course handouts.

        * course_image: The path to the course image.

        * course_updates: The URI to get data for course updates.

        * discussion_url: The URI to access data for course discussions if

        it is enabled, otherwise null.

        * end: The end date of the course.

        * id: The unique ID of the course.

        * name: The name of the course.

        * number: The course number.

        * org: The organization that created the course.

        * start: The date and time when the course starts.

        * start_display:

        If start_type is a string, then the advertised_start date for the course.

        If start_type is a timestamp, then a formatted date for the start of the course.

        If start_type is empty, then the value is None and it indicates that the course has not yet started.

        * start_type: One of either "string", "timestamp", or "empty"

        * subscription_id: A unique "clean" (alphanumeric with ''_'') ID of

        the course.

        * video_outline: The URI to get the list of all videos that the user

        can access in the course.


        * created: The date the course was created.

        * is_active: Whether the course is currently active. Possible values

        are true or false.

        * mode: The type of certificate registration for this course (honor or

        certified).

        * url: URL to the downloadable version of the certificate, if exists.

        * course_progress: Contains information about how many assignments are in the course

        and how many assignments the student has completed.

        * total_assignments_count: Total course''s assignments count.

        * assignments_completed: Assignments witch the student has completed.'
      tags:
      - Mobile
      parameters:
      - name: api_version
        in: path
        required: true
        schema:
          type: string
      - name: username
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CourseEnrollment'
  /mobile/{api_version}/users/{username}/course_status_info/{course_id}:
    get:
      operationId: mobile_users_course_status_info_read
      description: Get the ID of the module that the specified user last visited in the specified course.
      tags:
      - Mobile
      parameters:
      - name: api_version
        in: path
        required: true
        schema:
          type: string
      - name: username
        in: path
        required: true
        schema:
          type: string
      - name: course_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
      summary: Mobile users course status info read
      x-summary-source: derived
    patch:
      operationId: mobile_users_course_status_info_partial_update
      description: Update the ID of the module that the specified user last visited in the specified course.
      tags:
      - Mobile
      parameters:
      - name: api_version
        in: path
        required: true
        schema:
          type: string
      - name: username
        in: path
        required: true
        schema:
          type: string
      - name: course_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
      summary: Mobile users course status info partial update
      x-summary-source: derived
  /mobile/{api_version}/users/{username}/enrollments_status/:
    get:
      operationId: mobile_users_enrollments_status_list
      description: Gets user's enrollments status.
      tags:
      - Mobile
      parameters:
      - name: api_version
        in: path
        required: true
        schema:
          type: string
      - name: username
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
      summary: Mobile users enrollments status list
      x-summary-source: derived
components:
  schemas:
    mobile_api.User:
      required:
      - username
      type: object
      properties:
        id:
          title: ID
          type: integer
          readOnly: true
        username:
          title: Имя пользователя
          description: Обязательное поле. Не более 150 символов. Только буквы, цифры и символы @/./+/-/_.
          type: string
          pattern: ^[\w.@+-]+$
          maxLength: 150
          minLength: 1
        email:
          title: Адрес электронной почты
          type: string
          format: email
          maxLength: 254
        name:
          title: Name
          type: string
          readOnly: true
        course_enrollments:
          title: Course enrollments
          type: string
          readOnly: true
    GCMDevice:
      required:
      - registration_id
      type: object
      properties:
        id:
          title: ID
          type: integer
        name:
          title: Имя
          type:
          - string
          - 'null'
          maxLength: 255
        registration_id:
          title: Registration ID
          type: string
          minLength: 1
        device_id:
          title: Device id
          description: 'ANDROID_ID / TelephonyManager.getDeviceId() (e.g: 0x01)'
          type:
          - integer
          - 'null'
        active:
          title: Is active
          description: Inactive devices will not be sent notifications
          type: boolean
        date_created:
          title: Creation date
          type:
          - string
          - 'null'
          format: date-time
          readOnly: true
        cloud_message_type:
          title: Cloud Message Type
          description: You should choose FCM, GCM is deprecated
          type: string
          enum:
          - FCM
          - GCM
        application_id:
          title: Application ID
          description: Opaque application identity, should be filled in for multiple key/certificate access
          type:
          - string
          - 'null'
          maxLength: 64
    CourseEnrollment:
      type: object
      properties:
        audit_access_expires:
          title: Audit access expires
          type: string
          readOnly: true
        created:
          title: Created
          type:
          - string
          - 'null'
          format: date-time
          readOnly: true
        mode:
          title: Mode
          type: string
          maxLength: 100
          minLength: 1
        is_active:
          title: Is active
          type: boolean
        course:
          title: Course
          type: string
          readOnly: true
        certificate:
          title: Certificate
          type: string
          readOnly: true
        course_modes:
          title: Course modes
          type: string
          readOnly: true
  securitySchemes:
    Basic:
      type: http
      scheme: basic