Collection

List all collections the authenticated user has permission to.

get
Authorizations
AuthorizationstringRequired
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
/collections
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-11-16T08:15:23.615Z",
      "course_id": 1,
      "archived_at": "2025-11-16T08:15:23.615Z"
    }
  ]
}

Create a new collection with the specified name

post
Authorizations
AuthorizationstringRequired
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
post
/collections
POST /api/public/v1/collections?name=text 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-11-16T08:15:23.615Z",
    "course_id": 1,
    "archived_at": "2025-11-16T08:15:23.615Z"
  }
}

Get data of a collection

get
Authorizations
AuthorizationstringRequired
Path parameters
collection_idinteger · int64Required

The ID of the collection.

Responses
200

The collection object.

application/json
get
/collections/{collection_id}
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-11-16T08:15:23.615Z",
    "course_id": 1,
    "archived_at": "2025-11-16T08:15:23.615Z"
  }
}

Deletes the specified collection and all related media and perspectives.

delete
Authorizations
AuthorizationstringRequired
Path parameters
collection_idinteger · int64Required

The ID of the collection.

Responses
200

The collection object.

application/json
delete
/collections/{collection_id}
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-11-16T08:15:23.615Z",
    "course_id": 1,
    "archived_at": "2025-11-16T08:15:23.615Z"
  }
}

Archives the specified collection and all related media and perspectives.

post
Authorizations
AuthorizationstringRequired
Path parameters
collection_idinteger · int64Required

The ID of the collection.

Responses
200

The collection was archived.

application/json
post
/collections/{collection_id}/archive
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-11-16T08:15:23.615Z",
    "course_id": 1,
    "archived_at": "2025-11-16T08:15:23.615Z"
  }
}

List media in a specific collection

get
Authorizations
AuthorizationstringRequired
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
/collections/{collection_id}/media
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-11-16T08:15:23.615Z",
      "last_viewed": "2025-11-16",
      "last_viewed_by_student": "2025-11-16",
      "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-11-16T08:15:23.615Z"
    }
  ]
}

Get users and groups who have access to the collection

get
Authorizations
AuthorizationstringRequired
Path parameters
collection_idinteger · int64Required

The ID of the collection.

Responses
200

List of users and groups extended with permission type.

application/json
get
/collections/{collection_id}/permissions
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
AuthorizationstringRequired
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
/collections/{collection_id}/permissions
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
AuthorizationstringRequired
Path parameters
collection_idinteger · int64Required

The ID of the collection.

Responses
200

The collection was unarchived.

application/json
post
/collections/{collection_id}/unarchive
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-11-16T08:15:23.615Z",
    "course_id": 1,
    "archived_at": "2025-11-16T08:15:23.615Z"
  }
}

Last updated

Was this helpful?