{
  "schema_version": 1,
  "public_model_id": "bytedance/seedance-2.0-mini",
  "canonical_page": "https://www.maxapi.dev/models/bytedance/seedance-2.0-mini",
  "reviewed_at": "2026-10-29",
  "generated_at": "2026-10-29T07:40:09.881Z",
  "scope": "Checked against MaxAPI's public catalogue, gateway implementation and local regression cases. Shared gateway checks are not separate end-to-end tests of every listed model. This is an integration reference, not a live upstream availability or performance report.",
  "summary": "Seedance 2.0 Mini uses bytedance/seedance-2.0-mini in MaxAPI's video-generation API. Submit a task, save its identifier, and poll for the final result. Acceptance is not completion. Supported media, duration and resolution depend on this model entry and the selected route.",
  "aliases": [],
  "model_profile": {
    "family_id": "bytedance/seedance-2.0-mini",
    "reviewed_at": "2026-10-29",
    "title": "Lowest-cost Seedance 2.0 drafts",
    "provider_positioning": "BytePlus lists Seedance 2.0 Mini as a basic-version model in the 2.x family alongside 2.0 Fast, with text, first-frame, first-and-last-frame and multimodal-reference workflows at 480p or 720p. On MaxAPI it has the lowest per-token rate of the Seedance entries.",
    "selection_advice": "Compare it for high-volume drafts, prompt exploration and short clips where 720p is enough and cost matters more than the last bit of detail. Re-render accepted shots on Fast or standard 2.0 when the comparison shows a visible difference.",
    "limitations": "A lower rate is not a promise of identical motion or detail to Fast or 2.0, and Mini is not offered at 1080p or 4K. Compare the same prompt, references, duration and resolution before switching a production workload.",
    "suggested_use_cases": [
      {
        "title": "Prompt exploration",
        "body": "Try several prompt wordings at 480p with the same duration, then keep the one whose motion and framing work best."
      },
      {
        "title": "Storyboard animatics",
        "body": "Turn each storyboard frame into a short first-frame clip to check timing before spending on higher tiers."
      },
      {
        "title": "Cost-sensitive social clips",
        "body": "Use one clear action at 720p and check the clip at the size it will be viewed."
      }
    ],
    "example_prompt": {
      "title": "A five-second paper-boat test",
      "text": "One continuous five-second shot of a small white paper boat drifting across a calm lake at golden hour. The camera follows slowly at water level. Keep the boat's folds and the light consistent, with gentle ripples and no cuts, people or added text.",
      "review": "Set 5 seconds and 720p in the request; check that the boat keeps its shape and the water motion stays smooth."
    },
    "scope": "Provider capabilities describe the model, not the complete MaxAPI feature set. Use the parameters, input types and routes documented for this MaxAPI entry. Vendor speed or quality descriptions are not service-level guarantees.",
    "variant_note": null,
    "sources": [
      {
        "label": "BytePlus · Seedance 2.x capability comparison",
        "url": "https://docs.byteplus.com/en/docs/byteplus_las/video_gen_enhanced"
      }
    ]
  },
  "illustration": {
    "url": "https://www.maxapi.dev/model-guides/individual-20260910/seedance-2-0-fast.webp",
    "alt": "Three storyboard composition studies of a blue ceramic cup from different viewpoints",
    "caption": "Static storyboard concept for a short camera move, not frames from a generated video.",
    "provenance": "ai_generated_editorial_concept",
    "is_output_from_named_model": false,
    "is_benchmark": false
  },
  "illustrations": [
    {
      "section": "usecases",
      "url": "https://www.maxapi.dev/model-guides/individual-20260910/seedance-2-0-fast.webp",
      "alt": "Three storyboard composition studies of a blue ceramic cup from different viewpoints",
      "caption": "Static storyboard concept for a short camera move, not frames from a generated video.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    },
    {
      "section": "features",
      "url": "https://www.maxapi.dev/model-guides/expanded-20260911/seedance-2-0-fast-practice.webp",
      "alt": "Blue ceramic cup and camera on a short tabletop slider",
      "caption": "Plan one simple camera move around a clearly defined subject.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    },
    {
      "section": "prompts",
      "url": "https://www.maxapi.dev/model-guides/expanded-20260911/seedance-2-0-fast-prompt.webp",
      "alt": "Cobalt ceramic cup on a pale table with wide horizontal space and morning light.",
      "caption": "Static planning concept for a short lateral camera move.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    },
    {
      "section": "workflow",
      "url": "https://www.maxapi.dev/model-guides/expanded-20260911/seedance-2-0-fast-workflow.webp",
      "alt": "Three blue-cup shot concepts with one selected by a green clip.",
      "caption": "Choose a shot direction before refining the movement plan.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    }
  ],
  "configured_facts": [
    {
      "label": "Request model ID",
      "value": "bytedance/seedance-2.0-mini",
      "code": true
    },
    {
      "label": "Output type",
      "value": "Video"
    },
    {
      "label": "Base URL",
      "value": "https://api.maxapi.dev",
      "code": true
    },
    {
      "label": "Generation workflow",
      "value": "Asynchronous task + polling"
    },
    {
      "label": "Quality values",
      "value": "720p / 480p",
      "code": true
    },
    {
      "label": "Resolution & dimensions",
      "value": "720p / 480p"
    },
    {
      "label": "Video duration",
      "value": "4–15 seconds for the listed Seedance 2.0 models."
    }
  ],
  "integration_checklist": {
    "reviewedAt": "2026-10-29",
    "labels": {
      "title": "Check your first result",
      "requestTitle": "Send the right fields",
      "responseTitle": "Read the actual result",
      "example": "Illustrative response shape — not a live result",
      "poll": "Query the existing task",
      "reviewed": "Request-contract review",
      "nativeRequest": "Alternative: a Gemini-native request",
      "nativeResult": "Gemini-native result shape — illustrative only"
    },
    "scope": "Checked against the public catalogue and gateway code. Examples are structural illustrations, not paid model tests, latency measurements or a guarantee that every route is currently available.",
    "requestChecks": [
      {
        "field": "model / mode",
        "body": "Use bytedance/seedance-2.0-mini with mode=text_to_video for the first example. Do not substitute the Seedance 2.5 Ark payload or a retired beta model ID."
      },
      {
        "field": "duration / resolution / ratio",
        "body": "The example requests 5 seconds. Listed resolutions: 720p, 480p. Fix duration, resolution and whether a reference video is sent when comparing charges."
      },
      {
        "field": "HTTP 202 / id / poll_url",
        "body": "A successful submission returns a task receipt, not a video. Save id and poll_url before closing the client; the JSON identifier is id, not task_id."
      }
    ],
    "responseChecks": [
      {
        "field": "status / video",
        "body": "Poll with authentication from the same account. queued/running are not final; on succeeded, read the top-level video URL. On failed/canceled, inspect message instead of assuming a usable file."
      },
      {
        "field": "estimated_charge_credits",
        "body": "The receipt carries an estimate, not a final invoice. Check final usage and billing records; downloading the returned file is a separate step from task completion."
      }
    ],
    "sample": {
      "id": "example-task-id",
      "object": "video.generation.task",
      "status": "queued",
      "model": "bytedance/seedance-2.0-mini",
      "poll_url": "/v1/videos/generations/example-task-id"
    },
    "pollCurl": "# Set TASK_ID to the saved response.id; this queries, it does not create a task.\ncurl --fail-with-body \"https://api.maxapi.dev/v1/videos/generations/${TASK_ID:?Set TASK_ID from response.id}\" \\\n  -H \"Authorization: Bearer $MAXAPI_KEY\""
  },
  "pricing_scope": "1 credit = US$1. These are catalogue base rates, not a live account quote; account multipliers apply. Seedance bills the output tokens the provider reports: tokens ≈ (output seconds + reference-video seconds) × width × height × 24 / 1024, about 21,600 per second at 720p 16:9. The with-reference-video rate applies only when the request includes at least one reference video; reference images, first/last frames and audio bill at the no-reference rate. With a reference video the provider bills at least output seconds + ⌈⅔ × output seconds⌉ (its minimum for video input). A hold is reserved up front — with a reference video it covers up to 15 s of reference video (30 s on Seedance 2.5) — and settled against the reported tokens, refunding the rest; failed tasks are not charged.",
  "pricing_index": "https://www.maxapi.dev/pricing.json",
  "routing_rules": [
    {
      "title": "Which route wins?",
      "body": "Routing priority is: the API key's configured route_modes list → an explicitly requested route → the model's default route. A non-empty key list takes precedence over route_mode in the request. To test a specific route, check the key configuration first; changing the request alone may not change the route used."
    },
    {
      "title": "RPM is shared at account level",
      "body": "An account's positive RPM limit covers its API keys together. A key can impose a stricter limit, but a higher key limit does not override the user limit. For example, a user limit of 200 RPM is not 200 RPM for each key. Service-level RPM and concurrency controls also apply; adding keys is not a way to bypass them."
    }
  ],
  "troubleshooting": [
    {
      "code": "429",
      "title": "rate_limit_exceeded / capacity_exhausted",
      "meaning": "429 can represent account/key RPM, service-wide capacity or generation capacity. Use Retry-After and available X-RateLimit-* / X-Global-* headers to distinguish them; one status code does not identify one unique cause.",
      "action": "Respect Retry-After when present, reduce request rate or active concurrency as appropriate, and use bounded backoff. Do not treat the site's total capacity as your account's personal quota."
    }
  ],
  "verification": {
    "environment": "local_mock_requests_and_test_storage",
    "coverage": "shared_gateway_components_not_each_model_end_to_end",
    "paid_upstream_calls": 0,
    "reviewed_at": "2026-10-29",
    "cases": [
      {
        "key": "shared-user-rpm",
        "title": "Multiple keys share the user limit",
        "input": "Use two keys owned by the same account against an in-memory limiter with a small user quota.",
        "result": "Requests across the keys consume the same user quota; subsequent requests are limited. A larger key quota does not override the user quota, and a smaller key quota remains effective."
      }
    ],
    "limitations": "Local tests use simulated requests, responses and test storage; they do not call paid model channels. They verify request handling, not model image quality, live success rates, latency or end-to-end support for the maximum reference count. The concept illustrations elsewhere on this page are not these test outputs."
  },
  "sources": {
    "maxapi_documentation": "https://www.maxapi.dev/docs",
    "catalogue": "https://www.maxapi.dev/models.json",
    "provider_documentation": "https://docs.byteplus.com/en/docs/byteplus_las/video_gen_enhanced"
  }
}
