StableDesign API
StableDesign wraps the full Canva Connect API behind x402 (USDC on Base) and MPP micropayments. Create designs, manage assets, autofill brand templates, organize folders, add comments — all via simple HTTP calls. A one-time OAuth flow connects your Canva account.
Setup
Before calling paid endpoints, complete the Canva OAuth flow once:
- Visit
/api/oauth/authorizein a browser. - Authorize the StableDesign integration in Canva.
- The server stores the token — all subsequent API calls use it automatically.
Endpoints
See /llms.txt for the full endpoint reference (33 endpoints). Key categories:
- Designs — create, list, get, pages, export-formats, export ($0.01–$0.02)
- Assets — upload, get, update, delete ($0.01)
- Brand Templates — list, get, dataset ($0.01)
- Autofill — create from template, check status ($0.01–$0.02)
- Imports — import design from URL, check status ($0.01–$0.02)
- Resize — resize a design, check status ($0.01–$0.02)
- Folders — create, get, update, delete, items, move ($0.01)
- Comments — create, get thread, reply, list replies ($0.01)
- Free — health, oauth/authorize, oauth/callback, user
Pricing
| Category | USD |
|---|---|
| Most endpoints (designs, assets, folders, comments, etc.) | $0.01 |
| Async creation (export, autofill, import, resize) | $0.02 |
| OAuth, health, user | free |
Payments accepted via x402 (USDC on Base) or MPP (USDC on Tempo). Use an x402 or MPP-compatible client to handle the 402 challenge automatically.
Export format compatibility
| Design type | Supported formats |
|---|---|
| doc | |
| presentation | pdf, pptx, png, jpg |
| pdf, png, jpg | |
| whiteboard | pdf, png, jpg |
| custom (width+height) | pdf, png, jpg, gif |
Requesting an unsupported format returns a 400 error from Canva. Use PDF as the safe default — it works with all design types.
Notes
- Blank designs auto-delete after 7 days if not edited in Canva.
- Export download URLs are valid for 24 hours.
- Canva rate limits: ~20 requests/minute per user for most operations.
- Design export is async — the API polls for up to 30 seconds. If the export is still in progress, you'll receive the job status and can poll manually.
- Asset upload is also async — the API polls for up to 15 seconds before returning the job status.
- All paid endpoints charge on request, even if the underlying Canva operation fails (e.g. invalid design_id, unsupported format). Check your inputs before calling.
Upstream
All design operations are backed by the Canva Connect API. Outage or breakage is forwarded as 502.