Appearance
Connect API Integration SOP
Step-by-step guide for integrating the Canva Connect REST API into your platform.
Prerequisites
- Canva account with API access enabled
- Client ID and Client Secret from the developer portal
- Ability to host a redirect URI (for OAuth)
Step 1: OAuth Setup
- Register your application in the Canva developer portal
- Configure your redirect URI
- Implement the OAuth 2.0 authorization flow:
- Redirect user to Canva authorization URL
- Handle the callback with the authorization code
- Exchange code for access token via
/oauth/token
- Store refresh tokens securely
- Implement token refresh logic
Step 2: Making API Requests
All API requests require:
Authorization: Bearer <access_token>headerContent-Type: application/jsonfor POST/PUT requests- Base URL:
https://api.canva.com/rest/v1/
Step 3: Core Integration Flows
Import a Design
- Call
POST /designs/importwith file upload or URL - Poll
GET /designs/import/{jobId}untilstatus: "success" - Use the returned
design_idfor further operations
Export a Design
- Call
POST /designs/{designId}/export - Poll
GET /designs/export/{jobId}untilstatus: "success" - Download from the returned URL (valid for 30 minutes)
Manage Assets
- Upload:
POST /assets/upload(returnsjob_id) - Poll:
GET /assets/upload/{jobId}for completion - Reference the
asset_idin design operations
Step 4: Webhooks (Optional)
- Register webhook endpoint in developer portal
- Implement signature verification using webhook secret
- Handle
design.published,export.completed, and other events
Error Handling
| Status | Meaning | Action |
|---|---|---|
| 401 | Token expired | Refresh token and retry |
| 403 | Insufficient scope | Re-authorize with required scopes |
| 429 | Rate limited | Back off using Retry-After header |
| 503 | Service unavailable | Retry with exponential backoff |