Skip to main content
https://.thoughtindustries.com

Get Asset Library Item

Fetch a single Asset Library item by ID, including processingStatus for async ingest.

Returns a single Asset Library item by ID. Poll this endpoint after creating a SCORM or xAPI item until processingStatus is ready or failed.

GEThttps://example.thoughtindustries.com/v3/assetLibraryItems/:id

This endpoint is served by the v3 API. Its full path is https://{instance}.thoughtindustries.com/v3/assetLibraryItems/{id}, not the /incoming/v2 base URL used by the rest of this reference. Use the full URL shown in the examples below.

Example request

curl "https://{instance}.thoughtindustries.com/v3/assetLibraryItems/443d8182-d461-4568-a777-918ca729fd85" \
  -H 'Authorization: Bearer YOUR_API_KEY'

Parameters

Requires a manager session or a company API key. List and get do not require an additional centrallibrary permission.

NameTypeRequiredLocationDescription
iduuidYespathAsset Library item ID.

Example response

Note the data wrapper — v3 endpoints nest their payload under data.

{
  "data": {
    "id": "443d8182-d461-4568-a777-918ca729fd85",
    "title": "Test SCORM Asset",
    "assetType": "scorm",
    "description": "A test SCORM package for API validation",
    "body": "3a131ac3-1a74-420d-b4da-ae10b18b2c68/443d8182-d461-4568-a777-918ca729fd85-1787775595630.zip",
    "contentType": "SCORM20042NDEDITION",
    "fileName": "golf-scorm-2004.zip",
    "tagIds": [],
    "version": 1,
    "locationIds": [],
    "imageAltText": null,
    "imageCaption": null,
    "imageLink": null,
    "imageNewTab": false,
    "imageTitle": null,
    "isNew": true,
    "processingStatus": "ready",
    "createdAt": "2026-08-26T20:19:55.000Z",
    "updatedAt": "2026-08-26T20:20:01.000Z"
  }
}

While a SCORM or xAPI package is still ingesting, processingStatus is pending or processing and body is null. Do not treat a 200 with body: null as a finished upload — keep polling.

{
  "data": {
    "id": "c43e5367-577f-4bde-95c8-09dea5b414ba",
    "title": "Test SCORM Asset",
    "assetType": "scorm",
    "processingStatus": "pending",
    "body": null,
    "contentType": null,
    "fileName": "golf-scorm-2004.zip",
    "tagIds": [],
    "version": 1,
    "locationIds": [],
    "imageAltText": null,
    "imageCaption": null,
    "imageLink": null,
    "imageNewTab": false,
    "imageTitle": null,
    "isNew": true,
    "description": "A test SCORM package for API validation",
    "createdAt": "2026-08-26T18:44:57.972Z",
    "updatedAt": "2026-08-26T18:44:57.972Z"
  }
}

Response fields

FieldTypeDescription
data.iduuidAsset Library item ID.
data.titlestring | nullDisplay title.
data.assetTypestring | nullStored type: image, wysiwyg, resource_file, scorm, xapi, or certificateTemplate.
data.descriptionstring | nullOptional description.
data.bodystring | nullStored file location after ingest. null until processing finishes, and always null for wysiwyg.
data.contentTypestring | nullMIME type, or a SCORM learning-standard label.
data.fileNamestring | nullOriginal file name.
data.tagIdsuuid[]Associated tag IDs.
data.versioninteger | nullAsset version.
data.locationIdsuuid[]Locations linked to the item.
data.imageAltTextstring | nullImage alt text. Meaningful only when assetType is image.
data.imageCaptionstring | nullImage caption.
data.imageLinkstring | nullImage click-through URL.
data.imageNewTabbooleanWhether the image link opens in a new tab.
data.imageTitlestring | nullImage title attribute.
data.isNewbooleanAuthor-side "new asset" badge.
data.processingStatusstringpending, processing, ready, or failed.
data.createdAtdatetimeCreation timestamp (ISO 8601).
data.updatedAtdatetimeLast update timestamp (ISO 8601).

Errors

A missing item, a soft-deleted item, a prior revision, or an ID that belongs to another instance returns 404. The message names the ID. There is no existence leak across tenants — every miss looks the same.

{
  "code": "RESOURCE_NOT_FOUND",
  "message": "AssetLibraryItem with identifier \"443d8182-d461-4568-a777-918ca729fd85\" was not found",
  "category": "NOT_FOUND",
  "timestamp": "2026-08-26T18:44:57.972Z",
  "statusCode": 404,
  "metadata": {
    "resource": "AssetLibraryItem",
    "identifier": "443d8182-d461-4568-a777-918ca729fd85"
  }
}

A path id that is not a UUID returns 400 with code: "BAD_REQUEST" and category: "CLIENT_ERROR". message names the problem. timestamp and statusCode are always present; metadata.errors is present when ValidationPipe rejected a constraint. A missing or invalid API key returns 401 with code: "UNAUTHENTICATED".

Rate limit

200 requests per 60 seconds, counted per instance. This limit is specific to the Asset Library controller and is independent of the per-family rate limits that apply to /incoming/v2 endpoints.