Collection

List all collections the authenticated user has permission to.

get
Authorizations
Query parameters
pageintegerOptional

The page to retrieve. Default: 1.

Default: 1
per_pageinteger · max: 50Optional

The number of results per page. Default: 20, Max: 50.

Default: 20
Responses
200
The collections the authenticated user has permission to.
application/json
get
GET /api/public/v1/collections HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
{
  "collections": [
    {
      "id": 1,
      "name": "text",
      "type": "text",
      "permission": "text",
      "owner": {
        "id": 1,
        "full_name": "text",
        "display_name": "text",
        "email": "text"
      },
      "created_at": "2025-06-27T08:26:11.189Z",
      "course_id": 1
    }
  ]
}

Create a new collection with the specified name

post
Authorizations
Query parameters
namestringRequired

The name of the collection.

user_idintegerOptional

ID of the user to create the collection on behalf of. If not provided, the collection will be created in the requestor's library

Responses
201
The collection object that was created.
application/json
post
POST /api/public/v1/collections HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
{
  "collection": {
    "id": 1,
    "name": "text",
    "type": "text",
    "permission": "text",
    "owner": {
      "id": 1,
      "full_name": "text",
      "display_name": "text",
      "email": "text"
    },
    "created_at": "2025-06-27T08:26:11.189Z",
    "course_id": 1
  }
}

Get data of a collection

get
Authorizations
Path parameters
collection_idinteger · int64Required

The ID of the collection.

Responses
200
The collection object.
application/json
get
GET /api/public/v1/collections/{collection_id} HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
{
  "collection": {
    "id": 1,
    "name": "text",
    "type": "text",
    "permission": "text",
    "owner": {
      "id": 1,
      "full_name": "text",
      "display_name": "text",
      "email": "text"
    },
    "created_at": "2025-06-27T08:26:11.189Z",
    "course_id": 1
  }
}

List media in a specific collection

get
Authorizations
Path parameters
collection_idinteger · int64Required

The ID of the collection

Query parameters
pageintegerOptional

The page to retrieve. Default: 1.

Default: 1
per_pageinteger · max: 50Optional

The number of results per page. Default: 20, Max: 50.

Default: 20
Responses
200
The list of media in a specific collection.
application/json
get
GET /api/public/v1/collections/{collection_id}/media HTTP/1.1
Host: tw.instructuremedia.com
Authorization: YOUR_API_KEY
Accept: */*
{
  "media": [
    {
      "id": 1,
      "title": "text",
      "description": "text",
      "duration": 1,
      "created_at": "2025-06-27T08:26:11.189Z",
      "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"
    }
  ]
}

Get users and groups who have access to the collection

get
Authorizations
Path parameters
collection_idinteger · int64Required

The ID of the collection.

Responses
200
List of users and groups extended with permission type.
application/json
get
GET /api/public/v1/collections/{collection_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"
    }
  ]
}

Add permissions to the collection

post
Authorizations
Path parameters
collection_idinteger · int64Required

The ID of the collection.

Body

An array with objects describing the permissions to add or update or destroy.

actionstring · enumRequired

The action to perform.

Possible values:
idintegerRequired

The id of the user or group.

share_typestring · enumRequired

The share type.

Possible values:
permission_typestring · enumOptional

The permission type. The default is "view".

Default: viewPossible values:
Responses
200
Permissions were added, the updated list of permissions is returned.
application/json
post
POST /api/public/v1/collections/{collection_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"
    }
  ]
}

Last updated

Was this helpful?