Quickstart
Three requests: get a key, find a template, render it. About two minutes.
1. Create a key
Go to your account, open API keys and create one. It is shown once. Keys start with gt_live_, so they are easy to find if one leaks into a repository.
2. Find a template
Listing tells you the dimensions and which slots accept copy, so you can choose on more than a name. Discovery calls do not count against your render quota.
curl https://www.graphtr.com/api/v1/templates?category=poster \ -H "Authorization: Bearer gt_live_..."{ "total": 8, "returned": 8, "templates": [ { "id": "poster-live-music", "name": "Live Music Night", "category": "poster", "width": 794, "height": 1123, "pro": false, "kind": "classic", "slots": [], "available": true } ]}3. Render it
Send the template id and the copy for its slots. The response body is the file itself, not a job id to poll.
curl -X POST https://www.graphtr.com/api/v1/designs \ -H "Authorization: Bearer gt_live_..." \ -H "Content-Type: application/json" \ -d '{ "templateId": "poster-live-music", "format": "png", "fill": { "headline": "Live at the Attic", "detail": "Friday, 9 PM" } }' > poster.pngSkip the template
Send a prompt instead of a template id and the model picks a layout and writes the copy into it. Useful when you do not know in advance what you are making.
Next
The API reference has every parameter and error. If your caller is an agent rather than your own code, use MCP instead.