> ## 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. # perform-editing-operations Apply one or more edits within an open editing transaction. Use `perform-editing-operations` after [start-editing-transaction](https://www.canva.dev/docs/apps/mcp/tools/start-editing-transaction/). Edits stay in draft until you commit with [commit-editing-transaction](https://www.canva.dev/docs/apps/mcp/tools/commit-editing-transaction/). ## Example prompt *"Update the headline to 'Introducing Canva AI Editing'."* Pass `transaction_id`, `page_index`, and `operations` (an array of `{type, element_id, text}`). ## Example response IDs, URLs, and tokens below are placeholders; field names and structure are exactly as returned. ```json { "richtexts": [ { "page_index": 1, "regions": [ { "type": "character", "text": "Introducing Canva AI Editing" } ], "containerElement": { "type": "TEXT", "position": { "top": 399.67, "left": 160.92 }, "dimension": { "width": 758.16, "height": 175.35 } }, "element_id": "ELEMENT_EXAMPLE_1" } ], "fills": [ { "type": "image", "asset_id": "ASSET_EXAMPLE", "page_index": 1, "editable": true, "element_id": "ELEMENT_EXAMPLE_2" } ], "thumbnails": [ { "width": -1, "height": -1, "url": "https://design-manipulation-download.canva.com/EXAMPLE" } ], "edit_operation_results": [ { "status": "success", "operation_info": { "type": "replace_text", "element_id": "ELEMENT_EXAMPLE_1" } } ], "pages": [ { "page_id": "PAGE_EXAMPLE", "page_number": 1, "dimension": { "width": 1080, "height": 1350 }, "is_responsive": false, "is_empty": false, "is_editable": true } ] } ``` `operations` is an array of operation objects. Check `edit_operation_results` for a per-operation `status` of `success`. On responsive pages, use `find_and_replace_text` rather than `replace_text`. NOTE: Don't pass a raw image URL into an editing operation. Upload it first with [upload-asset-from-url](https://www.canva.dev/docs/apps/mcp/tools/upload-asset-from-url/) to get an `asset_id`. ## Learn more * [MCP tools and rate limits](https://www.canva.dev/docs/apps/mcp/tools/) * [start-editing-transaction](https://www.canva.dev/docs/apps/mcp/tools/start-editing-transaction/) * [commit-editing-transaction](https://www.canva.dev/docs/apps/mcp/tools/commit-editing-transaction/) * [upload-asset-from-url](https://www.canva.dev/docs/apps/mcp/tools/upload-asset-from-url/) * [Verify your Canva MCP app](https://www.canva.dev/docs/apps/mcp/verify-app/)