List folder items
Lists the items in a folder, including each item's type.
Folders can contain:
- Other folders.
- Designs, such as Instagram posts, Presentations, and Documents (Canva Docs(opens in a new tab or window)).
- Image assets.
Currently, video assets are not returned in the response.
HTTP method and URL path
https://api.canva.com /rest /v1 /folders/{folderId}/itemsThis operation is rate limited to 100 requests per minute for each user of your integration.
Authentication and authorization
This endpoint requires a valid access token that acts on behalf of a user.
Scopes
The access token must have all the following scopes (permissions):
folder:read
Header parameters
Path parameters
folderIdstringThe folder ID.
Query parameters
continuationstringIf 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[]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:
designfolderimage
sort_bystringSort 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 thenamefield for a folder or asset, or thetitlefield for a design.title_descending: Sort results by title, in descending order. The title is either thenamefield for a folder or asset, or thetitlefield 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}'
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));
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());}}
import requestsheaders = {"Authorization": "Bearer {token}"}response = requests.get("https://api.canva.com/rest/v1/folders/{folderId}/items",headers=headers)print(response.json())
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);};
package mainimport ("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))}
$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;}
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 = truerequest = Net::HTTP::Get.new(url)request['Authorization'] = 'Bearer {token}'response = http.request(request)puts response.read_body
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.
Details about the folder.
typestringAvailable values: The only valid value is folder.
folderFolderThe folder object, which contains metadata about the folder.
idstringThe folder ID.
namestringThe folder name.
created_atintegerWhen the folder was created, as a Unix timestamp (in seconds since the Unix Epoch).
updated_atintegerWhen the folder was last updated, as a Unix timestamp (in seconds since the Unix Epoch).
thumbnailThumbnailA thumbnail image representing the object.
widthintegerThe width of the thumbnail image in pixels.
heightintegerThe height of the thumbnail image in pixels.
urlstringA 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.
Details about the design.
typestringAvailable values: The only valid value is design.
designDesignSummaryBasic details about the design, such as the design's ID, title, and URL.
idstringThe design ID.
urlsDesignLinksA temporary set of URLs for viewing or editing the design.
edit_urlstringA 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_urlstringA 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_atintegerWhen the design was created in Canva, as a Unix timestamp (in seconds since the Unix Epoch).
updated_atintegerWhen the design was last updated in Canva, as a Unix timestamp (in seconds since the Unix Epoch).
titlestringThe design title.
urlstringURL of the design.
thumbnailThumbnailA thumbnail image representing the object.
widthintegerThe width of the thumbnail image in pixels.
heightintegerThe height of the thumbnail image in pixels.
urlstringA 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_countintegerThe total number of pages in the design. Some design types don't have pages (for example, Canva docs).
Details about the image asset.
typestringAvailable values: The only valid value is image.
imageAssetSummaryAn object representing an asset with associated metadata.
typestringType of an asset.
Available values:
imagevideo
idstringThe ID of the asset.
namestringThe name of the asset.
created_atintegerWhen the asset was added to Canva, as a Unix timestamp (in seconds since the Unix Epoch).
updated_atintegerWhen the asset was last updated in Canva, as a Unix timestamp (in seconds since the Unix Epoch).
thumbnailThumbnailA thumbnail image representing the object.
widthintegerThe width of the thumbnail image in pixels.
heightintegerThe height of the thumbnail image in pixels.
urlstringA 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.
continuationstringIf 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"}