GoodTake AI Docs
Generate images, characters and character videos with AI — REST API, CLI, and MCP server for Claude.
Welcome to GoodTake AI
GoodTake AI gives you programmatic access to the best generative models — GPT Image, ByteDance Seedream, Google Gemini and Dreamina Seedance — through a single unified API, plus two productised endpoints that compile the prompt for you: Characters and Character Swaps.
Base URL: https://api.goodtake.ai/v1
Quick start
# 1. Get an API key at goodtake.ai → Settings → Developer Settings
# 2. Generate your first image (synchronous, returns URLs inline)
curl -s -X POST "https://api.goodtake.ai/v1/image/generate?wait=true" \
-H "Authorization: Bearer $GOODTAKE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model_identifier":"gpt-image-2","prompt":"a red fox in snow","params":{"quality":"high"}}' \
| jq '.images[].url'Explore the docs
Authentication
API keys, security best practices, and how keys are scoped
Image API
Generate, poll, stream — full REST reference
Character API
Photos in, a consistent character sheet and outfit set out
Character Swap API
Put your character into any short video, audio preserved
CLI
Install gt and generate images from your terminal
MCP & Claude
Connect GoodTake to Claude.ai or Claude Code via MCP
Two kinds of endpoint
| You supply | We supply | |
|---|---|---|
| Image API | Model, prompt, params | The generation |
| Character / Swap API | Photos, or a video link | The model, the prompt, the sizing — all compiled server-side |
The productised endpoints never accept a prompt and never return one. That is what makes them stable: the copy behind them is tuned continuously without your integration changing.
Endpoint overview
Images
| Method | Path | Description |
|---|---|---|
GET | /v1/models?type=image | List enabled models with cost and supported params |
POST | /v1/image/generate | Create a generation (async by default; ?wait=true for sync) |
GET | /v1/image/generations/{id} | Poll status and get signed image URLs |
GET | /v1/image/generations/{id}/stream | Server-Sent Events stream |
GET | /v1/image/generations | List your org's generations (paginated) |
Characters
| Method | Path | Description |
|---|---|---|
POST | /v1/character | Create a character from up to 20 reference photos |
GET | /v1/character/{id} | Poll status, sheet, outfits and reference outcomes |
GET | /v1/character | List your org's characters (paginated) |
POST | /v1/character/{id}/regenerate | Re-run from stored references |
GET | /v1/character/pricing | Price both run shapes |
Character swaps
| Method | Path | Description |
|---|---|---|
POST | /v1/character-swap | Swap a character into a social link or direct video |
GET | /v1/character-swap/{id} | Poll status, source metadata and the finished video |
GET | /v1/character-swap | List your org's swaps (paginated) |
POST | /v1/character-swap/{id}/regenerate | Re-run from the stored source |
GET | /v1/character-swap/estimate | Quote a swap before creating it |
All API keys start with gt_. The same key works in the REST API, the CLI,
and the MCP server.