List folder items

List the contents of a folder.

Lists the items in a folder, including each item's type.

Folders can contain:

Currently, video assets are not returned in the response.

HTTP method and URL path

GET https://api.canva.com/rest/v1/folders/{folderId}/items

This operation is rate limited to 100 requests per minute for each user of your integration.

Authentication

This endpoint requires a valid access token that acts on behalf of a user. The token must have the following scopes (permissions):

  • folder:read

For more information, see Scopes.

Header parameters

AuthorizationstringRequired

Provides credentials to authenticate the request, in the form of a Bearer token.

For example: Authorization: Bearer {token}

Path parameters

folderIdstringRequired

The folder ID.

Query parameters

continuationstringOptional

If the success response contains a continuation token, the folder contains more items you can list. You can use this token as a query parameter and retrieve more items from the list, for example /v1/folders/{folderId}/items?continuation={continuation}.

To retrieve all the items in a folder, you might need to make multiple requests.

item_typesstring[]Optional

Filter the folder items to only return specified types. The available types are: design, folder, and image. To filter for more than one item type, provide a comma- delimited list.

Available values:

  • design
  • folder
  • image
sort_bystringOptional

Sort the list of folder items.

Default value: modified_descending

Available values:

  • created_ascending: Sort results by creation date, in ascending order.
  • created_descending: Sort results by creation date, in descending order.
  • modified_ascending: Sort results by the last modified date, in ascending order.
  • modified_descending: Sort results by the last modified date, in descending order.
  • title_ascending: Sort results by title, in ascending order. The title is either the name field for a folder or asset, or the title field for a design.
  • title_descending: Sort results by title, in descending order. The title is either the name field for a folder or asset, or the title field for a design.

Example request

Examples for using the /v1/folders/{folderId}/items endpoint:

curl --request GET 'https://api.canva.com/rest/v1/folders/{folderId}/items' \
--header 'Authorization: Bearer {token}'
SH
const fetch = require("node-fetch");
fetch("https://api.canva.com/rest/v1/folders/{folderId}/items", {
method: "GET",
headers: {
"Authorization": "Bearer {token}",
},
})
.then(async (response) => {
const data = await response.json();
console.log(data);
})
.catch(err => console.error(err));
JS
import java.io.IOException;
import java.net.URI;
import java.net.http.*;
public class ApiExample {
public static void main(String[] args) throws IOException, InterruptedException {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.canva.com/rest/v1/folders/{folderId}/items"))
.header("Authorization", "Bearer {token}")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(
request,
HttpResponse.BodyHandlers.ofString()
);
System.out.println(response.body());
}
}
JAVA
import requests
headers = {
"Authorization": "Bearer {token}"
}
response = requests.get("https://api.canva.com/rest/v1/folders/{folderId}/items",
headers=headers
)
print(response.json())
PY
using System.Net.Http;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://api.canva.com/rest/v1/folders/{folderId}/items"),
Headers =
{
{ "Authorization", "Bearer {token}" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
};
CSHARP
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.canva.com/rest/v1/folders/{folderId}/items"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer {token}")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
GO
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.canva.com/rest/v1/folders/{folderId}/items",
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer {token}',
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if (empty($err)) {
echo $response;
} else {
echo "Error: " . $err;
}
PHP
require 'net/http'
require 'uri'
url = URI('https://api.canva.com/rest/v1/folders/{folderId}/items')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request['Authorization'] = 'Bearer {token}'
response = http.request(request)
puts response.read_body
RUBY

Success response

If successful, the endpoint returns a 200 response with a JSON body with the following parameters:

itemsFolderItemSummary[]

An array of items in the folder.

typestring

This can be one of the following:

  • folder: Details about the folder.
  • design: Details about the design.
  • image: Details about the image asset.
folderFolder
Conditional

The folder object, which contains metadata about the folder.

idstring

The folder ID.

namestring

The folder name.

created_atinteger

When the folder was created, as a Unix timestamp (in seconds since the Unix Epoch).

updated_atinteger

When the folder was last updated, as a Unix timestamp (in seconds since the Unix Epoch).

thumbnailThumbnailOptional

A thumbnail image representing the object.

widthinteger

The width of the thumbnail image in pixels.

heightinteger

The height of the thumbnail image in pixels.

urlstring

A URL for retrieving the thumbnail image. This URL expires after 15 minutes. This URL includes a query string that's required for retrieving the thumbnail.

designDesignSummary
Conditional

Basic details about the design, such as the design's ID, title, and URL.

idstring

The design ID.

urlsDesignLinks

A temporary set of URLs for viewing or editing the design.

edit_urlstring

A temporary editing URL for the design. This URL is only accessible to the user that made the API request, and is designed to support return navigation workflows.

This is not a permanent URL, it is only valid for 30 days.

view_urlstring

A temporary viewing URL for the design. This URL is only accessible to the user that made the API request, and is designed to support return navigation workflows.

This is not a permanent URL, it is only valid for 30 days.

created_atinteger

When the design was created in Canva, as a Unix timestamp (in seconds since the Unix Epoch).

updated_atinteger

When the design was last updated in Canva, as a Unix timestamp (in seconds since the Unix Epoch).

titlestringOptional

The design title.

urlstringOptional

URL of the design.

thumbnailThumbnailOptional

A thumbnail image representing the object.

widthinteger

The width of the thumbnail image in pixels.

heightinteger

The height of the thumbnail image in pixels.

urlstring

A URL for retrieving the thumbnail image. This URL expires after 15 minutes. This URL includes a query string that's required for retrieving the thumbnail.

page_countintegerOptional

The total number of pages in the design. Some design types don't have pages (for example, Canva docs).

imageAssetSummary
Conditional

An object representing an asset with associated metadata.

typestring

Type of an asset. Support for video assets is currently provided as a preview(opens in a new tab or window).

idstring

The ID of the asset.

namestring

The name of the asset.

tagsstring[]

The user-facing tags attached to the asset. Users can add these tags to their uploaded assets, and they can search their uploaded assets in the Canva UI by searching for these tags. For information on how users use tags, see the Canva Help Center page on asset tags(opens in a new tab or window).

created_atinteger

When the asset was added to Canva, as a Unix timestamp (in seconds since the Unix Epoch).

updated_atinteger

When the asset was last updated in Canva, as a Unix timestamp (in seconds since the Unix Epoch).

thumbnailThumbnailOptional

A thumbnail image representing the object.

widthinteger

The width of the thumbnail image in pixels.

heightinteger

The height of the thumbnail image in pixels.

urlstring

A URL for retrieving the thumbnail image. This URL expires after 15 minutes. This URL includes a query string that's required for retrieving the thumbnail.

continuationstringOptional

If the success response contains a continuation token, the folder contains more items you can list. You can use this token as a query parameter and retrieve more items from the list, for example /v1/folders/{folderId}/items?continuation={continuation}.

To retrieve all the items in a folder, you might need to make multiple requests.

Example response

{
"items": [
{
"type": "folder",
"folder": {
"id": "FAF2lZtloor",
"name": "My awesome holiday",
"created_at": 1377396000,
"updated_at": 1692928800,
"thumbnail": {
"width": 595,
"height": 335,
"url": "https://document-export.canva.com/Vczz9/zF9vzVtdADc/2/thumbnail/0001.png?<query-string>"
}
}
},
{
"type": "design",
"design": {
"id": "DAFVztcvd9z",
"title": "My summer holiday",
"url": "https://www.canva.com/design/DAFVztcvd9z/edit",
"thumbnail": {
"width": 595,
"height": 335,
"url": "https://document-export.canva.com/Vczz9/zF9vzVtdADc/2/thumbnail/0001.png?<query-string>"
},
"urls": {
"edit_url": "https://www.canva.com/api/design/eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiZXhwaXJ5IjoxNzQyMDk5NDAzMDc5fQ..GKLx2hrJa3wSSDKQ.hk3HA59qJyxehR-ejzt2DThBW0cbRdMBz7Fb5uCpwD-4o485pCf4kcXt_ypUYX0qMHVeZ131YvfwGPIhbk-C245D8c12IIJSDbZUZTS7WiCOJZQ.sNz3mPSQxsETBvl_-upMYA/edit",
"view_url": "https://www.canva.com/api/design/eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiZXhwaXJ5IjoxNzQyMDk5NDAzMDc5fQ..GKLx2hrJa3wSSDKQ.hk3HA59qJyxehR-ejzt2DThBW0cbRdMBz7Fb5uCpwD-4o485pCf4kcXt_ypUYX0qMHVeZ131YvfwGPIhbk-C245D8c12IIJSDbZUZTS7WiCOJZQ.sNz3mPSQxsETBvl_-upMYA/view"
},
"created_at": 1377396000,
"updated_at": 1692928800,
"page_count": 3
}
},
{
"type": "image",
"image": {
"type": "image",
"id": "Msd59349ff",
"name": "My Awesome Upload",
"tags": [
"image",
"holiday",
"best day ever"
],
"created_at": 1377396000,
"updated_at": 1692928800,
"thumbnail": {
"width": 595,
"height": 335,
"url": "https://document-export.canva.com/Vczz9/zF9vzVtdADc/2/thumbnail/0001.png?<query-string>"
}
}
}
],
"continuation": "RkFGMgXlsVTDbMd:MR3L0QjiaUzycIAjx0yMyuNiV0OildoiOwL0x32G4NjNu4FwtAQNxowUQNMMYN"
}
JSON

Try it out

Step 1: Enter your access token

To get started, generate an access token or provide your own below