Media
Search media by the given query parameters. If multiple options are provided, we will use a logical AND operation when searching!
Substring of the media title you want to search for.
Minimum size of the media in bytes.
Maximum size of the media in bytes.
Start of the creation date (inclusive). Format: YYYY-MM-DD.
End of the creation date (inclusive). Format: YYYY-MM-DD.
Start of the last viewed date (inclusive). Format: YYYY-MM-DD.
End of the last viewed date (inclusive). Format: YYYY-MM-DD.
Start of the last viewed by student date (inclusive). Format: YYYY-MM-DD.
End of the last viewed by student date (inclusive). Format: YYYY-MM-DD.
Email address of the owner of the media.
The full name of the tag, you want to list media objects for.
The source of the media you want to list media objects for.
The page to retrieve. Default: 1.
1
The number of results per page. Default: 20, Max: 50.
20
The list of media objects that matched the given query.
Authorization information is missing or invalid.
Invalid parameters.
GET /api/public/v1/media/search HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
{
"media": [
{
"id": 1,
"title": "text",
"description": "text",
"duration": 1,
"created_at": "2025-08-25T07:31:11.261Z",
"last_viewed": "2025-08-25",
"last_viewed_by_student": "2025-08-25",
"thumbnail_url": "text",
"transcoding_status": "text",
"owner": {
"id": 1,
"full_name": "text",
"display_name": "text",
"email": "text"
},
"size": 1,
"source": "text",
"embed_id": "text",
"lti_launch_id": "text"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"total_count": 1
}
}
The ID of the media.
The media object that was requested.
Authorization information is missing or invalid.
If a user without proper permissions tries to call this endpoint, the call is rejected with 403 Forbidden.
The media ID was not found.
GET /api/public/v1/media/{media_id} HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
{
"media": {
"id": 1,
"title": "text",
"description": "text",
"duration": 1,
"created_at": "2025-08-25T07:31:11.261Z",
"last_viewed": "2025-08-25",
"last_viewed_by_student": "2025-08-25",
"thumbnail_url": "text",
"transcoding_status": "text",
"owner": {
"id": 1,
"full_name": "text",
"display_name": "text",
"email": "text"
},
"size": 1,
"source": "text",
"embed_id": "text",
"lti_launch_id": "text",
"collection": {
"id": 1,
"name": "text",
"type": "text",
"permission": "text",
"owner": {
"id": 1,
"full_name": "text",
"display_name": "text",
"email": "text"
},
"created_at": "2025-08-25T07:31:11.261Z",
"course_id": 1
}
}
}
The ID of the media.
The media object that was deleted.
Authorization information is missing or invalid.
If a user without proper permissions tries to call this endpoint, the call is rejected with 403 Forbidden.
The media ID was not found.
DELETE /api/public/v1/media/{media_id} HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
{
"media": {
"id": 1,
"title": "text",
"description": "text",
"duration": 1,
"created_at": "2025-08-25T07:31:11.261Z",
"last_viewed": "2025-08-25",
"last_viewed_by_student": "2025-08-25",
"thumbnail_url": "text",
"transcoding_status": "text",
"owner": {
"id": 1,
"full_name": "text",
"display_name": "text",
"email": "text"
},
"size": 1,
"source": "text",
"embed_id": "text",
"lti_launch_id": "text",
"collection": {
"id": 1,
"name": "text",
"type": "text",
"permission": "text",
"owner": {
"id": 1,
"full_name": "text",
"display_name": "text",
"email": "text"
},
"created_at": "2025-08-25T07:31:11.261Z",
"course_id": 1
}
}
}
The ID of the media.
The list of courses that were requested.
Authorization information is missing or invalid.
If a user without proper permissions tries to call this endpoint, the call is rejected with 403 Forbidden.
The media was not found by ID.
Invalid media_id is provided.
GET /api/public/v1/media/{media_id}/courses HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
{
"courses": [
{
"id": 1,
"name": "text",
"embedded_at": "2025-08-25T07:31:11.261Z"
}
]
}
Adds a Media to a Course Collection for the given course_id. Returns the URL to LTI-launch the embedded media.
The ID of the media.
An object containing the necessary information for embedding the media
Id of the course to embed the media in.
The type of the embed. Studio uses "embed" to create embedding with media tabs and "bare_embed" to create one with only the media player.
A flag that controlls if the embedded media should be downloadable or not.
The URL to LTI-launch the embedded media. Please note that the URL in the result will work only if it is called with the proper LTI params.
Authorization information is missing or invalid.
If a user without proper permissions tries to call this endpoint, the call is rejected with 403 Forbidden.
The media was not found by ID.
Invalid media_id is provided.
POST /api/public/v1/media/{media_id}/create_embed HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 55
{
"course_id": 1,
"embed_type": "text",
"downloadable": true
}
{
"embed_url": "text"
}
The ID of the media.
The quality the user wants to download
Redirects to the Notorious URL from where the media can be downloaded. The URL is only valid for 24 hours.
Authorization information is missing or invalid.
If a user without permission tries to call this endpoint, the call is rejected with 403 Forbidden.
The media or its version was not found.
Invalid media_id is provided or the media is external.
GET /api/public/v1/media/{media_id}/download HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
No content
The ID of the media.
List of users and groups extended with permission type.
Authorization information is missing or invalid.
If a user without proper permissions tries to call this endpoint, the call is rejected with 403 Forbidden.
The media was not found by ID.
Invalid media_id is provided.
GET /api/public/v1/media/{media_id}/permissions HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
{
"users": [
{
"id": 1,
"full_name": "text",
"display_name": "text",
"email": "text",
"permission": "text"
}
],
"groups": [
{
"id": 1,
"name": "text",
"permission": "text"
}
]
}
The ID of the media.
An array with objects describing the permissions to add.
The action to perform.
The id of the user or group.
The share type.
The permission type. The default is "view".
view
Possible values: Permissions were added, the updated list of permissions is returned.
One ore more permission was not found or can not be created, because already exists
Authorization information is missing or invalid.
If a user without proper permissions tries to call this endpoint, the call is rejected with 403 Forbidden.
The media was not found by ID.
Invalid media_id is provided.
POST /api/public/v1/media/{media_id}/permissions HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 73
[
{
"action": "create",
"id": 1,
"share_type": "user",
"permission_type": "view"
}
]
{
"users": [
{
"id": 1,
"full_name": "text",
"display_name": "text",
"email": "text",
"permission": "text"
}
],
"groups": [
{
"id": 1,
"name": "text",
"permission": "text"
}
]
}
The ID of the media.
List of perspectives extended with collection.
Authorization information is missing or invalid.
If a user without proper permissions tries to call this endpoint, the call is rejected with 403 Forbidden.
The media was not found by ID.
Invalid media_id is provided.
GET /api/public/v1/media/{media_id}/perspectives HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
{
"users": [
{
"uuid": "text",
"title": "text",
"description": "text",
"duration": 1,
"created_at": "2025-08-25T07:31:11.261Z",
"collection": {
"id": 1,
"name": "text",
"type": "text",
"permission": "text",
"owner": {
"id": 1,
"full_name": "text",
"display_name": "text",
"email": "text"
},
"created_at": "2025-08-25T07:31:11.261Z",
"course_id": 1
}
}
]
}
The ID of the media.
The media sources that were requested.
Authorization information is missing or invalid.
If a user without proper permissions tries to call this endpoint, the call is rejected with 403 Forbidden.
The media was not found by ID.
GET /api/public/v1/media/{media_id}/sources HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
{
"sources": [
{
"mime_type": "text",
"url": "text",
"target": "text",
"definition": "text",
"transcoding_guid": "text",
"status": "text"
}
]
}
The ID of the media.
Filter users by a minimum permission level. If provided, only users with this permission or higher will be returned. The permissions are hierarchical: 'edit' includes 'view', and 'view' includes 'access'.
access
Possible values: The users who have access to the media.
Authorization information is missing or invalid.
If a user without permission tries to call this endpoint, the call is rejected with 403 Forbidden.
The media was not found by ID.
Invalid media_id is provided.
GET /api/public/v1/media/{media_id}/users HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
{
"user_permissions": [
{
"id": 1,
"full_name": "text",
"display_name": "text",
"email": "text",
"permission": "text"
}
]
}
Last updated
Was this helpful?