With thousands of learning content in the Go1 library - it's important to build a content search and discovery process that will enable end-users to find the content they need as quickly and as easily as possible.
To assist users in discovering the most relevant content, we recommend implementing our content filters, using the learning-objects API endpoint. In this document, we'll introduce each of our filters, and provide implementation instructions for you to follow.
This document will cover the following filters:
The sort filter allows users to specify the order in which the set of content they are searching for will be returned. For example, you can sort the returned content by the most popular, the most relevant or in alphabetical order. Implementing a default sort preference and allowing users to select their own sorting preference is essential for providing users with the best content search and discovery process when using the Go1 API.
To apply the filter, the sort query parameter should be passed when making a GET request to the /v2/learning-objects API endpoint.
There are 4 primary sort options available:
When making a 'search' request by passing a keyword to /v2/learning-objects, we recommend setting the sort parameter to relevance. This will return the most relevant search results, and allow for the best end-user experience.
Here is an example request:
curl --request GET \ --url https://api.go1.com/v2/learning-objects?keyword=leadership&sort=relevance
Additionally, we recommend building your interface to allow end-users to select their own sort preferences. Refer to the screenshot at the top of this section for an example.
You can also specify the sorting direction - eg:
Refer to the API Reference for more detail on structuring your API call to /v2/learning-objects.
The topics filter allows users to narrow their search to a particular subject matter, skill or learning category within the Go1 library.
Building the topics filter using the API is a two-step process.
We'll walk through both of these steps in greater detail below.
Step 1: Retrieve a list of topics
To retrieve a list of available topics, make a GET request to /v2/learning-objects and include the following query parameters:
Here is an example request:
curl --request GET \ --url https://api.go1.com/v2/learning-objects?limit=0&facets=topics
Example response - note, we have removed most of the available topics in the below example to keep the response short:
{ "total": 74665, "hits": [], "facets": { "instance": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ {{A LIST OF PROVIDERS WILL BE DISPLAYED HERE}} ] }, "topics": { // the object containing all of the available topics "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": "Technology Skills", // the topic name "doc_count": 41559 // number of content in this topic }, { "key": "Business Skills", "doc_count": 19165 } ] }, "tag": { "buckets": [] }, "collection_id": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": 0, "doc_count": 0 } ] } } }
You'll notice that the response message includes a "topics" object in the JSON construct. This topics object will include a list of all available topics in the Go1 library. You'll use these topics in the next step.
Step 2: Request a list of content within a selected topic
With the list of topics returned in step 1, you are now ready to construct a request to the API to return a list of content from a selected topic. This is done by making a GET request to /v2/learning-objects, and by including the topics[] parameter to pass in the selected topic.
Here is an example request:
curl --request GET \ --url https://api.go1.com/v2/learning-objects?topics[]=Technology Skills
The response will include a list of learning objects from the 'Technology Skills' topic.
Note, you can combine the above method with the keyword parameter to return a keyword search for content within that particular topic. Refer to the API Reference for more detail on structuring your API call to /v2/learning-objects.
Providers represent the 'authors' or 'creators' of the Go1 learning content. We currently work with over 100 different content providers around the world, each with its unique learning modalities, style and delivery methods. Filtering by providers will allow end-users the ability to more easily segment and discover content from their preferred creators.
Building the providers filter using the API is a two-step process.
We'll walk through both of these steps in greater detail below.
Step 1: Retrieve a list of providers (provider ID's)
To retrieve a list of providers and their associated ID's, make a GET request to /v2/learning-objects and include the following query parameters:
Here is an example request:
curl --request GET \ --url https://api.go1.com/v2/learning-objects?limit=0&facets=instance
Example response, note - we have removed the majority of providers in this example to keep the response short:
{ "total": 74666, "hits": [], "facets": { "instance": { // this is the object containing all of the providers "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": 4878185, // this is the provider ID "doc_count": 28004, // number of content the provider has "name": "CreativeLive" // the providers name }, { "key": 3988776, "doc_count": 7438, "name": "BizLibrary" } ] }, "tag": { "buckets": [] }, "collection_id": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": 0, "doc_count": 0 } ] } } }
You'll notice that the response message includes an "instance" object in the JSON construct. This instance object will include a list of all available providers in the Go1 library. The "key" value is the provider ID, which will be used to return a list of content from a specific provider in the next step.
Step 2: Request a list of content from a selected provider
With the list of provider ID's returned in step 1, you are now ready to construct a request to the API to return a list of content from a selected provider. This is done by making a GET request to /v2/learning-objects, including the providers parameter to pass in the selected provider ID.
Here is an example request:
curl --request GET \ --url https://api.go1.com/v2/learning-objects?providers=3988776
The response will include a list of learning objects from the provider you have specified, in this instance the provider '3988776' which is BizLibrary.
Note, you can combine the above method with the keyword parameter to return a keyword search for content within that particular topic. Refer to the API Reference for more detail on structuring your API call to /v2/learning-objects.
The Go1 library has content available across a range of various languages. The language filter allows users to filter their content searches to find content from a specific language of their choice.
Building the language filter using the API is a two-step process.
We'll walk through both of these steps in greater detail below.
Step 1: Retrieve a list of available languages
To retrieve a list of available languages, make a GET request to /v2/learning-objects and include the following query parameters:
Here is an example request:
curl --request GET \ --url https://api.go1.com/v2/learning-objects?limit=0&facets=language
Example response - note, we have removed the majority of languages in this example to keep the response short:
{ "total": 74665, "hits": [], "facets": { "instance": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ {{A LIST OF PROVIDERS WILL BE DISPLAYED HERE}} ] }, "language": { // object containing the list of languages "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": "en", // this is the language "doc_count": 72620 // number of content available }, { "key": "es", "doc_count": 1111 } ] }, "tag": { "buckets": [] }, "collection_id": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": 0, "doc_count": 0 } ] } } }
You'll notice that the response message includes a "language" object in the JSON construct. This language object will include a list of all available languages in the Go1 library. The "key" value is the language in lower-case two-letter ISO 639-1 codes. You'll use these key values to return content from selected languages in step 2 below.
Step 2: Request a list of content from a selected language
With the list of languages returned in step 1, you are now ready to construct a request to the API to return a list of content from a selected language. This is done by making a GET request to /v2/learning-objects, including the language[] parameter to pass in the selected language key value in lower-case two-letter ISO 639-1 codes.
Here is an example request:
curl --request GET \ --url https://api.go1.com/v2/learning-objects?language[]=es
The response will include a list of learning objects in the language you have specified, in this instance the language 'es' which is Español (Spanish).
Note, you can combine the above method with the keyword parameter to return a keyword search for content within that particular topic. Refer to the API Reference for more detail on structuring your API call to /v2/learning-objects.
The duration filter allows users to find content that is within a specified duration. There are two query parameters required to filter by duration:
An example request filtered by duration may look like the below, where a user wishes to find a 'Project Management' course that is less than 30 minutes long:
curl --request GET \ --url https://api.go1.com/v2/learning-objects?limit=20&keyword=Project Management&duration[min]=0&duration[max]=30
If the user would like to extend the duration range to courses between 30 to 60 minutes, the request might look like the following:
curl --request GET \ --url https://api.go1.com/v2/learning-objects?limit=20&keyword=Project Management&duration[min]=30&duration[max]=60
There is also support for multiple duration ranges. A request with multiple duration ranges would look like the following: duration[0][min]=0&duration[0][max]=15&duration[1][min]=60.
Note, you can combine the above method of filtering by duration with the keyword parameter to return a keyword search for content within a particular duration band. Refer to the API Reference for more detail on structuring your API call to /v2/learning-objects.