We’re excited to announce that the URL Expander intent is now available in preview!
This new intent enables your app to seamlessly import content from external URLs directly into Canva when users paste links into Canva AI.
What is URL Expander?
URL Expander lets users simply paste a URL from your platform, and your app automatically fetches and imports the content into Canva—no manual uploads, no extra steps. It’s all about creating that frictionless experience we all love.
Here’s how it works:
-
User pastes a URL into Canva AI
-
Your app recognizes the URL pattern and fetches metadata
-
User sees a preview of the content
-
With one click, the content is imported into their design
Perfect for…
-
Document platforms: Google Docs, Notion, Confluence
-
Media libraries: Stock photos, video platforms, design systems
-
DAM systems: Enterprise asset management platforms
-
Cloud storage: Dropbox, OneDrive, SharePoint
Getting Started
Ready to build? Here’s everything you need:
URL Expander intent - URL Expander - Canva Apps SDK Documentation
-
Overview and benefits
-
Step-by-step implementation guide
-
URL pattern validation rules
-
Working example app
Quick implementation checklist:
-
Enable the intent in the Developer Portal
-
Register your URL patterns (e.g., https://yourplatform.com/*)
-
Implement expandUrl() to return content metadata
-
Implement getContent() to fetch the actual asset
-
Test by pasting URLs into Canva AI
Important Notes
This is a beta/preview intent:
-
The API may change without warning
-
Apps using preview intents cannot be submitted for public review yet
-
We’re actively iterating based on developer feedback
Technical requirements:
-
Requires @canva/intents@beta package
-
Needs canva:asset:private:write scope
-
URL patterns must use HTTPS (no HTTP or wildcard TLDs)
We Want Your Feedback!
As this is a preview release, your feedback is incredibly valuable. Tell us:
-
What are you building with URL Expander?
-
What challenges are you facing?
-
What features would make this even better?
-
Any bugs or unexpected behavior?
Drop your thoughts in this thread or reach out to us directly—we’re listening and actively improving based on what you share.
Resources
-
URL Expander intent - URL Expander - Canva Apps SDK Documentation -
URL Expander intent implementation guide - URL Expander - Canva Apps SDK Documentation -
URL Expander URL pattern validation rules - URL Expander - Canva Apps SDK Documentation -
URL expander intent - Examples - Canva Apps SDK Documentation
Happy building! We can’t wait to see what you create with URL Expander. ![]()
![]()