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