3. EdX Discovery API Reference#
This API reference includes information about the endpoints of the edX
Discovery API, including the request, response data, and examples. You can use
any technology to send REST API requests as HTTP messages to the edX API. The
example API requests shown in this reference use the curl
command-line program
to show the syntax and data for a request in a way that is easy to read. To view all
these endpoints hosted by Discovery service go to /api-docs/
3.1. Taxonomy Endpoints#
The following endpoints are available in Taxonomy application under the Discovery API.
- /skills
The
skills
are extracted using course’s full description by third party tools and services. Skills are linked with courses to help learners choose their courses for their desired skills. You can make GET calls to the/skills
endpoint to get all the skills available in the system. See Skills List Endpoint for more details.
- /skills/{skill_id}
You can make GET calls to the
/skills/{skill_id}
endpoint to get details for a specified skill. For details, see skills/{skill_id} Endpoint.
- /jobs
We also collect and save the data about jobs that are related to skills. We extract this information using third party tools and services. Jobs are linked with the skills to help learners align their career plans with their course work. You can make GET calls to the
/jobs
endpoint to get all the jobs. See, Jobs List Endpoint for more details.
- /jobs/{job_id}
You can make GET calls to the
/jobs/{job_id}
endpoint to get details of a specified job. For details, see jobs/{job_id} Endpoint.
- /jobpostings
JobPostings contains the number of job postings with posting companies and median salary information. You can make GET calls to the
/jobpostings
endpoint to get all the job postings available in the system. See JobPostings List Endpoint for more details.
- /jobpostings/{jobpostings_id}
You can make GET calls to the
/jobpostings/{jobpostings_id}
endpoint to get details of a specified JobPostings object. For details, see jobpostings/{jobpostings_id} Endpoint.
3.1.1. Taxonomy Endpoints Response layout#
Responses to GET requests for the edX Discovery API frequently contain
the results
response value. The results
response value is a variable
that represents the intended object from the GET request. Here are the details.
Field |
Data Type |
Description |
---|---|---|
|
integer |
The number of objects in the system. |
|
string |
The URL for the next page of results. |
|
string |
The URL for the previous page of results. |
|
array |
A list of objects of relative data. |
For example in Skills List Endpoint Each top-level object in the results
array represents a skill.
See skills for information about the fields in a skill item in the results
.
3.2. Skills List Endpoint#
GET call to the /skills
endpoint returns a list of all the available skills in the system.
3.2.1. Method and Endpoint#
Method |
Endpoint |
---|---|
GET |
|
3.2.2. Example Request#
curl -X GET \
https://discovery.edx.org/taxonomy/api/v1/skills/ \
-H "Authorization: JWT {access token}"
3.2.3. Parameters#
You can use an optional page_size
parameter to specify the number of
records you want to load in a single page. If not provided the default of
20 is used for page_size. For example:
curl -X GET \
https://discovery.edx.org/taxonomy/api/v1/skills/?page_size=10 \
-H "Authorization: JWT {access token}"
3.3. skills/{skill_id} Endpoint#
GET call to the skills/{skill_id}
endpoint returns information about a single skill.
In the GET call, The information returned is described in
Skill Fields.
3.3.1. Method and Endpoint#
Method |
Endpoint |
---|---|
GET |
|
3.3.2. Example Request#
curl -X GET \
https://discovery.edx.org/taxonomy/api/v1/skills/14 \
-H "Authorization: JWT {access token}"
3.3.3. Response Values#
The GET https://discovery.edx.org/taxonomy/api/v1/skills/{skill_id}
request returns the response values described in Skill Fields.
3.3.4. Fields in a Skill#
Field |
Data Type |
Description |
---|---|---|
|
integer |
Unique identifier in edx system. It is Used to get detailed views. |
|
string |
Skill title |
|
string |
Skill short description |
|
array |
A list of all the courses relevant to the skill. |
|
string |
Course unique identifier in edx system. Example: “TUMx+QPLS4x”. |
|
float |
Represents the relevance the skill to course. It’s value ranges from 0 to 1. |
|
string |
object creation time. Example: “2021-02-23T11:01:08.164127Z”. |
|
string |
object modified time. Example: “2021-02-23T11:01:08.164127Z”. |
|
string |
An identifier for the skill in the source system. Example: “KS122LN6CLX3P61KWSP2”. |
|
string |
URL to get more details for skill from the source. |
|
string |
Skill type id, Example: “ST1” |
|
string |
Skill type name, Example: “Hard Skill” |
3.3.5. Example Response Showing Information about skills list#
The following example response shows a skills list response for 3 page_size.
{
"count": 3522,
"next": "https://discovery.edx.org/taxonomy/api/v1/skills/?page=2&page_size=3",
"previous": null,
"results": [
{
"id": 124,
"courses": [
{
"course_key": "TUMx+QPLS4x",
"confidence": 1
},
{
"course_key": "BerkeleyX+BUSADM466.3x",
"confidence": 1
},
{
"course_key": "TUMx+QEMx",
"confidence": 1
},
{
"course_key": "IIMBx+MK102x",
"confidence": 1
},
{
"course_key": "KyotoUx+008x",
"confidence": 1
},
{
"course_key": "LinuxFoundationX+LFS163x",
"confidence": 1
},
{
"course_key": "QueensX+QBUS502x",
"confidence": 1
},
{
"course_key": "QueensX+QBUS503x",
"confidence": 1
},
{
"course_key": "TecdeMonterreyX+DCRx",
"confidence": 1
},
{
"course_key": "logycaX+ECLLM002",
"confidence": 1
}
],
"created": "2021-02-23T11:01:08.164127Z",
"modified": "2021-04-21T07:09:24.779053Z",
"external_id": "KS122LN6CLX3P61KWSP2",
"name": "Customer Satisfaction",
"description": "Customer satisfaction is a term frequently used in marketing. It is a measure of how products and services supplied by a company meet or surpass customer expectation. Customer satisfaction is defined as \"the number of customers, or percentage of total customers, whose reported experience with a firm, its products, or its services (ratings) exceeds specified satisfaction goals.\" Customers play an important role and are essential in keeping a product or service relevant so it is in the best interest of the business to ensure customer satisfaction, and build customer loyalty.",
"info_url": "https://skills.emsidata.com/skills/KS122LN6CLX3P61KWSP2",
"type_id": "ST1",
"type_name": "Hard Skill"
},
{
"id": 125,
"courses": [
{
"course_key": "TUMx+QPLS4x",
"confidence": 1
}
],
"created": "2021-02-23T11:01:08.229934Z",
"modified": "2021-04-21T07:09:24.812122Z",
"external_id": "KS127CR6S5TQJVYMG3HB",
"name": "Operational Excellence",
"description": "Operational excellence of an organization is the execution of its operations in an excellent way. Given two commercial companies with the same strategy, the operationally more excellent company will in general have better operational results, creating value for customers and shareholders. The term can be explained and applied in many ways, and is popular with management.",
"info_url": "https://skills.emsidata.com/skills/KS127CR6S5TQJVYMG3HB",
"type_id": "ST1",
"type_name": "Hard Skill"
},
{
"id": 126,
"courses": [
{
"course_key": "TUMx+QPLS4x",
"confidence": 1
},
{
"course_key": "UC3Mx+IM.1x",
"confidence": 1
},
{
"course_key": "USMx+CC607x",
"confidence": 1
},
{
"course_key": "Microsoft+DAT227x",
"confidence": 1
},
{
"course_key": "USMx+BUMM621",
"confidence": 1
},
{
"course_key": "WitsX+DTx",
"confidence": 1
},
{
"course_key": "USMx+DIGITAL01",
"confidence": 1
},
{
"course_key": "UTAustin_BUx+LDSCTx",
"confidence": 1
},
{
"course_key": "State-Bank-of-India+SBIIT002x",
"confidence": 1
}
],
"created": "2021-02-23T11:01:08.277514Z",
"modified": "2021-04-21T07:09:24.844532Z",
"external_id": "KS1218Y74WJ6YV4KH0DM",
"name": "Business Process",
"description": "A business process, business method or business function is a collection of related, structured activities or tasks by people or equipment in which a specific sequence produces a service or product for a particular customer or customers. Business processes occur at all organizational levels and may or may not be visible to the customers. A business process may often be visualized (modeled) as a flowchart of a sequence of activities with interleaving decision points or as a process matrix of a sequence of activities with relevance rules based on data in the process. The benefits of using business processes include improved customer satisfaction and improved agility for reacting to rapid market change. Process-oriented organizations break down the barriers of structural departments and try to avoid functional silos.",
"info_url": "https://skills.emsidata.com/skills/KS1218Y74WJ6YV4KH0DM",
"type_id": "ST1",
"type_name": "Hard Skill"
}
]
}
3.4. Jobs List Endpoint#
GET call to /jobs
endpoint returns a list of all the available jobs in the system.
3.4.1. Method and Endpoint#
Method |
Endpoint |
---|---|
GET |
|
3.4.2. Example Request#
curl -X GET \
https://discovery.edx.org/taxonomy/api/v1/jobs/ \
-H "Authorization: JWT {access token}"
3.4.3. Parameters#
You can use an optional page_size
parameter to specify the number of
records you want to load in a single page. If not provided the default of
20 is used for page_size. For example:
curl -X GET \
https://discovery.edx.org/taxonomy/api/v1/jobs/?page_size=10 \
-H "Authorization: JWT {access token}"
3.5. jobs/{job_id} Endpoint#
GET call to the jobs/{job_id}
endpoint returns information about a single job.
In the GET call, The information returned is described in
Jobs Fields.
3.5.1. Method and Endpoint#
Method |
Endpoint |
---|---|
GET |
|
3.5.2. Example Request#
curl -X GET \
https://discovery.edx.org/taxonomy/api/v1/jobs/14 \
-H "Authorization: JWT {access token}"
3.5.3. Response Values#
The GET https://discovery.edx.org/taxonomy/api/v1/jobs/{jobs}
request returns the response values described in Jobs Fields.
3.5.4. Fields in a Job#
Field |
Data Type |
Description |
---|---|---|
|
integer |
Unique identifier in edx system. It is Used to get detailed views. |
|
string |
Job title |
|
array |
A list of all the skills relevant to the job. see Skills Fields for skill details. |
|
integer |
Number of unique posting for the job for the particular skill. |
|
float |
Represents the significance of the skill to job. It’s value ranges from 0 to 100. |
|
string |
object creation time. Example: “2021-02-23T11:01:08.164127Z”. |
|
string |
object modified time. Example: “2021-02-23T11:01:08.164127Z”. |
|
string |
An identifier for the job in the source system. Example: “ETB716DA673BC8BE08”. |
3.5.5. Example Response Showing Information about Job details#
The following example response shows a job detail response.
{
"id": 101,
"skills": [
{
"skill": {
"id": 167,
"created": "2021-02-26T16:37:21.922596Z",
"modified": "2021-03-15T14:28:41.168869Z",
"external_id": "KS120HM73ZTBQQFJZY52",
"name": "Annuities",
"description": "An annuity is a series of payments made at equal intervals. Examples of annuities are regular deposits to a savings account, monthly home mortgage payments, monthly insurance payments and pension payments. Annuities can be classified by the frequency of payment dates. The payments (deposits) may be made weekly, monthly, quarterly, yearly, or at any other regular interval of time. Annuities may be calculated by mathematical functions known as \"annuity functions\".",
"info_url": "https://skills.emsidata.com/skills/KS120HM73ZTBQQFJZY52",
"type_id": "ST1",
"type_name": "Hard Skill"
},
"significance": 166.0414834976898,
"unique_postings": 2986
},
{
"skill": {
"id": 181,
"created": "2021-02-26T16:49:37.542590Z",
"modified": "2021-03-15T14:28:31.605044Z",
"external_id": "KS680DR6QC1G86H8NYBK",
"name": "Securities (Finance)",
"description": "A security is a tradable financial asset. The term commonly refers to any form of financial instrument, but its legal definition varies by jurisdiction. In some countries and languages people commonly use the term \"security\" to refer to any form of financial instrument, even though the underlying legal and regulatory regime may not have such a broad definition. In some jurisdictions the term specifically excludes financial instruments other than equities and fixed-income instruments. In some jurisdictions it includes some instruments that are close to equities and fixed income, e.g., equity warrants.",
"info_url": "https://skills.emsidata.com/skills/KS680DR6QC1G86H8NYBK",
"type_id": "ST1",
"type_name": "Hard Skill"
},
"significance": 119.89026886137088,
"unique_postings": 2987
},
{
"skill": {
"id": 159,
"created": "2021-02-26T16:28:23.211533Z",
"modified": "2021-03-23T17:18:20.511619Z",
"external_id": "KS123Y170CZM0V5Z3XXB",
"name": "Financial Services",
"description": "",
"info_url": "https://skills.emsidata.com/skills/KS123Y170CZM0V5Z3XXB",
"type_id": "ST1",
"type_name": "Hard Skill"
},
"significance": 52.45900298889593,
"unique_postings": 5237
},
{
"skill": {
"id": 3446,
"created": "2021-03-11T22:09:18.464621Z",
"modified": "2021-03-15T14:27:46.046679Z",
"external_id": "KS123YS74NRDCKYXNS7Z",
"name": "Financial Industry Regulatory Authorities",
"description": "",
"info_url": "https://skills.emsidata.com/skills/KS123YS74NRDCKYXNS7Z",
"type_id": "ST1",
"type_name": "Hard Skill"
},
"significance": 12.739547451804325,
"unique_postings": 619
},
{
"skill": {
"id": 2334,
"created": "2021-03-11T22:04:18.375199Z",
"modified": "2021-03-15T14:22:53.139528Z",
"external_id": "KS44253607FYTYCJNMPZ",
"name": "Workplace Diversity",
"description": "",
"info_url": "https://skills.emsidata.com/skills/KS44253607FYTYCJNMPZ",
"type_id": "ST1",
"type_name": "Hard Skill"
},
"significance": 8.049648490659921,
"unique_postings": 229
},
{
"skill": {
"id": 183,
"created": "2021-02-26T16:49:37.629231Z",
"modified": "2021-08-03T06:20:03.927297Z",
"external_id": "KS121CX75Q8F638ZCJVZ",
"name": "Investments",
"description": "To invest is to allocate money in the expectation of some benefit in the future.",
"info_url": "https://skills.emsidata.com/skills/KS121CX75Q8F638ZCJVZ",
"type_id": "ST1",
"type_name": "Hard Skill"
},
"significance": 6.686575375167631,
"unique_postings": 1361
}
],
"created": "2021-03-01T00:04:39.398313Z",
"modified": "2021-03-16T00:04:44.054473Z",
"external_id": "ETB716DA673BC8BE08",
"name": "Financial Services Representative"
}
3.6. JobPostings List Endpoint#
GET call to the /jobpostings
endpoint returns a list of all the available JobPostings in the system.
3.6.1. Method and Endpoint#
Method |
Endpoint |
---|---|
GET |
|
3.6.2. Example Request#
curl -X GET \
https://discovery.edx.org/taxonomy/api/v1/jobpostings/ \
-H "Authorization: JWT {access token}"
3.6.3. Parameters#
You can use an optional page_size
parameter to specify the number of
records you want to load in a single page. If not provided the default of
20 is used for page_size. For example:
curl -X GET \
https://discovery.edx.org/taxonomy/api/v1/jobpostings/?page_size=10 \
-H "Authorization: JWT {access token}"
3.7. jobpostings/{jobpostings_id} Endpoint#
GET call to the jobpostings/{jobpostings_id}
endpoint returns information about a single JobPostings object.
In the GET call, The information returned is described in
JobPostings Fields.
3.7.1. Method and Endpoint#
Method |
Endpoint |
---|---|
GET |
|
3.7.2. Example Request#
curl -X GET \
https://discovery.edx.org/taxonomy/api/v1/jobpostings/14 \
-H "Authorization: JWT {access token}"
3.7.3. Response Values#
The GET https://discovery.edx.org/taxonomy/api/v1/jobpostings/{jobpostings_id}
request returns the response values described in JobPostings Fields.
3.7.4. Fields in a JobPostings Object#
Field |
Data Type |
Description |
---|---|---|
|
integer |
Unique identifier in edx system. It is Used to get detailed views. |
|
object |
The related job object. see Jobs Fields for job details. |
|
integer |
Median Salary for the post. |
|
integer |
Median posting duration for the post. |
|
integer |
Number of unique posting for the job. |
|
integer |
Number of unique companies offering the post. |
|
string |
object creation time. Example: “2021-02-23T11:01:08.164127Z”. |
|
string |
object modified time. Example: “2021-02-23T11:01:08.164127Z”. |
3.7.5. Example Response Showing Information about JobPostings#
The following example response shows a JobPostings List response.
{
"count": 216,
"next": "https://discovery.edx.org/taxonomy/api/v1/jobpostings/?page=6&page_size=3",
"previous": "https://discovery.edx.org/taxonomy/api/v1/jobpostings/?page=4&page_size=3",
"results": [
{
"id": 63,
"job": {
"id": 39,
"created": "2021-03-01T00:04:36.457661Z",
"modified": "2021-03-16T00:04:43.507558Z",
"external_id": "ETD8659FB16C6E7A79",
"name": "Team Member"
},
"created": "2021-03-10T00:04:50.051149Z",
"modified": "2021-08-25T00:01:44.399651Z",
"median_salary": 26048,
"median_posting_duration": 41,
"unique_postings": 85538,
"unique_companies": 3368
},
{
"id": 64,
"job": {
"id": 17,
"created": "2021-03-01T00:04:35.263889Z",
"modified": "2021-03-16T00:04:42.418874Z",
"external_id": "ET32340120BB9E6B7C",
"name": "Assistant Manager"
},
"created": "2021-03-10T00:04:50.066938Z",
"modified": "2021-08-25T00:01:44.420155Z",
"median_salary": 34496,
"median_posting_duration": 39,
"unique_postings": 85159,
"unique_companies": 4068
},
{
"id": 65,
"job": {
"id": 42,
"created": "2021-03-01T00:04:36.613092Z",
"modified": "2021-03-16T00:04:42.155163Z",
"external_id": "ET6659D06425508C0D",
"name": "Maintenance Technician"
},
"created": "2021-03-10T00:04:50.083016Z",
"modified": "2021-08-25T00:01:44.356245Z",
"median_salary": 41664,
"median_posting_duration": 34,
"unique_postings": 91321,
"unique_companies": 10701
}
]
}