Retrieves a specific content item by its ID. An archived content item is returned with status: archived; the list endpoint returns the same items through its statuses filter.
HTTP Basic authentication using your Tenant ID and API secret.
- Username is the Tenant ID (i.e.
eu-west-2_AbcdEfghI) - Password is the API secret you would have received.
You can also authenticate using OAuth 2.0 client credentials (oauth2 security scheme) instead of Basic auth.
OAuth 2.0 client credentials authentication.
Use the following token endpoints (replace :tenantId with your Tenant ID):
Public API access tokens
- Staging:
https://public.api.learnstaging.link/oauth2/token/:tenantId - Production:
https://public.api.learn.link/oauth2/token/:tenantId - Staging MEA:
https://public.api.meastaging.learn.tech/oauth2/token/:tenantId - Production MEA:
https://public.api.mea.learn.tech/oauth2/token/:tenantId
- Staging:
Webhooks access tokens
- Staging:
https://user.api.learnstaging.link/oauth2/token/:tenantId - Production:
https://user.api.learn.link/oauth2/token/:tenantId - Staging MEA:
https://user.api.meastaging.learn.tech/oauth2/token/:tenantId - Production MEA:
https://user.api.mea.learn.tech/oauth2/token/:tenantId
- Staging:
All access tokens must be sent using the Authorization: Bearer <access_token> header.
Scopes
For API access (non-webhooks), the following scopes are available:
api/all– Full read and write access to the API.api/read– Read-only access to the API.api/write– Write access to the API.
For webhooks, the following scopes are available:
api/webhooks– Access to webhook functionality.api/all– Full read and write access to the API, including webhooks.
Tokens must include appropriate scopes for the endpoints you wish to call.
Unique identifier of the content item
Successful response
{
"id": "507f1f77bcf86cd799439011",
"title": "Thrive Customer Journey",
"description": "This diagram highlights the key things you may experience on your journey as a customer of Thrive's LXP
",
"tags": [
"customer journey",
"faq",
"customer success",
"lxp"
],
"skills": [
"customer success"
],
"topics": [
"customer journey",
"faq"
],
"type": "file",
"createdAt": "2019-02-18T17:42:11.708Z",
"updatedAt": "2020-02-20T13:16:22.840Z",
"author": "5c69be0e3a38412f022b4719",
"isOfficial": true,
"status": "published",
"duration": {
"value": 15,
"unit": "minutes"
},
"contentHistory": [
{
"action": "published",
"timestamp": "2020-02-20T12:00:00.000Z",
"performedBy": {
"type": "user",
"value": "5c69be0e3a38412f022b4719"
}
}
],
"lastUpdatedBy": {
"id": "5c69be0e3a38412f022b4719",
"email": "author@example.com",
"reference": null
},
"provider": {
"id": "thrive",
"name": "Thrive"
}
}Unique identifier for the content
Title of the content
Detailed description of the content, may contain HTML
List of tags associated with this content. Omitted when the tag source cannot be read, so an absent field means "tags unavailable" rather than "no tags".
The tags entries that the taxonomy marks as a skill. Additive: every name is also in tags. A tag the taxonomy does not hold is in neither skills nor topics. Both fields are absent when the taxonomy cannot be read.
The tags entries that the taxonomy marks as a topic. Additive: every name is also in tags. A tag the taxonomy does not hold is in neither topics nor skills. Both fields are absent when the taxonomy cannot be read.
The kind of artifact associated with this content record.
Courses are represented as pathway. Pathways will be served by a dedicated Pathways API in a future release and will stop appearing on this endpoint at that point, so treat pathway as temporary here.
Timestamp when the content was created
Timestamp when the content was last updated
User ID who authored this content. Nullable for auto-curated content.
Whether the content has been recognized for its importance or validity by the customer organization
The CPD category the content is recorded against, or null when it has none. Present when a record is read by its id or returned by a v2 create or update, for content held by the content source that carries CPD data. The field is not present in the results of the list endpoint, nor on a record that exists only in the legacy content source.
The expected time to complete the content. Null for Event content types. For SAP-imported content, this value may reflect a system default rather than a precise measured duration.
Duration in the specified unit. Null when no duration is available (e.g. pathways).
The unit of the duration value. Always 'minutes'.
Chronological history of actions on this content (from content-service). May be empty when there is no recorded history.
Type of change or event recorded for the content.
When the action occurred.
Kind of actor (for example user or system).
Identifier or value associated with the actor.
Last actor who updated the content, derived from history (or author fallback). Null when neither history nor author resolves.
User ID or service identifier.
Email from the user view when available.
External reference (e.g. HR id) when stored on the user view.
The content provider. Defaults to Thrive for natively created content.
Provider identifier key.
Human-readable provider display name.
Lifecycle status of the content. A legacy (content-service) record derives the value: archived content reports archived, content with a publish time reports published, and all other content reports created. A content-core record maps its lifecycle status onto the same values, where draft and ready both report created. deleted is a filter value only and is never returned: a legacy record returned by a deleted status filter reports its pre-deletion state, and a deleted content-core record is physically gone.
The items that make up a content record, with per-item processing state. Only GET /contents/{id} returns this field, and only for records served from content-core; the GET /contents list never includes it.
One item within a content record, with its processing state.
Unique identifier for the item
The item type
The item's position within the content, lowest first
A short label for the item, shown to learners
The item's processing state. An item must reach ok before the content can become ready.
Why processing failed, when status is error
Unauthorized
Unauthorized
Content not found
The upstream content source rate-limited the read. The Retry-After header carries the backoff hint when the upstream response included one.
Upstream content source failure. Returned when the content-core read fails with an error other than not-found, or when the content-service fallback read fails.