# Killa Tamata AI API-first prepaid $ credit and usage gateway for Killa Tamata media generation. ## Product - Primary users: developers and AI agents - Web app purpose: prepaid credit purchase and API key management - Runtime operations: authenticated API endpoints for media generation jobs ## Machine-readable assets - OpenAPI: https://killatamata.com/openapi.json - API docs: https://killatamata.com/api-docs - Plugin manifest: https://killatamata.com/.well-known/ai-plugin.json ## API base - https://api.killatamata.com ## Auth - API keys via Authorization: Bearer or x-api-key - Google sign-in can mint a new API key - Hosted browser flows can mint and inspect a browser session via /api/v1/auth/browser/* and /api/v1/auth/browser/session - Email one-time-code sign-in can mint a new API key - Device-link flow can bootstrap local tools by browser approval - Affiliate capture and bind routes support referral attribution without exposing checkout internals - Checkout and claim settlement routes require the same authenticated API key account ## Key Routes - GET /api/v1/health - GET /api/v1/affiliates/r?code= - POST /api/v1/affiliates/validate-code - POST /api/v1/affiliates/capture - POST /api/v1/affiliates/me/apply - GET /api/v1/affiliates/me - PATCH /api/v1/affiliates/me - GET /api/v1/affiliates/me/code - GET /api/v1/affiliates/me/dashboard - GET /api/v1/affiliates/me/commissions - GET /api/v1/affiliates/me/payouts - GET /api/v1/affiliates/me/payout-requests - POST /api/v1/affiliates/me/payout-requests - POST /api/v1/affiliates/me/bind-code - GET /api/v1/packages - POST /api/v1/auth/google - POST /api/v1/auth/browser/google - POST /api/v1/auth/email/start - POST /api/v1/auth/email/verify - POST /api/v1/auth/browser/email/verify - GET /api/v1/auth/browser/session - DELETE /api/v1/auth/browser/session - POST /api/v1/device/link/start - GET /api/v1/device/link/request?userCode= - POST /api/v1/device/link/approve - POST /api/v1/device/link/poll - POST /api/v1/checkout/stripe - POST /api/v1/checkout/crypto - POST /api/v1/claim/stripe - POST /api/v1/claim/crypto - POST /api/v1/credits/purchase/x402 - POST /api/v1/deposit/x402 (deprecated alias) - GET /api/v1/keys - POST /api/v1/keys - POST /api/v1/keys/revoke - GET /api/v1/balance - GET /api/v1/studio/snapshot - GET /api/v1/studio/projects/assets?projectId= - POST /api/v1/studio/projects - PATCH /api/v1/studio/projects/update - PATCH /api/v1/studio/settings - POST /api/v1/studio/threads - POST /api/v1/studio/threads/select - GET /api/v1/studio/threads/detail?threadId= - PATCH /api/v1/studio/threads/update - POST /api/v1/studio/assets/upload?projectId=&filename= - PATCH /api/v1/studio/assets/metadata - POST /api/v1/studio/assets/text - GET /api/v1/studio/assets/text/document?assetId= - PATCH /api/v1/studio/assets/text/document - POST /api/v1/studio/assets/storyboards - GET /api/v1/studio/assets/storyboards/document?assetId= - PATCH /api/v1/studio/assets/storyboards/document - POST /api/v1/studio/assets/storyboards/import - GET /api/v1/studio/assets/storyboards/export-markdown?assetId= - POST /api/v1/studio/agent/messages/prepare - POST /api/v1/studio/agent/messages - POST /api/v1/studio/agent/approval-plans/execute - GET /api/v1/studio/agent/requests?requestId= - GET /api/v1/credits/balance (deprecated) - POST /api/v1/credits/consume (deprecated) - POST /api/v1/media/jobs - GET /api/v1/media/jobs?jobId= ## Status Details - `GET /api/v1/media/jobs?jobId=&includeDetails=1` includes sanitized upstream result payload, `effectiveInput`, and `inputAdjustments` - `downloadableOutputUrls` are guaranteed for 48 hours after completion; cleanup targets 72 hours ## Image Notes - `image.generate` and `image.edit` accept optional `highDetail`; when set to `true`, it increases inference steps by 50% and billed cost by 50% - Leave `highDetail` omitted unless higher detail was explicitly requested ## Video Reliability Notes - `video.generate` outputs can vary widely and are not guaranteed to be usable on every run - For image-to-video, run multiple candidates and select winners before upscaling/extending - `video.generate` also supports overlap-frame continuation (`overlapFrameImageUrls`/`overlapFrameImages`) so clients can upload extracted trailing frames from the previous clip instead of uploading a whole source video - Default continuation-frame extraction target is lossless or visually lossless `webp`; avoid `jpeg` overlap anchors for seam-sensitive work and use `png` only as a debugging fallback - `video.generate` also supports reference audio (`referenceAudioUrl`/`referenceAudio`); when used, include start frame or overlap-frame input, and you can still add `finalFrameImageUrl`/`finalFrameImage` for closing-frame steering - Reference-audio requests are strict and fail when audio conditioning cannot be applied - For lip-sync or dialogue/singing shots, prompt them as anchored performances: honor frame-zero composition, keep the face readable, and let mouth articulation, jaw travel, breath timing, shoulder rhythm, and phrase-timed gestures carry the sync - Avoid portrait-only or glamour-still prompting for `referenceAudio` shots; those often animate framing instead of the mouth - For exact continuation timing, prefer `durationFrames` over `durationSeconds`; `durationFrames` uses sampled/base FPS and must satisfy the LTX rule `8n + 1` - When assembling extended clips, trim the duplicated overlap region from one side only; default splice is clip A plus clip B with clip B's overlap head removed - `video.combine` requires at least 2 input clips and uses the streaming concat node so large clip lists avoid the old in-memory merge graph - `video.combine` concatenates embedded audio and trims the configured overlap head from each clip after the first - `video.combine` is billed as a utility operation at $0.005 per input clip, with a 2-clip minimum ($0.01 minimum charge) - `width`/`height` define the final output canvas; the first sampling pass always runs at half of the final width/height - `video.generate` no longer accepts separate base/upscale resolution fields or a step-count override - Anchor image quality is the main lever: prefer mid-action, asymmetrical frames with no text/signage - Prompt as one coherent paragraph; avoid timestamp/segment syntax by default and keep anti-text negatives out of the positive prompt ## Release Version - 0.7.0 ## Installable Codex Skill - Skill manifest: https://killatamata.com/.well-known/agent-skills.json - Skill root: https://killatamata.com/skills/killatamata/ - Skill entrypoint: https://killatamata.com/skills/killatamata/SKILL.md - Skill version metadata: https://killatamata.com/skills/killatamata/version.json - Skill UI metadata: https://killatamata.com/skills/killatamata/agents/openai.yaml