Creaition API
Use the Creaition API to automate template workflows, generate images and videos with active engines, manage cast/location libraries, and power batch pipelines. Business tools require an active business account.
/api-request.html.Authorization: Bearer YOUR_API_KEY in requests.templates:read - list and inspect templates.slideshows:create - create slideshow-ready outputs.tv-apps:publish - publish TV/event display bundles.batch:jobs - submit and monitor batch processing jobs.business:tools - business-only tools (requires business account).engines:read, image_gen:create, and video_gen:create are controlled as endpoint permissions per key.Submit your key application programmatically:
POST /api/public-api/request-key
Content-Type: application/json
{
"fullName": "Jane Creator",
"email": "jane@studio.com",
"companyName": "Studio Co",
"accountType": "business",
"requestedScopes": ["templates:read", "batch:jobs", "business:tools"],
"useCase": "Build automated slideshow campaigns for retail screens."
}
Read currently supported scope names:
GET /api/public-api/capabilities
If signed in, you can also list your requests:
GET /api/public-api/my-requests Authorization: Bearer USER_TOKEN
These examples run templates with your API key (no browser token needed).
You do not send email/password to runtime public endpoints. Use only x-api-key (or Authorization: Bearer API_KEY).
curl -X GET "https://www.creaition.co/api/public-api/library/cast" \ -H "x-api-key: CRAI_LIVE_YOUR_KEY"
curl -X GET "https://www.creaition.co/api/public-api/templates?page=1&limit=12&sort=popular" \ -H "x-api-key: CRAI_LIVE_YOUR_KEY"
Use a template id from step 1. Send an idempotency key to prevent duplicate runs.
curl -X POST "https://www.creaition.co/api/public-api/templates/TEMPLATE_ID/execute" \
-H "x-api-key: CRAI_LIVE_YOUR_KEY" \
-H "Content-Type: application/json" \
-H "x-idempotency-key: run-001-template-123" \
-d '{
"outputType": "image",
"inputs": {
"_output_type": "image",
"prompt": "A clean product shot, studio lights, white background"
}
}'
const API_KEY = process.env.CREAI_API_KEY;
const TEMPLATE_ID = "YOUR_TEMPLATE_ID";
const res = await fetch(`https://www.creaition.co/api/public-api/templates/${TEMPLATE_ID}/execute`, {
method: "POST",
headers: {
"x-api-key": API_KEY,
"content-type": "application/json",
"x-idempotency-key": `demo-${Date.now()}`
},
body: JSON.stringify({
outputType: "image",
inputs: {
_output_type: "image",
prompt: "Cinematic neon city street, rain reflections"
}
})
});
const data = await res.json();
console.log(data.success, data.result);
import requests, time
API_KEY = "CRAI_LIVE_YOUR_KEY"
TEMPLATE_ID = "YOUR_TEMPLATE_ID"
payload = {
"outputType": "image",
"inputs": {
"_output_type": "image",
"prompt": "Fashion portrait with soft studio lighting"
}
}
resp = requests.post(
f"https://www.creaition.co/api/public-api/templates/{TEMPLATE_ID}/execute",
headers={
"x-api-key": API_KEY,
"Content-Type": "application/json",
"x-idempotency-key": f"py-{int(time.time())}"
},
json=payload,
timeout=180
)
print(resp.status_code, resp.json())
curl -X POST "https://www.creaition.co/api/public-api/image_gen/create?include=engines,properties" \
-H "x-api-key: CRAI_LIVE_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"engine": "black-forest-labs/flux-schnell",
"prompt": "A futuristic sneaker product shot on reflective black glass",
"aspect_ratio": "1:1"
}'
curl -X POST "https://www.creaition.co/api/public-api/video_gen/create?include=engines,properties" \
-H "x-api-key: CRAI_LIVE_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"engine": "wan-video/wan-2.2-5b-fast",
"prompt": "Cinematic drone push-in over a neon city at dusk",
"duration": 5,
"resolution": "720p"
}'
curl -X POST "https://www.creaition.co/api/public-api/video_concat/create" \
-H "x-api-key: CRAI_LIVE_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"videoIds": ["VIDEO_ID_1", "VIDEO_ID_2"],
"prompt": "Merged sequence"
}'
Requires endpoint permission video_concat:create and a create scope (e.g. batch:jobs). Poll GET /api/public-api/jobs/{jobId} after the 202 response.
# List cast
curl -X GET "https://www.creaition.co/api/public-api/library/cast" \
-H "x-api-key: CRAI_LIVE_YOUR_KEY"
# Save cast item (create/update when _id is included)
curl -X POST "https://www.creaition.co/api/public-api/library/cast" \
-H "x-api-key: CRAI_LIVE_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"character": {
"name": "Maya",
"role": "Lead",
"kind": "fantasy",
"race": "human",
"imageUrl": "https://your-cdn.com/maya.png"
}
}'
# Delete cast item
curl -X DELETE "https://www.creaition.co/api/public-api/library/cast/CAST_ID" \
-H "x-api-key: CRAI_LIVE_YOUR_KEY"
Each API key can allow/deny individual endpoint groups in API Access.
templates:list -> GET /api/public-api/templates templates:execute -> POST /api/public-api/templates/:id/execute engines:read -> GET /api/public-api/engines jobs:read -> GET /api/public-api/jobs/:jobId image_gen:create -> GET/POST /api/public-api/image_gen/create video_gen:create -> GET/POST /api/public-api/video_gen/create video_concat:create -> GET/POST /api/public-api/video_concat/create library:cast:list -> GET /api/public-api/library/cast library:cast:write -> POST/DELETE /api/public-api/library/cast library:locations:list -> GET /api/public-api/library/locations library:locations:write -> POST/DELETE /api/public-api/library/locations gallery:read -> GET /api/public-api/gallery (+ /gallery/images)