Docs

API Documentation

API Task Limit

Generation APIs use asynchronous task processing. When a task is created successfully, the API returns a taskId. Use the result endpoint to check task status, progress, queue position, and final output.

This document explains the public task limits for API integrations, including requests per minute, unfinished jobs, and how credits are charged when multiple tasks are submitted.


Rate Limit Summary

The generation APIs do not use a fixed public requests-per-minute limit for task creation. The practical limit is based on how many unfinished jobs an account has at the same time.

WorkflowRequests per minuteConcurrent / unfinished jobsCredit charging
AI 3DNo fixed public RPM limit1 running job at a time. Additional submitted jobs wait in queue.Charged per accepted task
Other generation APIsNo fixed public RPM limitUp to 30 unfinished jobs per account and workflowCharged per accepted task

Unfinished jobs include both queued jobs and running jobs.

The 30-job limit is a task-count limit, not a credit package or a free quota. Each accepted generation task is charged according to that API's credit rules.


Task Status

StatusMeaningCounts as unfinished
UnprocessedThe task has been accepted and is waiting to runYes
ProcessingThe task is currently runningYes
SuccessThe task completed successfullyNo
FailedThe task failedNo

The result endpoint may also return waitNumber, which indicates the queue position for a waiting task. When a task is running or finished, waitNumber is usually 0.


AI 3D Tasks

AI 3D tasks are processed one at a time.

You can submit multiple AI 3D tasks and each successful submission returns a taskId. However, only one AI 3D task runs at once. Additional AI 3D tasks wait until the current task finishes.

Recommended integration behavior:

  1. Save the returned taskId.
  2. Poll the result endpoint every 3-5 seconds.
  3. Treat Unprocessed as waiting.
  4. Treat Processing as actively running.
  5. Use waitNumber and percentage to show progress to your users.

Other Generation Tasks

For generation workflows other than AI 3D, each account can have up to 30 unfinished jobs for the same workflow.

This is an account-level limit. If multiple API keys are created under the same account, they share the same limit.

This does not always mean all 30 jobs are running at the exact same moment. Some jobs may be waiting and some may be running. The limit counts both.

When the account already has 30 unfinished jobs for a workflow, new task submissions for that workflow may be temporarily rejected until existing jobs finish.

CodeNameMeaning
9015TASK_NOT_COMPLETEDThe account has reached the unfinished-job limit for this workflow. Retry after existing jobs complete.

Credits and Unfinished Jobs

Credits are deducted when a generation task is successfully created. If the task ultimately fails, the deducted credits are automatically refunded.

The unfinished-job limit does not change the credit cost of each task. If you submit multiple tasks, each accepted task is charged separately.

Examples:

ExampleActive unfinished jobsCredits deducted at task creation
Submit 30 Change Furniture tasks3030 x 1 credit = 30 credits
Submit 30 Home Decor tasks with modelType: "Base"3030 x 3 credits = 90 credits
Submit 30 Home Decor tasks with modelType: "Pro"3030 x 10 credits = 300 credits
Submit 10 Landscaping Flash, 10 Base, and 10 Pro tasks3010 x 1 + 10 x 3 + 10 x 10 = 140 credits

For the full credit table, see Credits Deduction Reference.

Polling the result endpoint does not create a new generation task and does not count as an unfinished job.


Temporary Service Busy Responses

In some cases, new task submissions may be temporarily rejected because the service is busy. This can happen even if your account has fewer than 30 unfinished jobs.

CodeNameMeaning
5020QUEUE_TASK_OVERFLOWThe service is currently busy. Retry later.

This is temporary. Do not treat it as a permanent failure.


  1. Save every returned taskId.
  2. Poll task status regularly.
  3. Keep a local list of unfinished jobs per account and workflow.
  4. Remove jobs from the unfinished list when status becomes Success or Failed.
  5. For non-AI-3D workflows, keep unfinished jobs at or below 30 before submitting more.
  6. If you receive 9015 or 5020, retry after a delay.

Suggested retry behavior:

SituationRecommended Action
9015 TASK_NOT_COMPLETEDWait for existing jobs from the same account and workflow to complete, then retry.
5020 QUEUE_TASK_OVERFLOWWait and retry with backoff.
Task is UnprocessedContinue polling; the task is waiting.
Task is ProcessingContinue polling; the task is running.

Need Higher Throughput?

If the standard 30 unfinished jobs per account and workflow limit does not meet your integration needs, please contact us at [email protected]. We can review your use case and discuss options for higher throughput or a dedicated arrangement.