GoodTake AI Docs
Character Swap API

Regenerate

POST /v1/character-swap/{id}/regenerate — re-run a swap from its stored source

Endpoint

POST /v1/character-swap/{id}/regenerate

Re-runs the swap from the stored source. The original link is never re-downloaded — social CDN URLs die within hours, and the mirrored copy does not.

curl -s -X POST "https://api.goodtake.ai/v1/character-swap/$ID/regenerate" \
  -H "Authorization: Bearer $GOODTAKE_API_KEY" | jq .

Response — 202 Accepted

Same job envelope as create, except estimated_cost is exact — the stored source's duration is already known:

{
  "id": "1f7b2c40-8e55-4b21-9f03-77a1d0c4e902",
  "status": "pending",
  "character_id": "9d2f6a3e-4c11-4a90-b1d7-2f8e6a4c0b11",
  "model": "dreamina-seedance-2-5-260628",
  "estimated_cost": 542,
  "with_audio": true,
  "resolution": "1080p",
  "poll_url": "/public/v1/character-swap/1f7b2c40-8e55-4b21-9f03-77a1d0c4e902"
}

A regenerate is billed as a new generation at the same rate as the original run.

Unlike create, this endpoint is synchronous about its failure modes — the interesting ones are real status codes rather than a polled failed state.

Errors

StatusMeaning
401Missing or invalid API key
402Insufficient credits
404Unknown swap id, or one belonging to another organization
409A run for this swap is already open. Enforced by the database, never by a read-then-write check, so two concurrent regenerates can never both bill you.
422The stored source is unusable (ingest failed, or the source or character sheet was rejected by the content-safety filter) — create a new swap