Use development keys only. Never expose production keys.
Introduction#
The CelebifyAI API lets you generate images, videos, upscale media, and perform face swaps programmatically. All endpoints follow REST conventions and return JSON.
Base URL
https://celebifyai.com/api/v1Quick Start
curl https://celebifyai.com/api/v1/account \
-H "Authorization: Bearer cel_your_api_key"Every request must include your API key in the Authorization header as a Bearer token. All responses are JSON with appropriate HTTP status codes.
Authentication#
Authenticate by including your API key as a Bearer token in the Authorization header of every request.
Authorization: Bearer cel_your_api_keyAPI keys start with the prefix cel_. You can create and manage keys in the Developer Portal.
Rate Limits#
API access requires an active subscription (Base, Plus, or Pro). Rate limits are based on concurrent generations rather than requests per second. Polling status endpoints does not count toward the limit.
| Plan | API Access | Concurrent Generations |
|---|---|---|
| Free | No | 1 |
| Base | Yes | 4 |
| Plus | Yes | 6 |
| Pro | Yes | 10 |
Rate limits are shared between the web UI and the API. If you have 2 images generating via the website, those count toward your API concurrency limit.
Free plan users do not have API access. Subscribe to any paid plan to unlock the API.
Errors#
When an error occurs the API returns a JSON object with an error field containing a machine-readable code and a human-readable message.
{
"error": {
"code": "insufficient_credits",
"message": "You need 15 credits but only have 3 remaining.",
"details": {
"required": 15,
"available": 3
}
}
}| HTTP Status | 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 |
Pagination#
List endpoints use cursor-based pagination. Pass limit and cursor as query parameters.
GET /api/v1/images?limit=20&cursor=clx123abcResponse format:
{
"data": [ ... ],
"has_more": true,
"next_cursor": "clx456def"
}When has_more is true, pass next_cursor as the cursor parameter in your next request to fetch the next page. The default limit is 20, maximum is 100.
Account#
Retrieve your current account status including credit balance, plan details, and concurrency usage.
/api/v1/accountReturns your current account information, credit balance, active plan, and concurrency status.
Models#
List all available models. Optionally filter by type. Each model includes its ID, name, type, credit cost, and maximum quantity per request.
/api/v1/modelsReturns all available models. Use the optional ?type query parameter to filter.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| type | string | optional | Filter by type: "image" or "video" |
Image Models
| ID | Name | Type | Credits | Max Qty |
|---|---|---|---|---|
| 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 — Text-to-Video
| 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 |
Video Models — Image-to-Video
| ID | Name | Type | Credits |
|---|---|---|---|
| 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 |
Use the GET /api/v1/models endpoint for the complete, up-to-date list of models and their parameters.
Image Generation#
Generate images using any available image model. Submit a generation request, then poll for the result or use the list endpoint to retrieve your history.
/api/v1/images/generate/{model}Start an image generation with the specified model. Returns a generation object with status 'pending' or 'processing'.
Path Parameters
Request Body (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
| prompt | string | required | Text prompt describing the image to generate |
| negative_prompt | string | optional | What to exclude from the image |
| aspect_ratio | string | optional | Aspect ratio (e.g. "1:1", "16:9", "9:16"). Defaults to "1:1" |
| image_url | string | optional | Input image URL for I2I (image-to-image) models |
| num_images | integer | optional | Number of images to generate (1-4). Defaults to 1 |
| seed | integer | optional | Seed for reproducible results |
Request Body
/api/v1/images/{id}Get the status and result of an image generation. Poll this endpoint until status is 'completed' or 'failed'.
Path Parameters
/api/v1/imagesList your image generations with pagination. Returns most recent first.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | integer | optional | Number of results (1-100, default 20) |
| cursor | string | optional | Pagination cursor from previous response |
| model | string | optional | Filter by model ID |
| status | string | optional | Filter by status: "pending", "processing", "completed", "failed" |
Video Generation#
Generate videos from text prompts or images. Video generation typically takes longer than image generation (30 seconds to several minutes depending on the model).
/api/v1/videos/generate/{model}Start a video generation with the specified model. Returns a generation object with status 'pending' or 'processing'.
Path Parameters
Request Body (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
| prompt | string | required | Text prompt describing the video to generate (required for T2V models) |
| image_url | string | optional | Input image URL (required for I2V models) |
| aspect_ratio | string | optional | Aspect ratio (e.g. "16:9", "9:16", "1:1"). Defaults to "16:9" |
| duration | number | optional | Video duration in seconds (model-dependent) |
| seed | integer | optional | Seed for reproducible results |
Request Body
/api/v1/videos/{id}Get the status and result of a video generation. Poll this endpoint until status is 'completed' or 'failed'.
Path Parameters
/api/v1/videosList your video generations with pagination. Returns most recent first.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | integer | optional | Number of results (1-100, default 20) |
| cursor | string | optional | Pagination cursor from previous response |
| model | string | optional | Filter by model ID |
| status | string | optional | Filter by status: "pending", "processing", "completed", "failed" |
Face Swap#
Swap faces in images and videos. Provide a source face image and a target media file.
/api/v1/face-swap/imageSwap a face in an image. Costs 5 credits.
Request Body (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
| swap_image_url | string | required | URL of the source face image |
| target_image_url | string | required | URL of the target image to modify |
Request Body
/api/v1/face-swap/videoSwap a face in a video. Costs 30 credits.
Request Body (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
| swap_image_url | string | required | URL of the source face image |
| target_video_url | string | required | URL of the target video to modify |
Request Body
Upscaling#
Upscale images and videos to higher resolutions using AI-powered super-resolution.
/api/v1/upscale/imageUpscale an image to a higher resolution. Costs 5 credits.
Request Body (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
| image_url | string | required | URL of the image to upscale |
| prompt | string | optional | Optional prompt to guide the upscaling |
Request Body
/api/v1/upscale/videoUpscale a video to a higher resolution. Approximately 20 credits (varies by duration and resolution).
Request Body (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
| video_url | string | required | URL of the video to upscale |
Request Body
Credit Costs#
Below is a complete reference of credit costs for all operations. Credits are deducted when a generation starts. If a generation fails due to a server error, credits are automatically refunded.
Image Models
| Model | Type | Credits per Image |
|---|---|---|
| CelebifyAI Pro | T2I | 15 |
| CelebifyAI Noir | T2I | 5 |
| CelebifyAI X Plus | T2I | 5 |
| Z-Image | T2I | 0.5 |
| Seedream 3.0 | T2I | 2.2 |
| Seedream 4.0 T2I | T2I | 2.2 |
| Seedream 4.0 Edit | I2I | 2.2 |
| Seedream 4.5 T2I | T2I | 2.2-4.4 |
| Seedream 4.5 Edit | I2I | 2.2-4.4 |
| Flux 2 Pro T2I | T2I | 3.1 |
| Flux 2 Pro I2I | I2I | 3.1 |
| Flux 2 Flex T2I | T2I | 2.5 |
| Flux 2 Flex I2I | I2I | 2.5 |
| Qwen T2I | T2I | 0.6-2.2 |
| Qwen I2I | I2I | 0.6-2.2 |
| Qwen Edit | I2I | 0.6-2.2 |
| Grok Imagine T2I | T2I | 2.5 |
| Grok Imagine I2I | I2I | 2.5 |
Video Models
| Model | Type | Credits per Video |
|---|---|---|
| Seedance V1 Lite T2V | T2V | varies |
| Seedance V1 Pro T2V | T2V | varies |
| Seedance 1.5 Pro T2V | T2V | varies |
| Kling 2.5 Turbo T2V | T2V | varies |
| Kling 2.6 T2V | T2V | varies |
| Kling 2.1 Master T2V | T2V | varies |
| Wan 2.6 T2V | T2V | varies |
| Wan 2.5 T2V | T2V | varies |
| Veo 3 Fast T2V | T2V | varies |
| Veo 3 Quality T2V | T2V | varies |
| Sora 2 T2V | T2V | varies |
| Sora 2 Pro T2V | T2V | varies |
| Hailuo 02 Pro T2V | T2V | varies |
| Hailuo 02 Standard T2V | T2V | varies |
| Grok Imagine T2V | T2V | varies |
| Seedance V1 Lite I2V | I2V | varies |
| Seedance V1 Pro I2V | I2V | varies |
| Seedance 1.5 Pro I2V | I2V | varies |
| Kling 2.5 Turbo I2V | I2V | varies |
| Kling 2.6 I2V | I2V | varies |
| Kling 2.1 Master I2V | I2V | varies |
| Wan 2.6 I2V | I2V | varies |
| Wan 2.5 I2V | I2V | varies |
| Veo 3 Fast I2V | I2V | varies |
| Veo 3 Quality I2V | I2V | varies |
| Sora 2 I2V | I2V | varies |
| Sora 2 Pro I2V | I2V | varies |
| Hailuo 02 Pro I2V | I2V | varies |
| Hailuo 02 Standard I2V | I2V | varies |
| Grok Imagine I2V | I2V | varies |
Other Operations
| Operation | Credits |
|---|---|
| Image Upscale | 5 |
| Video Upscale | ~20 (varies by duration) |
| Face Swap (Image) | 5 |
| Face Swap (Video) | 30 |
GET /api/v1/account.Need help? Contact Support or join our Discord.
CelebifyAI API Documentation