Portplate API
Build with Portplate
Integrate your apps with the Portplate REST API. Manage designs, automate exports, and build custom workflows.
Get your API keyAuthentication
All API requests require a personal API key passed in the Authorization header. Generate keys in your Authorization Settings → API Keys.
curl https://portplate.com/api/designs \ -H "Authorization: Bearer pp_your_api_key_here"
Base URL
https://portplate.com/api
Endpoints
Designs
GET
/api/designsList your designs (paginated, ?limit=20&offset=0)
POST
/api/designsCreate a new design
GET
/api/designs/:idGet a specific design by ID
PATCH
/api/designs/:idUpdate title, tags, or visibility
DELETE
/api/designs/:idMove design to trash
Exports
POST
/api/exportsQueue a PNG/PDF export for a design
GET
/api/exports/:idCheck export status and download URL
Templates
GET
/api/templatesList public templates (?q=&category=)
GET
/api/templates/:idGet template details
Example: List designs
curl "https://portplate.com/api/designs?limit=5" \
-H "Authorization: Bearer pp_your_key"
# Response
{
"designs": [
{
"_id": "64ab1234...",
"title": "My Design",
"width": 1080,
"height": 1080,
"updatedAt": "2026-04-01T10:00:00Z"
}
],
"total": 42
}Example: Create design from template
curl -X POST "https://portplate.com/api/designs" \
-H "Authorization: Bearer pp_your_key" \
-H "Content-Type: application/json" \
-d '{
"title": "Product Promo",
"width": 1080,
"height": 1080,
"fromTemplate": "TEMPLATE_ID"
}'Rate limits
Free60 requests / minute
Pro300 requests / minute
Max1,000 requests / minute
Rate limit status is returned in X-RateLimit-* headers.