Creatify Auth & Credit System
Complete reference for authenticating with the Creatify API and managing credits before any batch job.
Required Headers (Every Request)
| Header | Required | Description |
|--------|----------|-------------|
| X-API-ID | Yes | API identifier from Creatify dashboard |
| X-API-KEY | Yes | API secret key from Creatify dashboard |
| Content-Type | For POST/PUT | Always application/json |
Credential Locations
Primary: D:\Ecosystem\secrets\MASTER_API_KEYS.env
CREATIFY_API_ID=...
CREATIFY_API_KEY=...
Legacy: D:\Codeland2026\MASTER_API_KEYS_COLLECTION.env
Never commit credentials to version control.
Auth Setup (JavaScript)
const headers = {
"X-API-ID": process.env.CREATIFY_API_ID,
"X-API-KEY": process.env.CREATIFY_API_KEY,
"Content-Type": "application/json"
};
Auth Setup (Python)
import os, requests
headers = {
"X-API-ID": os.environ["CREATIFY_API_ID"],
"X-API-KEY": os.environ["CREATIFY_API_KEY"],
"Content-Type": "application/json"
}
Auth Error Reference
| Status | Meaning | Fix | |--------|---------|-----| | 401 | Invalid credentials | Verify API ID and Key | | 403 | API access not enabled | Contact Creatify support | | 429 | Rate limit exceeded | Exponential backoff |
Credit Cost Matrix
| Operation | Credits | |-----------|---------| | Video create (per 30s) | 5 | | Video preview (per 30s) | 1 | | Video render after preview (per 30s) | 4 | | Preview + Render total | 5 (same as direct) | | Product Video generate | 3 per 30s | | AI Script | 1 per script | | List/get endpoints | 0 | | Check balance | 0 |
Check Remaining Credits
curl --request GET \
--url https://api.creatify.ai/api/workspace/remaining_credits/ \
--header "X-API-ID: $CREATIFY_API_ID" \
--header "X-API-KEY: $CREATIFY_API_KEY"
# Returns: {"remaining_credits": 150}
Pre-Batch Credit Check (Mandatory)
Never run a batch without checking credits first. Mike burned through the entire plan during testing.
def check_credits():
r = requests.get(
"https://api.creatify.ai/api/workspace/remaining_credits/",
headers=headers
)
return r.json()["remaining_credits"]
def estimate_cost(video_count, duration_seconds=30, credits_per_30s=5):
return video_count * (duration_seconds / 30) * credits_per_30s
# Before any batch
available = check_credits()
cost = estimate_cost(video_count=10, duration_seconds=30)
if available < cost:
raise ValueError(f"Insufficient credits: {available} available, {cost} needed")
print(f"Proceeding: {available} credits available, {cost} needed")
Plan Limits Reference
| Detail | Value | |--------|-------| | Plan | $99/mo Creatify API | | Credits included | ~200/mo | | Credits per 30s video | ~15 (link + script + preview + render) | | Videos per month | ~13 on $99 plan | | Cost per video | ~$7.60 |
Batch Size Planning
| Batch | Duration | Credits | |-------|----------|---------| | 10 videos | 30s | 50 credits | | 10 videos | 60s | 100 credits | | 13 videos | 30s | 65 credits (one month) |
Related Topics
- [[creatify]] — full pipeline wizard
- [[creatify-production]] — batch production workflow
- [[creatify-custom-avatar]] — custom avatar creation (BYOA + DYOA)
#video-sop #creatify #api #auth #credits #billing