Comment on page
Search by provider
This endpoint returns a list of learning objects (LO) that matches specific keywords, language and provider.
Rapid API
Direct customer
GET https://learning-objects-v2.p.rapidapi.com/search-provider
GET https://api.inokufu.com/learningobject/v2/search-provider
The API key must be included in the header.
Rapid API
Direct customer
"x-rapidapi-key": "SAY-FRIEND-AND-ENTER"
"x-api-key": "SAY-FRIEND-AND-ENTER"
Make sure to replace SAY-FRIEND-AND-ENTER with your own Developer API key.
Query parameters must be included in the URL.
Parameter | Type | Default | Required | Description |
---|---|---|---|---|
keywords | string | | Yes | Keywords help you refine the topic of the learning objects. Best results are obtained when using the most commonly used designation for a skill, a competency or a job. |
lang | string | en | Yes | Language of the LO such as en (english), fr (french), etc. Use the /lang endpoint to get the full list of languages currently supported by the API. |
provider | string | youtube | Yes | Provider of the LO such as youtube , coursera , applebooks , etc. Use the /provider endpoint to get the list of the providers currently supported by this endpoint. |
sort | string | popularity | Yes | Currently supported sorting order are random or popularity . If empty, response will be sorted by popularity . |
match | string | best-effort | Yes | How strict the query parameters are applied. Two matches are currently supported:
|
model | string | strict | Yes | The model used by the API to determine if a LO is relevant based on the provided keywords. Two models are currently supported:
|
max | integer | 10 | Yes | Maximum number of LO returned per page. Value must be between 1 to 20. |
page | integer | 0 | Yes | The number of returned page, starting at 0. |
publisher | | | No | Publishers are the organization(s) that offer and/or sell the LO. For mooc , distance learning or training this can be an university, a school or a training organization. |
ageMax | integer | | No | The maximum age associated to the LO. For example, if you want to see videos for kids only you can set ageMax=10 . |
ageMin | integer | | No | The minimum age associated to the LO. For example, if you want to see textbooks for adult only you can set ageMin=18 . |
learningTimeMax | integer | | No | The maximum length of the LO in minute ( video only). For example, if you want to see 5 min or less videos only, you can set learningTimeMax=5 . |
learningTimeMin | integer | | No | The minimum length of the LO in minute ( video only). For example, if you want to see 1h or more videos only, you can set learningTimeMin=60 . |
levelMax | decimal | | No | The maximum level of the LO. The level is indicated as decimal number ranging from -1 (beginner) to 1 (advanced). For example, if you want to see a MOOC with a level for beginner, you can set levelMax=-0.5 . |
levelMin | decimal | | No | The minimum level of the LO. The level is indicated as decimal number ranging from -1 (beginner) to 1 (advanced). For example, if you want to see a MOOC with a level for intermediate or above, you can set levelMin=0.2 . |
popularityMin | decimal | | No | Popularity is an indicator of the popularity of the LO as measured by its number of likes, stars, views, etc. This parameter enables you to set a threshold to filter out LO below a certain popularity. This value ranges from 0 (low popularity) to 1 (exceptionally popular). |
address | string | | No | The address around which you want to search. Works only for geolocated learning objects (eg training ). Used in conjuction with distanceMax. |
distanceMax | integer | | No | The maximum distance within which you want to search. Works only for geolocated learning objects (eg training ). Used in conjuction with address. |
free | bool | | No | This allows you to filter by free content only ( free=true ) or paid content only (free=false ). If empty, you'll get both free and paid contents. |
If you want to enforce strictly one specific query paremeter, you can add
!important
after it. This parameter wil be applied strictly even if the global match
parameter is set to best-effort
.See below for Direct customer access:
Shell
Python
php
Javascript
curl "https://api.inokufu.com/learningobject/v2/search-provider?keywords=python&provider=coursera&lang=en&max=2"
-H "x-api-key: SAY-FRIEND-AND-ENTER"
import requests
url = 'https://api.inokufu.com/learningobject/v2/search-provider?keywords=python&provider=coursera&lang=en&max=2'
headers = {'x-api-key': 'x-api-key: SAY-FRIEND-AND-ENTER'}
r = requests.get(url, headers=headers)
r.json()
$key = 'SAY-FRIEND-AND-ENTER';
$curl = curl_init('https://api.inokufu.com/learningobject/v2/search-provider?keywords=python&provider=coursera&lang=en&max=2');
//Download the certificate from 'https://api.inokufu.com/' to avoid SSL errors and replace 'certInokufu.cer' with the name of your downloaded file
curl_setopt($curl,CURLOPT_CAINFO,__DIR__ . DIRECTORY_SEPARATOR . 'certInokufu.cer');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('x-api-key:'.$key));
$data = curl_exec($curl);
if($data===false){
var_dump(curl_error($curl));
};
apiKeySecured = 'SAY-FRIEND-AND-ENTER';
const search = async () => {fetch('https://api.inokufu.com/learningobject/v2/search-provider?keywords=python&provider=coursera&lang=en&max=2', {headers: {"x-api-key": apiKeySecured}} ).then(function(response) {
if(response.ok) {
response.json().then(function(json) {
const resJson = JSON.stringify(json)
//console.log(resJson);
return resJson;
})}})};
Parameter | Required | Description |
---|---|---|
title | Yes | Title of the LO |
url | Yes | Link to access the LO |
description | | Short description of the LO |
picture | | Link to the thumbnail picture of the LO |
provider | | Name of the provider associated with this LO |
bloom | | List of the Bloom objectives associated with this LO |
type | | List of the type associated with this LO |
level | | The level is indicated as decimal number ranging from -1 (beginner) to 1 (advanced) |
learningTimeValue | | Length associated to the LO (based on the unit provided accordingly) |
learningTimeUnit | | Unit of the length associated to the LO ( h for hour, min for minutes) |
address | | Postal address where the learning objects is located (eg training ). |
publisher | | List of publishers associated with this LO. Publishers are the organization(s) that offer and/or sell the LO. For mooc , distance learning or training this can be an university, a school or a training organization. |
author | | List of authors associated with this LO. Authors are the people that make the LO. For mooc ,distance learning or training this can be a teacher or trainer . |
PriceSpecification | | Informations about the pricing of the LO, which includes:
Beware some providers such as Coursera offer all their mooc in both free and paid version. In this case the price of the LO will be not null while marked as price-free=true |
Here is an example of the JSON structured response provided by this endpoint.
{
"statusCode": 200,
"request": {
"keywords": "python",
"lang": "en",
"provider": "Coursera",
"sort": "popularity",
"max": 2,
"model": "strict",
"address": "",
"distanceMax": "",
"ageMin": "",
"ageMax": "",
"popularityMin": 0,
"levelMin": "",
"levelMax": "",
"learningTimeMin": "",
"learningTimeMax": "",
"publisher": "",
"author": "",
"free": "",
"page": 0,
"id": "f0d6f275-87b2-4f93-b050-d41d81855b86"
},
"response": {
"content": [
{
"title": "Data Analysis with Python",
"url": "https://www.coursera.org/learn/data-analysis-with-python",
"description": "Learn how to analyze data using Python. This course will take you from the basics of Python to exploring many",
"picture": "https://s3.amazonaws.com/coursera-course-photos/1e/bccef0386611e889ebf7c982548ca6/Screen-Shot-2018-04-04-at-8.13.17-PM.png",
"provider": "Coursera",
"bloom": [
"Understand"
],
"type": [
"MOOC"
],
"level": -1.0,
"lang": "en",
"learningTimeValue": 11,
"learningTimeUnit": "h",
"PriceSpecification": {
"@context": "https://schema.org/",
"@type": "PriceSpecification",
"price": 38.0,
"priceCurrency": "$",
"price-free": true
}
},
{
"title": "An Introduction to Interactive Programming in Python (Part 2)",
"url": "https://www.coursera.org/learn/interactive-python-2",
"description": "This two-part course is designed to help students with very little or no computing background learn the basics of",
"picture": "https://s3.amazonaws.com/coursera/topics/interactivepython/large-icon.png",
"provider": "Coursera",
"bloom": [
"Understand"
],
"type": [
"MOOC"
],
"level": -1.0,
"lang": "en",
"learningTimeValue": 19,
"learningTimeUnit": "h",
"PriceSpecification": {
"@context": "https://schema.org/",
"@type": "PriceSpecification",
"price": 0.0,
"price-free": true
}
}
],
"metadata": {
"page": 0,
"number item per page": 2,
"total number item": 96,
"hasMore": true
},
"msg": "A00 - These results are our best effort to answer your query."
}
}
Last modified 1yr ago