Claude Opus 5.5 is live on SeedRouter
SeedRouter Docs
API Reference

Tasks

Poll task status and retrieve generated images.

View Markdown

Task states

StatusMeaningNext step
processingThe task has been accepted and is not yet finished.Continue polling.
completedThe task succeeded.Read output.data[].url.
failedThe task did not complete successfully.Inspect error; the task is not charged.

Submission response

Submission returns a task reference:

{
  "id": "task_...",
  "model": "gpt-image-2",
  "status": "processing",
  "created_at": 1789970508
}

Poll the task

curl https://api.seedrouter.ai/v1/tasks/YOUR_TASK_ID \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

Poll at a modest interval, such as every three seconds, until status is completed or failed. A network timeout while polling does not mean generation failed: keep the task ID and resume checking it. Do not create another task to check progress.

Complete polling example

Run this after the Python submission example in the Quickstart. It uses the returned task_id and waits up to ten minutes. Reaching this local deadline stops polling only; retain the ID and resume querying the same task.

import time

print(f"Task ID: {task_id}")
deadline = time.monotonic() + 600
while time.monotonic() < deadline:
    result = requests.get(
        f"https://api.seedrouter.ai/v1/tasks/{task_id}",
        headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
        timeout=30,
    )
    result.raise_for_status()
    task = result.json()
    if task["status"] == "completed":
        for image in task["output"]["data"]:
            print(image["url"])
        break
    if task["status"] == "failed":
        raise RuntimeError(task["error"]["message"])
    time.sleep(3)
else:
    raise TimeoutError(f"Still waiting. Resume polling task {task_id}.")

Completed task

A completed task returns hosted image URLs and usage:

{
  "id": "task_...",
  "model": "gpt-image-2",
  "status": "completed",
  "created_at": 1789970508,
  "finished_at": 1789970538,
  "output": {
    "created": 1789970532,
    "data": [{"url": "https://static.seedrouter.ai/media/tasks/task_example/0.png"}],
    "usage": {
      "input_tokens": 29,
      "output_tokens": 196,
      "total_tokens": 225
    }
  }
}
FieldMeaning
idKeep this ID for subsequent queries.
statusprocessing, completed, or failed.
created_at, finished_atUnix timestamps in seconds; completion time is unset or zero while processing.
output.data[].urlGenerated image URLs, available on completion.
output.usageReported token usage, when available. Detail objects may contain text and image token counts.
errorStructured error on a failed task.

This API uses asynchronous task delivery. It is not a synchronous Images SDK replacement; stream and partial_images are not supported.