> ## Documentation Index > Fetch the complete documentation index at: https://www.canva.dev/docs/apps/llms.txt > Use this file to discover all available pages before exploring further. # openDesign API reference for the openDesign method. Reads (and optionally updates) a specified part of the user's design. Reads (and optionally updates) the current page of the user's design. ## Usage: Read the current page ```typescript import { openDesign } from "@canva/design"; await openDesign({ type: 'current_page' }, async (session) => { // Do something with session.page await session.sync(); }); ``` ## Parameters Options for configuring how the current page is read. Properties of options}> The type of context. The only valid value is `"current_page"`. A callback for operating on the current page. **Parameters** Session received by the `openDesign` callback when opening the current page. Properties of session}> The current page of the design. A page with either fixed or unbounded dimensions. For more information, see [AbsolutePage](/docs/apps/api/latest/design-types-absolute-page/). Represents design content that the SDK doesn't support. The only valid value is `"unsupported"`. These are various utilities that allow apps to do more complex operations on the page. For more information, see [PageHelpers](/docs/apps/api/latest/design-types-page-helpers/). Saves any changes made during the session while keeping the session open. * Any changes in the session are only reflected in the design after this method is called. * Once this method is called, further changes in the session can still be made. **Returns** `Promise` **Returns** `Promise` ## Returns `Promise` Reads (and optionally updates) all pages of the user's design. ## Usage: Read all pages ```typescript import { openDesign } from "@canva/design"; await openDesign({ type: 'all_pages' }, async (session) => { // Do something with session.pageRefs await session.sync(); }); ``` ## Parameters Options for configuring how all pages are read. Properties of options}> The type of context. The only valid value is `"all_pages"`. A callback for operating on all pages. **Parameters** Session received by the `openDesign` callback when opening all pages. Properties of session}> References to all pages of the design. For more information, see [PageRefList](/docs/apps/api/latest/design-types-page-ref-list/). These are various utilities that allow apps to do more complex operations on the page. For more information, see [AllPagesHelpers](/docs/apps/api/latest/design-types-all-pages-helpers/). Saves any changes made during the session while keeping the session open. * Any changes in the session are only reflected in the design after this method is called. * Once this method is called, further changes in the session can still be made. **Returns** `Promise` **Returns** `Promise` ## Returns `Promise` ## Permissions To use this method, the following permissions must be enabled for the app: * `canva:design:content:read`, to read the design * `canva:design:content:write`, if the app calls the `sync` method To learn more, see [Permissions](https://www.canva.dev/docs/apps/configuring-intents-permissions/). ## Rate limit This method has the following rate limits: * Opening the design: 10 requests every 10 seconds * Calling the `sync` method: 10 requests every 10 seconds