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-09-14T22:10:45.339Z",
      "course_id": 1,
      "archived_at": "2025-09-14T22:10:45.339Z"
    }
  ]
}

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-09-14T22:10:45.339Z",
    "course_id": 1,
    "archived_at": "2025-09-14T22:10:45.339Z"
  }
}

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-09-14T22:10:45.339Z",
    "course_id": 1,
    "archived_at": "2025-09-14T22:10:45.339Z"
  }
}

Deletes the specified collection and all related media and perspectives.

delete
Authorizations
Path parameters
collection_idinteger · int64Required

The ID of the collection.

Responses
200

The collection object.

application/json
delete
DELETE /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-09-14T22:10:45.339Z",
    "course_id": 1,
    "archived_at": "2025-09-14T22:10:45.339Z"
  }
}

Archives the specified collection and all related media and perspectives.

post
Authorizations
Path parameters
collection_idinteger · int64Required

The ID of the collection.

Responses
200

The collection was archived.

application/json
post
POST /api/public/v1/collections/{collection_id}/archive 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-09-14T22:10:45.339Z",
    "course_id": 1,
    "archived_at": "2025-09-14T22:10:45.339Z"
  }
}

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-09-14T22:10:45.339Z",
      "last_viewed": "2025-09-14",
      "last_viewed_by_student": "2025-09-14",
      "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",
      "archived_at": "2025-09-14T22:10:45.339Z"
    }
  ]
}

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.

Bodyobject[]

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"
    }
  ]
}

Unarchives the specified collection and all related media and perspectives.

post
Authorizations
Path parameters
collection_idinteger · int64Required

The ID of the collection.

Responses
200

The collection was unarchived.

application/json
post
POST /api/public/v1/collections/{collection_id}/unarchive 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-09-14T22:10:45.339Z",
    "course_id": 1,
    "archived_at": "2025-09-14T22:10:45.339Z"
  }
}

Last updated

Was this helpful?