Go1 Learning objects API
The Learning objects API from Go1 — 5 operation(s) for learning objects.
The Learning objects API from Go1 — 5 operation(s) for learning objects.
openapi: 3.0.3
info:
title: Go1 Enrollments Learning objects API
version: '2025-01-01'
description: 'The Go1 API lets partners and platforms discover Go1''s learning content library, manage learner enrollments, provision and manage customer portals, and subscribe to Go1 events via webhooks. Versioning is date-based and selected per request with the `Api-Version` header (current: 2025-01-01). All requests are authenticated with OAuth 2.0 bearer tokens issued by https://auth.go1.com/oauth/token. Reconstructed by the API Evangelist enrichment pipeline from Go1''s published REST reference (developers.go1.com) — operations, parameters, responses and scopes are Go1''s verbatim reference data.'
contact:
name: Go1 Developer Support
url: https://developers.go1.com/
termsOfService: https://www.go1.com/terms/customer-terms
servers:
- url: https://gateway.go1.com
description: Go1 API gateway (production)
security:
- OAuth2: []
tags:
- name: Learning objects
paths:
/learning-objects/{id}/alternatives:
get:
security:
- OAuth2:
- portal.read
- lo.read
operationId: getRetiringContentAlternatives
summary: List alternative learning objects
description: Returns a list of alternative learning objects for a specified learning object. You can refine the list by specifying a `type` parameter. For example, setting `type=retirement` will return alternative learning objects recommended as replacements for the specified learning object that is retiring from the library.
parameters:
- name: authorization
required: true
in: header
schema:
type: string
- name: id
required: true
in: path
description: The id of the learning object
example: 1234
schema:
type: string
- name: type
required: false
in: query
description: "Specifies the type of alternative learning objects to retrieve. \n\n The available values are: \n- `retirement`: for alternatives recommended as replacements for retiring content from the Go1 content library. \n\n Default value is `retirement`."
schema:
default: retirement
enum:
- retirement
- name: limit
required: false
in: query
description: A limit on the number of objects to be returned, between 1 and 100. The default is 10.
example: 10
schema:
type: number
format: int64
default: 10
- name: offset
required: false
in: query
description: For use in pagination. The item number within a list request to start displaying results after. For example, a request with `limit=20` and `offset=20`, returns items 21 - 40.
example: 20
schema:
format: int64
default: 0
type: number
responses:
'200':
description: Returns the list of alternatives
content:
application/json:
schema:
required:
- total
- hits
type: object
properties:
total:
type: number
description: Total number of alternative learning objects matching the specified criteria.
example: 50
hits:
type: array
items:
type: integer
description: An array of IDs representing the alternative learning objects recommended as replacements for the specified learning object. The array is sorted by relevance, with the most relevant items appearing first.
example:
- 123
- 456
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'500':
description: Internal Server Error
'503':
description: Service Unavailable
tags:
- Learning objects
/learning-objects/{id}:
get:
description: Retrieves the details of a Learning Object by either id (uuid) or our legacy lo_id (integer). By default, only the `core` set of fields is returned. Use the `include[]` query parameter to retrieve additional information about the Learning Object, such as `pricing`, `lifecycle` or `relevance`.
operationId: learning-objects-v3-get
parameters:
- name: id
required: true
in: path
description: Unique identifier of the Learning Object
schema:
type: string
- name: identifier
required: false
in: query
description: 'The `identifier` query parameter allows you to specify the identifier you would like to use when looking up a Learning Object. The available values are:- `external_id`: The API will consider the supplied {id} as the external_id, and will look up the Learning Object that corresponds to the provided external_id.'
schema:
example: external_id
type: string
enum:
- external_id
- name: include[]
required: false
in: query
description: 'Returns extended information related to the Learning Object. Enum:
- `core`, returns the `core` object.
- `pricing`, returns the `pricing` object.
- `lifecycle`, returns the `lifecycle` object.
- `relevance`, returns the `relevance` object.
- `skills`, returns the `skills` object.
- `quality`, returns the `quality` object.
- `provider`, returns the `provider` object.
- `protected`, returns the `protected` object.
- `playback_behavior`, returns the `playback_behavior` object.
- `images`, returns the `images` object.
- `preview`, returns the `preview` object.
- `tags`, returns the `tags` object.
- `topics`, returns the `topics` object.
- `offerings`, returns the `offerings` object.
- `revisions`, returns the `revisions` object.
- `presentation`, returns the `presentation` object.
- `accessibility`, returns the `accessibility` object. If the `include[]` parameter is not supplied, the `core` fields will be returned by default. See the response schema for a list of fields that can be expected with each of the objects defined above.'
schema:
default: core
type: array
items:
type: string
enum:
- alternatives
- core
- images
- lifecycle
- playback_behavior
- offerings
- preview
- pricing
- protected
- provider
- quality
- relevance
- skills
- tags
- topics
- revisions
- generated_metadata
- presentation
- timestamps
- regulations
- restrictions
- accessibility
- categories
- name: preferred_language
required: false
in: query
description: The language in which the Learning Object is presented. ISO-639-1 language code format, with an optional ISO-3166 two character country code, separated by a hyphen.
schema:
example: en-US
type: string
responses:
'200':
description: The requested Learning Object
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: A new globally unique identifier for the Learning Object. The previous `id` and `lo_id` fields will become a `legacy_id` in future API versions.
example: con_01HBYXF3HYPTG5Q1RJ7BPFAF23
lo_id:
type: string
description: The unique identifier for the Learning Object.
example: '1234'
updated_time:
type: string
description: The date and time when the Learning Object was last updated. In [UTC timezone](https://en.wikipedia.org/wiki/Coordinated_Universal_Time), stored in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601).
example: '2023-05-19T05:13:30.827Z'
created_time:
type: string
description: The date and time when the Learning Object was created. In [UTC timezone](https://en.wikipedia.org/wiki/Coordinated_Universal_Time), stored in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601).
example: '2023-05-19T05:13:30.827Z'
updated_media_time:
type: string
description: The date and time when the Learning Object had its media updated. In [UTC timezone](https://en.wikipedia.org/wiki/Coordinated_Universal_Time), stored in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601).
example: '2023-05-19T05:13:30.827Z'
updated_metadata_time:
type: string
description: The date and time when the Learning Object had its metadata updated. In [UTC timezone](https://en.wikipedia.org/wiki/Coordinated_Universal_Time), stored in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601).
example: '2023-05-19T05:13:30.827Z'
core:
description: The minimum core or essential information about the Learning Object, such as its title, description and image.
allOf:
- type: object
properties:
creators:
description: An array containing the Account id (guid) of the Go1 user(s) who created the Learning Object.
example:
- usr_01HBYXG21DRXDQ6XBNMDJ8WTMH
- usr_01HBYXGCF2HYX5925YBKPMS4TA
type: array
items:
type: string
type:
type: string
description: 'The Learning Object type. Enum: course, group, playlist, module, assignment, audio, document, event, interactive, manual, link, lti, question, quiz, text, video'
enum:
- course
- group
- playlist
- module
- assignment
- audio
- document
- event
- interactive
- manual
- link
- lti
- question
- quiz
- text
- video
example: course
title:
type: string
description: The title or name of the Learning Object.
example: Introduction to Programming
description:
type: string
description: A brief description or overview of the Learning Object.
example: Learn the basics of programming with this comprehensive course.
image:
description: The URL of a thumbnail image associated with the Learning Object.
allOf:
- type: object
properties:
key:
type: string
description: A unique key for the media.
value:
type: string
description: 'Stores the actual media or a representation of the resource the media is referring to. For example, depending on the context the content of the value can be:- Direct Link: If the resource is externally hosted, ''value'' can contain a URL or URI pointing to the location where the resource is accessible.- Raw Data: For resources that are self-contained or need to be stored within the object for immediate access, ''value'' can hold the raw data directly.- Reference Identifier: In scenarios where the resource is part of a larger dataset or system, value can contain an identifier that uniquely points to the resource within that context.'
mimetype:
type: string
description: MIME type for the media.
features:
description: Describes specific options that are available for the media asset, where each property is a boolean indicating support for an individual feature.
allOf:
- type: object
properties:
downloadable:
type: boolean
description: Indicates whether the asset is available for download
example: true
required:
- key
- value
- mimetype
external_id:
type: string
description: An external source identifier from where the content originated.
example: course123
provider_id:
type: string
description: The identifier for the content provider’s portal, where the learner object was created.
example: '9876'
standalone:
type: boolean
description: Flag to indicate if this Learning Object is a standalone item or not. Possible values `0` or `1`.
example: true
required:
- creators
- type
- title
- description
- image
- external_id
- provider_id
- standalone
lifecycle:
description: Information related to the various stages and statuses that the Learning Object may go through during its lifecycle.
allOf:
- type: object
properties:
state:
type: string
description: The state of the content in coherence with the Go1 Content Lifecycle.
example: published
enum:
- draft
- published
- retired
- removed
pending_state:
description: Pending state transitions.
allOf:
- type: object
properties:
removed_time:
format: date-time
type: string
description: The date and time at which the Learning Object will be (or was) removed. In [UTC timezone](https://en.wikipedia.org/wiki/Coordinated_Universal_Time), stored in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601).
example: '2023-05-19T05:13:30.827Z'
retired_time:
format: date-time
type: string
description: The date and time when the Learning Object is scheduled for decommissioning. In [UTC timezone](https://en.wikipedia.org/wiki/Coordinated_Universal_Time), stored in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601).
example: '2023-05-19T05:13:30.827Z'
required:
- state
relevance:
description: Descriptive information to aid the consumer in understanding the relevance of this Learning Object for them.
allOf:
- type: object
properties:
duration:
type: number
description: The duration of the Learning Object in minutes.
example: 180
language:
type: string
description: 'The language in which the Learning Object is presented. ISO-639-1 language code format, with an optional ISO-3166 two character country code, separated by a hyphen. For example: ''en'', ''en-US'', ''en-GB, ''es''.'
example: en
year_created:
type: number
description: The year in which the Learning Object was created.
example: 2022
summary:
type: string
description: 'A brief summary of the content. Max length: 120 characters.'
example: This course provides an intro to programming concepts and techniques.
entry_level:
type: string
description: The level of experience this Learning Object is intended for. Possible values are `Intermediate`, `Beginner`, `Advanced`, `Suitable for everyone`.
example: Intermediate
learning_outcomes:
description: Intended learning outcomes or objectives that learners can expect to achieve upon completing the Learning Object.
example:
- Understand the fundamental concepts of object-oriented programming
- Create classes and objects in Python
type: array
items:
type: string
region:
description: Regions in which Learning Object is available for consumption. If set to `GLOBAL`, it can be consumed throughout the globe. Available regions mapped to their key:- `495 - GLOBAL`, `496 - AU`, `497 - US`, `498 - GB`, `499 - NZ`, `500 - MY`, `501 - ZA`, `515 - CA`, `516 - UAE`
example:
- GLOBAL
- AU
type: array
items:
type: string
locale:
description: 'The regional accent of the audio in the content. Values include: `en-AU`, `en-US`, `en-UK`.'
example:
- en-AU
- en-US
type: array
items:
type: string
author:
description: The name of the Author of this content.
allOf:
- type: object
properties:
name:
type: string
description: The name of the author of this content
about:
type: string
description: A short summary of the author for this content
required:
- name
- about
who_should_consume:
type: string
description: Short description of the target audience for this content
is_compliance:
type: boolean
description: Indicates whether the Learning Object is classified as compliance training.
required:
- language
tags:
description: Descriptive tags associated with the Learning Object.
allOf:
- type: object
properties:
items:
description: An array of descriptive tags associated with the Learning Object.
type: array
items:
type: string
required:
- items
topics:
description: The [topics](https://help.go1.com/en/articles/6767512-topics-taxonomy) associated with the Learning Object.
allOf:
- type: object
properties:
items:
description: The list of topics
example:
- id: 64
name: Technology Skills
- id: 17
name: IT Software
- id: 110
name: Microsoft Products
type: array
items:
type: object
properties:
id:
type: number
description: The topic ID
name:
type: string
description: The topic name
required:
- id
- name
required:
- items
protected:
description: Information that allows Go1 to consume the Learning Object.
oneOf:
- type: object
properties:
can_mark_as_complete:
type: boolean
description: Whether or not a Learning Object can be marked as complete by a user without completing it.
example: true
media:
description: Contains the media data of the Learning Object.
type: array
items:
type: object
properties:
key:
type: string
description: A unique key for the media.
value:
type: string
description: 'Stores the actual media or a representation of the resource the media is referring to. For example, depending on the context the content of the value can be:- Direct Link: If the resource is externally hosted, ''value'' can contain a URL or URI pointing to the location where the resource is accessible.- Raw Data: For resources that are self-contained or need to be stored within the object for immediate access, ''value'' can hold the raw data directly.- Reference Identifier: In scenarios where the resource is part of a larger dataset or system, value can contain an identifier that uniquely points to the resource within that context.'
mimetype:
type: string
description: MIME type for the media.
features:
description: Describes specific options that are available for the media asset, where each property is a boolean indicating support for an individual feature.
allOf:
- type: object
properties:
downloadable:
type: boolean
description: Indicates whether the asset is available for download
example: true
required:
- key
- value
- mimetype
description: audio type Learning Object
required:
- media
- type: object
properties:
can_mark_as_complete:
type: boolean
description: Whether or not a Learning Object can be marked as complete by a user without completing it.
example: true
media:
description: Contains the media data of the Learning Object.
type: array
items:
type: object
properties:
key:
type: string
description: A unique key for the media.
value:
type: string
description: 'Stores the actual media or a representation of the resource the media is referring to. For example, depending on the context the content of the value can be:- Direct Link: If the resource is externally hosted, ''value'' can contain a URL or URI pointing to the location where the resource is accessible.- Raw Data: For resources that are self-contained or need to be stored within the object for immediate access, ''value'' can hold the raw data directly.- Reference Identifier: In scenarios where the resource is part of a larger dataset or system, value can contain an identifier that uniquely points to the resource within that context.'
mimetype:
type: string
description: MIME type for the media.
features:
description: Describes specific options that are available for the media asset, where each property is a boolean indicating support for an individual feature.
allOf:
- type: object
properties:
downloadable:
type: boolean
description: Indicates whether the asset is available for download
example: true
required:
- key
- value
- mimetype
description: document type Learning Object
required:
- media
- type: object
properties:
can_mark_as_complete:
type: boolean
description: Whether or not a Learning Object can be marked as complete by a user without completing it.
example: true
id:
type: string
description: Id of interactive
example: '12345'
status:
type: string
enum:
- processing
- ready
- error
description: Status of the async job for the interactive import.
example: ready
error_message:
type: string
description: Error message of the async job for the interactive import.
example: Not found
description: interactive type Learning Object
required:
- id
- status
- type: object
properties:
can_mark_as_complete:
type: boolean
description: Whether or not a Learning Object can be marked as complete by a user without completing it.
example: true
media:
description: Contains the media data of the Learning Object.
type: array
items:
type: object
properties:
key:
type: string
description: A unique key for the media.
value:
type: string
description: 'Stores the actual media or a representation of the resource the media is referring to. For example, depending on the context the content of the value can be:- Direct Link: If the resource is externally hosted, ''value'' can contain a URL or URI pointing to the location where the resource is accessible.- Raw Data: For resources that are self-contained or need to be stored within the object for immediate access, ''value'' can hold the raw data directly.- Reference Identifier: In scenarios where the resource is part of a larger dataset or system, value can contain an identifier that uniquely points to the resource within that context.'
mimetype:
type: string
description: MIME type for the media.
features:
description: Describes specific options that are available for the media asset, where each property is a boolean indicating support for an individual feature.
allOf:
- type: object
properties:
downloadable:
type: boolean
description: Indicates whether the asset is available for download
example: true
required:
- key
- value
- mimetype
open_mode:
type: string
enum:
- iframe
- window
- dynamic
description: How the interactive should be opened, iframe inside iframe or window inside iframe.
example: iframe
integration:
type: boolean
description: Flag to indicate that the LO is integrated content.
example: false
check_url:
type: string
description: A URL that will be polled when the content is being consumed.
example: https://example.com/contentdata/12345
authentication_type:
type: string
description: Type of authentication used to get info about a learning content.
enum:
- saml
# --- truncated at 32 KB (197 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/go1/refs/heads/main/openapi/go1-learning-objects-api-openapi.yml