Seedance 2.5 is live on EvoLinkTry Seedance 2.5
How to Use the Qwen Image 3.0 API on EvoLink
guide

How to Use the Qwen Image 3.0 API on EvoLink

EvoLink Team
EvoLink Team
Product Team
July 22, 2026
Updated on August 5, 2026
9 min read
This guide takes an EvoLink user from an API key to a completed Qwen Image 3.0 image task. The minimum workflow is simple: call POST /v1/images/generations with model qwen-image-3.0-pro, store the returned id, then poll GET /v1/tasks/{task_id} until the task completes.
The Qwen Image 3.0 route is live on EvoLink as of August 5, 2026. Upstream access remains in limited preview, so use the integration pattern below with explicit timeouts, retries, result storage, and a fallback route before sending critical production traffic.
Open Qwen Image 3.0 on EvoLink

Before you start

You need:

  1. an EvoLink account and API key
  2. sufficient account balance for your test
  3. a prompt for text-to-image, or one to three public image URLs for reference-guided editing
  4. a place to persist task_id, task status, and final image URLs
ItemCurrent EvoLink contract
Base URLhttps://api.evolink.ai
Create taskPOST /v1/images/generations
Query taskGET /v1/tasks/{task_id}
Model IDqwen-image-3.0-pro
ModesText-to-image; image-to-image with 1-3 references
Outputsn: 1-6
Sizeauto or a supported WIDTHxHEIGHT value
AuthenticationBearer API key
ProcessingAsynchronous task
Keep endpoint-level details in the Qwen Image 3.0 API tab. This article explains the implementation path and production decisions rather than replacing the live API reference.

Step 1: create a text-to-image task

Set your key in an environment variable. Do not hard-code it in a browser bundle or commit it to source control.

export EVOLINK_API_KEY="your_api_key"

Create a task:

curl --request POST "https://api.evolink.ai/v1/images/generations" \
  --header "Authorization: Bearer ${EVOLINK_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "qwen-image-3.0-pro",
    "prompt": "A structured annual-report cover with a clean grid, navy and white palette, precise small typography, and a photorealistic glass product in the center",
    "n": 1,
    "size": "1024x1024",
    "prompt_extend": false,
    "watermark": false
  }'

The initial response returns a task identifier and processing state:

{
  "id": "task-unified-1772000000-a1b2c3d4",
  "status": "processing"
}
Store the returned id immediately (use it as the {task_id} path value when polling). Do not hold the HTTP request open while generation runs.

Step 2: poll the asynchronous task

Query the task until it reaches a terminal state:

curl --request GET \
  "https://api.evolink.ai/v1/tasks/task-unified-1772000000-a1b2c3d4" \
  --header "Authorization: Bearer ${EVOLINK_API_KEY}"

A completed task includes result URLs and usage information:

{
  "id": "task-unified-1772000000-a1b2c3d4",
  "status": "completed",
  "progress": 100,
  "results": ["https://example-result-host/image_0.png"],
  "usage": {
    "credits_used": 5.5044,
    "cost": { "credits": 5.5044, "usd": 0.0809, "cny": 0.5504 }
  }
}
Treat completed, failed, and cancelled as terminal states. For a polling client, start with a short interval, increase it gradually, and enforce an overall timeout. Avoid a tight loop that adds unnecessary load without making generation faster.
Qwen Image 3.0 structured report demonstrating small-text and complex-layout output
Qwen Image 3.0 structured report demonstrating small-text and complex-layout output

Step 3: add reference images for editing

For image-to-image or guided editing, include image_urls. Omit the field entirely for pure text-to-image.
curl --request POST "https://api.evolink.ai/v1/images/generations" \
  --header "Authorization: Bearer ${EVOLINK_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "qwen-image-3.0-pro",
    "prompt": "Keep the product identity and rebuild the scene as a clean editorial campaign with precise bilingual typography",
    "image_urls": [
      "https://your-cdn.example.com/product-reference.png"
    ],
    "n": 2,
    "prompt_extend": true
  }'

Use one to three input images. Make each role explicit in the prompt: which image controls the subject, which controls style, and which controls composition. A vague “combine these” instruction is harder to evaluate and reproduce.

Parameter choices that change output behavior

ParameterUse it forProduction guidance
promptImage content, layout, text, style, constraintsUse structured sections for dense briefs; verify exact rendered copy
image_urlsReference-guided editingUse stable public HTTPS URLs (base64 / data URLs are not supported); keep input files within documented limits
nGenerate 1-6 candidatesIncrease only when multiple candidates improve accepted-output cost
sizeauto or explicit output dimensionsUse an explicit size for product surfaces with fixed aspect ratios
prompt_extendLet the model enrich a short promptDisable when exact wording and layout constraints must remain unchanged
negative_promptExclude unwanted visual traitsKeep it short and specific instead of restating the positive prompt
seedImprove repeatability during testsStore it with the prompt and model ID, but do not assume perfect determinism
watermarkAdd or omit the model watermarkMatch your compliance and product requirements
callback_urlReceive terminal task updatesUse HTTPS, authenticate callbacks at your application layer, and make handling idempotent

The current EvoLink API reference is the authority for defaults and allowed values. Limited-preview upstream contracts can change, so do not copy parameter assumptions from a provider-direct SDK into the EvoLink request without checking the model page.

Polling or callback: which should you use?

Use polling for local development and low-volume tools. It is easy to debug and does not require a public webhook endpoint.

Use callback_url for application workflows where a worker should resume after generation completes. Your callback handler should:
  • return success quickly
  • verify the request according to your application’s security policy
  • use task_id as an idempotency key
  • tolerate duplicate delivery
  • fetch current task state before final business actions when necessary
  • queue image download and storage instead of doing heavy work inside the webhook request

Even with callbacks, keep a reconciliation job. It can find tasks that remained in a non-terminal state because a callback was missed or your service was temporarily unavailable.

Store result images promptly

The current model documentation states that generated result links are temporary. Download accepted outputs to your own object storage instead of saving third-party result URLs as permanent application assets.

A useful result record includes:

task_id
model_id
prompt_version
input_image_ids
request_parameters
submitted_at
completed_at
terminal_status
result_storage_urls
credits_used
review_status
fallback_task_id

This record supports customer support, cost analysis, replay, and model migration.

Production retry and fallback policy

Do not retry every failure blindly. First separate failures into categories.

Failure typeDefault actionWhy
Authentication or balance errorStop and alertA retry will not fix credentials or funding
Invalid parameter or input URLFix request; do not auto-retryRepeating the same invalid payload wastes time
Rate limit or transient upstream errorRetry with exponential backoff and jitterThe condition may clear without changing the prompt
Task timeout with unknown stateReconcile task before resubmittingAvoid duplicate generation and duplicate spend
Successful image rejected by QAAdjust prompt or route to fallbackThis is a quality decision, not a transport retry

While upstream access and capacity remain limited, keep another image model behind the same product action. A fallback should preserve the user’s original prompt and assets but adapt only the parameters required by the alternative model. Log when fallback occurs so a silent route change does not corrupt your evaluation data.

A rollout path for the first production feature

Start with one narrow job rather than exposing every parameter in a generic image generator.

Good launch candidates include:

  • a report-cover or infographic generator
  • multilingual ecommerce creative variants
  • educational diagram drafts with mandatory human review
  • product campaign layouts from one reference image
  • storyboard generation from a structured creative brief

Use this rollout sequence:

  1. Build a fixed prompt template and a small parameter surface.
  2. Run internal evaluation with 20-50 representative inputs.
  3. Save outputs to your own storage and add reviewer states.
  4. Launch behind a feature flag or limited user cohort.
  5. Measure task success, p50/p95 latency, accepted-output rate, retries, and cost per accepted image.
  6. Keep a fallback until measured capacity is stable for your traffic.
If you are deciding whether to migrate an existing Qwen workflow, read Qwen Image 3.0 vs 2.0 before changing the default route.

FAQ

Use qwen-image-3.0-pro.

Which endpoint creates an image task?

Send POST https://api.evolink.ai/v1/images/generations with your Bearer API key and JSON request body.

Is the API synchronous?

No. The EvoLink route returns a task_id. Poll GET /v1/tasks/{task_id} or provide a supported HTTPS callback URL.

How do I run text-to-image instead of editing?

Send prompt without image_urls. Add one to three image_urls only when you want reference-guided editing.

How many images can one request generate?

The current route supports n from 1 to 6. Evaluate whether extra candidates improve cost per accepted output before increasing batch size.

Should I enable prompt extension?

Enable prompt_extend when you want the model to enrich a short creative prompt. Disable it when exact wording, labels, and layout instructions must stay under your control.

How should I store generated images?

Download accepted results to your own object storage. Do not rely on temporary generated-image URLs as permanent assets.

Is Qwen Image 3.0 ready for critical production traffic?

The EvoLink route is live, but production readiness is workload-specific while upstream access remains limited. Measure latency, failure rate, acceptance, and capacity, and keep a fallback route.

Where can I see current price and parameters?

Use the Qwen Image 3.0 product page, which contains the current EvoLink pricing module, Playground, and API reference.

Sources

Ready to Reduce Your AI Costs by 89%?

Start using EvoLink today and experience the power of intelligent API routing.