Education Platform

List Courses

GET ‎https://<domain>/<api prefix>/<version>/education-platform/available/course/

This API endpoint will return a list of available and subscribed courses.

Query Parameters

NameTypeDescription

page

string

page number

filter

object

{ 'name': <course title>, 'category': <category>, 'price': <price> }

limit

string

sort

string

Headers

NameTypeDescription

apikey*

string

Apikey

Authorization*

string

Bearer access token

HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {
        "courses": [
            {
                "id": <id>,
                "slug": "<slug>",
                "title": "<cource_title>",
                "thumbnail":"<image>",                                                                                     
                "short_description": "<short_description>",
                "long_description": "<long_description>",
                "detail_url": "<detail_url>",
                "authors": [
                    {
                        "name": "<author_name>"
                    }
                ],
                "duration": "<duration>",
                "progress": <progress>,
                "skills": [
                    "<skills>"
                ],
                "price": <price>,
                "course_type": "<course_type>",
                "total_reviews": "<reviews_count>"
            },

        ],
        "filterParams": {
            "category": [
                {
                    "pk": <id>,
                    "name": "<name>",
                    "slug": "<slug>"
                },
           ],
            "price": [
                {
                    "label": <label>,
                    "value": <value>
                },
            ],
            "sortOptions": [
                {
                    "label": "<label>",
                    "value": "<value>"
                },
            ]
        }
    }
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://<domain>/<api prefix>/<version>/education-platform/available/course/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/education-platform/available/course/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

List Subscribed Courses

GET ‎https://<domain>/<api prefix>/<version>/education-platform/dashboard/my-courses/

This API endpoint will return a list of subscribed courses.

Headers

NameTypeDescription

apikey*

string - Apikey

Authorization*

string - Bearer access-token

HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {
        "courses": [
            {
                "id": <id>,
                "slug": "<slug>",
                "title": "<cource_title>",
                "thumbnail":"<image>",                                                                                     
                "short_description": "<short_description>",
                "long_description": "<long_description>",
                "detail_url": "<detail_url>",
                "authors": [
                    {
                        "name": "<author_name>"
                    }
                ],
                "duration": "<duration>",
                "progress": <progress>,
                "skills": [
                    "<skills>"
                ],
                "price": <price>,
                "course_type": "<course_type>",
                "total_reviews": "<reviews_count>"
            },
        ]
    }
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://<domain>/<api prefix>/<version>/education-platform/dashboard/my-courses/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  formData: {

  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/education-platform/dashboard/my-courses/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access-token>',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

List Internal Courses

GET ‎https://<domain>/<api prefix>/<version>/education-platform/dashboard/internal-courses/

This API endpoint will return a list of internal courses

Headers

NameTypeDescription

apikey*

string - Apikey

Authorization*

string - Bearer access-token

HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {
        "courses": [
            {
                "id": <id>,
                "slug": "<slug>",
                "title": "<cource_title>",
                "thumbnail":"<image>",                                                                                     
                "short_description": "<short_description>",
                "long_description": "<long_description>",
                "detail_url": "<detail_url>",
                "authors": [
                    {
                        "name": "<author_name>"
                    }
                ],
                "duration": "<duration>",
                "progress": <progress>,
                "skills": [
                    "<skills>"
                ],
                "price": <price>,
                "course_type": "<course_type>",
                "total_reviews": "<reviews_count>"
            },
        ]
    }
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://<domain>/<api prefix>/<version>/education-platform/dashboard/internal-courses/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access-token>'
  },
  formData: {}
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/education-platform/dashboard/internal-courses/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Subscribe Course

POST ‎https://<domain>/<api prefix>/<version>/education-platform/subscribe/free-course/

This API endpoint will subscribe to a free course.

Headers

NameTypeDescription

apikey*

string

Apikey

Authorization*

string

Beare access token

Request Body

NameTypeDescription

course_slug*

string

Course slug

HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {}
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://<domain>/<api prefix>/<version>/education-platform/subscribe/free-course/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  formData: {
    'course_slug': '<course_slug>'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/education-platform/subscribe/free-course/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('course_slug' => '<course_slug>'),
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Error Responses

Unsubscribe Course

POST ‎https://<domain>/<api prefix>/<version>/education-platform/unsubscribe/course/

This API endpoint will unsubscribe to a course.

Headers

NameTypeDescription

apikey*

string

Apikey

Authorization*

string

Bearer access token

Request Body

NameTypeDescription

course_slug*

string

Course slug

HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {}
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://<domain>/<api prefix>/<version>/education-platform/unsubscribe/course/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  formData: {
    'course_slug': '<course_slug>'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/education-platform/unsubscribe/course/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('course_slug' => '<course_slug>'),
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Error Responses

Status Code

Error Type

FIeld

Description

400

Validation Error

slug

This field is required and it may not be blank.

Invalid course slug.

Course Detailed View

GET ‎https://<domain>/<api prefix>/<version>/education-platform/course/detailed-view/

This API endpoint will return a detailed view of the course.

Path Parameters

NameTypeDescription

slug*

string

Course slug

subscribed

boolean - True or False

If requesting for details of subscribed course, Must add subscribed params as True.

Headers

NameTypeDescription

apikey*

string

Apikey

Authorization*

string

Bearer access token

HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {
        
        if the course is not subscribed
        
        "course_slug": "<course_slug>",
        "author": "<author>",
        subscriber_count": <subscriber_count>,
        "course_content": {
            "id": <id>,
            "language": "<language>",
            "title": "<title>",
            "short_description": "<short_description>",
            "long_description": "<long_description>",
            "is_set": <is_set>
        },
        "course_type": "<course_type>",
        "prerequisite": [
            "<badg_name>"
        ],
        "total_modules": <total_modules>,
        "modules": [
            {
                "name": "<module_name>",
                "total_chapters": <total_chapters>,
                "chapters": [
                    {
                        "name": "<chapter_name>"
                        "is_preview": <is_preview>,
                        "resource_url": "<resource_url>",
                        "vimeo_id": "<vimeo_id>"
                    },
                    ....
                ]
            },
            ....
        ],
        "duration": "<duration>",
        "subcribed": <subcribed>,
        "eligible": <eligible>,
        "eligibility": {
            "ranks": [<eligible_rank_names>],
            "groups": [<eligible_groups_names>]
        },
        "currency": "<currency>",
        "first_preview": {
            "id": <id>,
            "number": <chapter_number>,
            "resource_url": "<resource_url>",
            "name": "<name>",
            "description": "<description>",
            "long_description": "<long_description>",
            "duration": "<duration>",
            "is_preview": <is_preview>,
            "slug": "<slug>",
            "module": <module_number>
        },
        
        if the course is subscribed
        "course_id": <course_id>,
        "title": "<title>",
        "duration": "<duration>",
        "subscriber_count": <subscriber_count>,
        "badge_list": [
            "<badge_list>"
        ],
        "course_slug": "<course_slug>",
        "author": "<author>",
        "progress": <progress>,
        "last_visited": {
            "id": <id>,
            "number": <chapter_number>,
            "resource_url": "<resource_url>",
            "name": "<name>",
            "description": "<description>",
            "long_description": "<long_description>",
            "duration": "<duration>",
            "is_preview": <is_preview>,
            "slug": "<slug>",
            "module": <module_number>
        },
        "modules": [
            {
                "module": <module_number>,
                "name": "<name>",
                "description": "<description>",
                "total_chapters": <total_chapters>,
                "chapters": [
                    {
                        "number": <chapter_number>,
                        "slug": "<slug>",
                        "name": "<name>",
                        "description": "<description>",
                        "long_description": "<long_description>",
                        "duration": "<duration>",
                        "is_preview": <is_preview>,
                        "resource_url": "<resource_url>",
                        "vimeo_id": "<vimeo_id>",
                        "module_number": <module_number>
                    },
                   
                ]
            },
            ...
        ],
        
        common data
        
        "review_data": [
            {
                "id": <id>,
                "object_pk": "<object_pk>",
                "comment": "<comment>",
                "rating": <rating>,
                "user__first_name": "<user__first_name>",
                "user__last_name": "<user__last_name>"
            }
        ],
        "ratings_data": {
            "rating_average": <ratings_data>,
            "rating_average_num": <rating_average_num>,
            "rating_total": <rating_total>,
            "review_total": <review_total>
        },
        "already_reviewed": <already_reviewed>,
        "already_reviewed_data": {
            "id": <id>,
            "object_pk": "<object_pk>",
            "comment": "<comment>",
            "rating": <rating>,
            "user__first_name": "<user__first_name>",
            "user__last_name": "<user__last_name>"
        }
    }
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://<domain>/<api prefix>/<version>/education-platform/course/detailed-view/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  formData: {}
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/education-platform/course/detailed-view/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Error Responses

Status Code

Error Type

FIeld

Description

400

Validation Error

slug

This course is not pusblished, Permission denied.

This field is required and it may not be blank.

Invalid slug.

Previous and Next Chapters

GET ‎https://<domain>/<api prefix>/<version>/education-platform/chapter/next-previous/

This API endpoint will return next and previous chapter details of selected chapter

Query Parameters

NameTypeDescription

slug*

string

Course slug

module*

integer

Module number

chapter*

integer

Chapter number

Headers

NameTypeDescription

apikey*

string

Apikey

Authorization*

string

Bearer access token

HTTP/1.1 200 OK
Content-Type: application/json

{
    "status_code": 200,
    "errors": {},
    "data": {
        "next_chapter": {
            "id": <id>,
            "number": <chapter_number>,
            "resource_url": "<resource_url>",
            "name": "<name>",
            "description": "<description>",
            "long_description": "<long_description>",
            "duration": "<duration>",
            "is_preview": <is_preview>,
            "slug": "<slug>",
            "module": <module_number>
        },
        "previous_chapter": {
            "id": <id>,
            "number": <chapter_number>,
            "resource_url": "<resource_url>",
            "name": "<name>",
            "description": "<description>",
            "long_description": "<long_description>",
            "duration": "<duration>",
            "is_preview": <is_preview>,
            "slug": "<slug>",
            "module": <module_number>        
        }
    }
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://<domain>/<api prefix>/<version>/education-platform/chapter/next-previous/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  formData: {}
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/education-platform/chapter/next-previous/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Error Responses

Status Code Error TypeFieldDescription

400

Validation Error

slug

This field is required and it may not be blank.

Invalid slug.

You are not subscribed this course.

401

Request Failed

Module and chapter number is required.

Update Course Progress

POST ‎https://<domain>/<api prefix>/<version>/education-platform/course/progress/

This API endpoint will update course progress.

Headers

NameTypeDescription

apikey*

string

Apikey

Authorization*

string

Bearer access token

Request Body

NameTypeDescription

course_slug*

String

chapter_slug*

String

HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {}
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://<domain>/<api prefix>/<version>/education-platform/course/progress/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  formData: {
    'course_slug': '<course_slug>',
    'chapter_slug': '<chapter_slug>'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
}); 

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/education-platform/course/progress/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('course_slug' => '<course_slug>','chapter_slug' => '<chapter_slug>'),
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Error Responses

Status Code Error TypeFieldDescription

400

Validation Error

course_slug

This field is required and it may not be blank.

Invalid course slug.

400

Validation Error

chapter_slug

Invalid chapter slug.

Course Review

To add a review for subscribed course use the same endpoint for product review, use course_id as a bundle in params.

Get Certificate

GET ‎https://<domain>/<api prefix>/<version>/education-platform/get/certificate/

This API endpoint is used to get a certificate of a completed subscribed course.

Query Parameters

NameTypeDescription

course_slug*

string

Course slug

Headers

NameTypeDescription

apikey*

string

Apikey

Authorization*

string

Bearer access token

Sample Code

Node

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://<domain>/<api prefix>/<version>/education-platform/get/certificate/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/education-platform/get/certificate/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Error Responses

Status CodeError TypeFieldDescription

400

Validation Error

course_slug

This field is required and it may not be blank.

Invalid course slug.

Course is not completed yet.

Last updated