curl --request POST \
--url https://api.evolink.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "mj-v7-variation",
"model_params": {
"task_id": "task-unified-xxx",
"image_number": 2,
"type": "strong"
}
}
'{
"created": 1757165031,
"id": "task-unified-1757165031-mjv7",
"model": "mj-v7-variation",
"object": "image.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 45
},
"type": "image",
"usage": {
"billing_rule": "per_call",
"credits_reserved": 1.8,
"user_group": "default"
},
"effective_speed": "fast"
}{
"error": {
"code": "invalid_request",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: mj-v7-variation",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"type": "<string>"
}
}Midjourney V7 Variation
- Based on completed mj-v7 series tasks, generate style variants with differences for the specified image
- Supports optional prompt; if provided, content is modified along with the variation
- Async processing mode, use the returned task ID to query status
curl --request POST \
--url https://api.evolink.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "mj-v7-variation",
"model_params": {
"task_id": "task-unified-xxx",
"image_number": 2,
"type": "strong"
}
}
'{
"created": 1757165031,
"id": "task-unified-1757165031-mjv7",
"model": "mj-v7-variation",
"object": "image.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 45
},
"type": "image",
"usage": {
"billing_rule": "per_call",
"credits_reserved": 1.8,
"user_group": "default"
},
"effective_speed": "fast"
}{
"error": {
"code": "invalid_request",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: mj-v7-variation",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"type": "<string>"
}
}Authorizations
All endpoints require Bearer Token authentication
Get API Key:
Visit API Key Management Page to get your API Key
Add to request header:
Authorization: Bearer YOUR_API_KEY
Body
Model name
mj-v7-variation Model parameters
Show child attributes
Show child attributes
Optional prompt; if provided, serves as remix prompt to modify content along with variation
prompt is optional. Missing, empty, whitespace-only, or controlled-speed/version-flags-only prompts always use Fast and the Fast price, including requests with speed=turbo. With non-empty prompt text, omitted speed or fast uses Fast; turbo uses Turbo at twice the Fast price. Playground offers Fast only. The source must be completed and owned by the current user; promptless operations support image-generation and supported variation, pan, and outpaint results.
"Change to sunset scene"
HTTPS callback URL for task completion
Callback timing:
- Triggered when task is completed, failed, or cancelled
- Sent after billing confirmation
Security restrictions:
- HTTPS protocol only
- Callbacks to private IP addresses are prohibited (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
- URL length must not exceed
2048characters
Callback mechanism:
- Timeout:
10seconds - Up to
3retries after failure (retries at1s/2s/4s after failure) - Callback response body format matches the task query endpoint
- A 2xx status code is considered successful; other status codes trigger retries
"https://your-domain.com/webhooks/image-task-completed"
Response
Task created successfully
Task creation timestamp
1757165031
Task ID
"task-unified-1757165031-mjv7"
Actual model name used
"mj-v7-variation"
Task object type
image.generation.task Task progress percentage (0-100)
0 <= x <= 1000
Task status
pending, processing, completed, failed "pending"
Async task info
Show child attributes
Show child attributes
Task output type
text, image, audio, video "image"
Usage and billing info
Show child attributes
Show child attributes
prompt is optional. Missing, empty, whitespace-only, or controlled-speed/version-flags-only prompts always use Fast and the Fast price, including requests with speed=turbo. With non-empty prompt text, omitted speed or fast uses Fast; turbo uses Turbo at twice the Fast price. Playground offers Fast only. The source must be completed and owned by the current user; promptless operations support image-generation and supported variation, pan, and outpaint results.
fast, turbo