# CelebifyAI API Reference # Last updated: 2026-02-22 # Base URL: https://celebifyai.com/api/v1 ## Authentication All requests require a Bearer token in the Authorization header. Format: Authorization: Bearer cel_your_api_key API keys start with the prefix "cel_". Manage keys at https://celebifyai.com/dashboard/developers ## Rate Limits Concurrent generation limits by plan (shared between web UI and API): - Free: No API access (1 concurrent via web only) - Base: 4 concurrent generations - Plus: 6 concurrent generations - Pro: 10 concurrent generations ## Error Codes | HTTP | Code | Description | |------|------|-------------| | 400 | invalid_json | Request body is not valid JSON | | 400 | missing_prompt | A required field is missing | | 400 | invalid_model | The specified model ID does not exist | | 400 | invalid_url | A provided URL is malformed or unreachable | | 401 | unauthorized | Invalid or missing API key | | 402 | insufficient_credits | Not enough credits to complete the request | | 429 | rate_limit_exceeded | Concurrent generation limit reached | | 404 | not_found | The requested resource was not found | | 500 | internal_error | An unexpected server error occurred | Error response format: { "error": { "code": "error_code", "message": "Human-readable message", "details": {} } } ## Pagination List endpoints use cursor-based pagination. Query params: limit (1-100, default 20), cursor (from previous response) Response includes: data[], has_more (boolean), next_cursor (string|null) --- ## Endpoints ### GET /api/v1/account Returns current account info, credit balance, plan, and concurrency status. Response: { credits, plan, frequency, concurrency: { current, limit, available } } ### GET /api/v1/models Returns all available models with credit costs and capabilities. Query params: type (optional, "image" or "video") Response: { image_models: [...], video_models: [...], upscale_models: [...], face_swap_models: [...] } ### POST /api/v1/images/generate/{model} Start an image generation. Body params: - prompt (string, required) — Text prompt describing the image - negative_prompt (string, optional) — What to exclude - aspect_ratio (string, optional, default "1:1") — e.g. "1:1", "16:9", "9:16" - image_url (string, optional) — Input image for I2I models - num_images (integer, optional, 1-4, default 1) - seed (integer, optional) Response: { id, status: "pending", model, credits_charged, estimated_seconds } ### GET /api/v1/images/{id} Get status and result of an image generation. Poll until status is "completed" or "failed". Response: { id, model, status, credits_charged, created_at, images: [{ url, width, height }] } ### GET /api/v1/images List image generations with pagination. Query params: limit, cursor, model, status ("pending"|"processing"|"completed"|"failed") Response: { data: [...], has_more, next_cursor } ### POST /api/v1/videos/generate/{model} Start a video generation. Body params: - prompt (string, required for T2V models) - image_url (string, required for I2V models) — Input image - aspect_ratio (string, optional, default "16:9") - duration (number, optional) — Duration in seconds - seed (integer, optional) Response: { id, status: "pending", model, credits_charged, estimated_seconds } ### GET /api/v1/videos/{id} Get status and result of a video generation. Poll until status is "completed" or "failed". Response: { id, model, status, credits_charged, created_at, video: { url, duration, width, height } } ### GET /api/v1/videos List video generations with pagination. Query params: limit, cursor, model, status Response: { data: [...], has_more, next_cursor } ### POST /api/v1/face-swap/image Swap a face in an image. Costs 5 credits. Body params: - swap_image_url (string, required) — URL of the source face image - target_image_url (string, required) — URL of the target image to modify Response: { id, status: "pending", model: "face-swap-image", credits_charged: 5, estimated_seconds: 30 } ### POST /api/v1/face-swap/video Swap a face in a video. Costs 30 credits. Body params: - swap_image_url (string, required) — URL of the source face image - target_video_url (string, required) — URL of the target video to modify Response: { id, status: "pending", model: "face-swap-video", credits_charged: 30, estimated_seconds: 120 } ### POST /api/v1/upscale/image Upscale an image. Costs 5 credits. Body params: - image_url (string, required) — URL of the image to upscale - prompt (string, optional) — Enhancement prompt Response: { id, status: "pending", model: "image-upscale", credits_charged: 5, estimated_seconds: 30 } ### POST /api/v1/upscale/video Upscale a video. Costs ~20 credits (varies by resolution/frames). Body params: - video_url (string, required) — URL of the video to upscale Response: { id, status: "pending", model: "video-upscale", credits_charged, estimated_seconds: 120 } --- ## Image Models | ID | Name | Type | Credits | Max Quantity | |----|------|------|---------|-------------| | celebify-pro | CelebifyAI Pro | T2I | 15 | 4 | | celebify-noir | CelebifyAI Noir | T2I | 5 | 4 | | celebify-x-plus | CelebifyAI X Plus | T2I | 5 | 4 | | z-image | Z-Image | T2I | 0.5 | 4 | | seedream-3 | Seedream 3.0 | T2I | 2.2 | 4 | | seedream-4-t2i | Seedream 4.0 T2I | T2I | 2.2 | 6 | | seedream-4-edit | Seedream 4.0 Edit | I2I | 2.2 | 6 | | seedream-4.5-t2i | Seedream 4.5 T2I | T2I | 2.2-4.4 | 4 | | seedream-4.5-edit | Seedream 4.5 Edit | I2I | 2.2-4.4 | 4 | | flux-2-pro-t2i | Flux 2 Pro T2I | T2I | 3.1 | 4 | | flux-2-pro-i2i | Flux 2 Pro I2I | I2I | 3.1 | 4 | | flux-2-flex-t2i | Flux 2 Flex T2I | T2I | 2.5 | 4 | | flux-2-flex-i2i | Flux 2 Flex I2I | I2I | 2.5 | 4 | | qwen-t2i | Qwen T2I | T2I | 0.6-2.2 | 4 | | qwen-i2i | Qwen I2I | I2I | 0.6-2.2 | 1 | | qwen-edit | Qwen Edit | I2I | 0.6-2.2 | 4 | | grok-imagine-t2i | Grok Imagine T2I | T2I | 2.5 | 6 | | grok-imagine-i2i | Grok Imagine I2I | I2I | 2.5 | 2 | ## Video Models | ID | Name | Type | Credits | |----|------|------|---------| | seedance-v1-lite-t2v | Seedance V1 Lite T2V | T2V | varies | | seedance-v1-pro-t2v | Seedance V1 Pro T2V | T2V | varies | | seedance-1-5-pro-t2v | Seedance 1.5 Pro T2V | T2V | varies | | kling-2-5-turbo-t2v | Kling 2.5 Turbo T2V | T2V | varies | | kling-2-6-t2v | Kling 2.6 T2V | T2V | varies | | kling-2-1-master-t2v | Kling 2.1 Master T2V | T2V | varies | | wan-2-6-t2v | Wan 2.6 T2V | T2V | varies | | wan-2-5-t2v | Wan 2.5 T2V | T2V | varies | | veo-3-fast-t2v | Veo 3 Fast T2V | T2V | varies | | veo-3-quality-t2v | Veo 3 Quality T2V | T2V | varies | | sora-2-t2v | Sora 2 T2V | T2V | varies | | sora-2-pro-t2v | Sora 2 Pro T2V | T2V | varies | | hailuo-02-t2v-pro | Hailuo 02 Pro T2V | T2V | varies | | hailuo-02-t2v-standard | Hailuo 02 Standard T2V | T2V | varies | | grok-imagine-t2v | Grok Imagine T2V | T2V | varies | | seedance-v1-lite-i2v | Seedance V1 Lite I2V | I2V | varies | | seedance-v1-pro-i2v | Seedance V1 Pro I2V | I2V | varies | | seedance-1-5-pro-i2v | Seedance 1.5 Pro I2V | I2V | varies | | kling-2-5-turbo-i2v | Kling 2.5 Turbo I2V | I2V | varies | | kling-2-6-i2v | Kling 2.6 I2V | I2V | varies | | kling-2-1-master-i2v | Kling 2.1 Master I2V | I2V | varies | | wan-2-6-i2v | Wan 2.6 I2V | I2V | varies | | wan-2-5-i2v | Wan 2.5 I2V | I2V | varies | | veo-3-fast-i2v | Veo 3 Fast I2V | I2V | varies | | veo-3-quality-i2v | Veo 3 Quality I2V | I2V | varies | | sora-2-i2v | Sora 2 I2V | I2V | varies | | sora-2-pro-i2v | Sora 2 Pro I2V | I2V | varies | | hailuo-02-i2v-pro | Hailuo 02 Pro I2V | I2V | varies | | hailuo-02-i2v-standard | Hailuo 02 Standard I2V | I2V | varies | | grok-imagine-i2v | Grok Imagine I2V | I2V | varies | ## Other Operations | Operation | Credits | |-----------|---------| | Image Upscale | 5 | | Video Upscale | ~20 (varies by resolution/frames) | | Face Swap (Image) | 5 | | Face Swap (Video) | 30 | --- Notes: - Credits are deducted when a generation starts. Failed generations are refunded automatically. - T2I = Text-to-Image, I2I = Image-to-Image, T2V = Text-to-Video, I2V = Image-to-Video - Video model credit costs vary by model, duration, and resolution. Use GET /api/v1/models for current pricing. - Check your balance anytime with GET /api/v1/account. - Full interactive documentation: https://celebifyai.com/docs