> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bibigpt.co/llms.txt
> Use this file to discover all available pages before exploring further.

# ChatIMG 画像生成 API

> コードから画像を一括生成・編集：トークン取得、生成開始、結果のポーリング、料金確認

<Card title="ChatIMG API パネル" icon="key" href="https://chatimg.ai/user/api">
  ログイン後、トークンの取得・クレジット残高・最新の料金はこちら：[https://chatimg.ai/user/api](https://chatimg.ai/user/api)
</Card>

## 1. API トークンを取得する

ChatIMG と BibiGPT はアカウント基盤を共有しているため、**API トークンも同一のもの**です。ChatIMG に
ログインして [chatimg.ai/user/api](https://chatimg.ai/user/api) を開くと取得できます（すでに BibiGPT の
オープン API を利用している場合、そのトークンをそのまま使えます）。

すべてのエンドポイントは HTTP ヘッダーで認証します：

```shell theme={null}
curl --header 'Authorization: Bearer <api_token>'
```

<Note>
  API 呼び出しで消費するクレジットは Web 版と**同じ残高**です。個別の契約やチャージは不要です。
  残高は [chatimg.ai/user/api](https://chatimg.ai/user/api)、チャージは
  [chatimg.ai/pricing](https://chatimg.ai/pricing) から。
</Note>

## 2. 呼び出しの流れ

画像生成は**非同期**です。まずタスクを開始し、元画像の URL をキーに結果をポーリングします。

### ステップ 1 — 生成を開始 [`POST /v1/generateImage`](https://docs.bibigpt.co/api-reference/open/generate-or-edit-an-image-with-ai-chatimgai)

```shell theme={null}
curl -X POST https://api.bibigpt.co/api/v1/generateImage \
  -H "Authorization: Bearer $CHATIMG_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "imageUrl": "https://example.com/photo.jpg",
    "prompt": "ghibli style",
    "model": "nanobanana-2-lite"
  }'
```

| パラメータ      | 必須  | 説明                                                            |
| ---------- | --- | ------------------------------------------------------------- |
| `imageUrl` | はい  | 元画像のアドレス。http(s) URL と base64（`data:image/...` 接頭辞の有無は問わず）に対応 |
| `prompt`   | いいえ | 仕上がりの指示。既定値は `ghibli`                                         |
| `model`    | いいえ | モデル識別子。既定値は `nanobanana-2-lite`。下の料金表を参照                      |

レスポンスの `taskId` は進捗追跡用、`costCredits` は今回消費したクレジット、`balanceRemaining` は
消費後の残高です。

<Note>
  生成に失敗した場合、クレジットは**自動的に返却**されます。ご自身での照合は不要です。
</Note>

### ステップ 2 — 結果をポーリング [`GET /v1/imageStatus`](https://docs.bibigpt.co/api-reference/open/get-the-status-of-an-image-generation-task)

送信時と**同じ `imageUrl`** をキーに照会します。読み取り専用で課金されません：

```shell theme={null}
curl "https://api.bibigpt.co/api/v1/imageStatus?imageUrl=https://example.com/photo.jpg" \
  -H "Authorization: Bearer $CHATIMG_API_TOKEN"
```

`status` が `completed` になると、`generatedImageUrl` が完成画像のアドレスです。

所要時間はモデルによって大きく異なります（軽量モデルは数秒、GPT Image 2 は約 1〜2 分）。
**3〜5 秒間隔**でポーリングし、適切なタイムアウトを設定してください。

### ステップ 3 — 料金を確認 [`GET /v1/imagePricing`](https://docs.bibigpt.co/api-reference/open/list-available-image-models-and-their-credits-pricing)

認証不要です。各モデルの 1 枚あたりの単価とチャージパックを返すため、スクリプト側で予算管理ができます：

```shell theme={null}
curl https://api.bibigpt.co/api/v1/imagePricing
```

## 3. モデルと料金

1 枚あたりの消費クレジット（最新の値は `/v1/imagePricing` が基準）：

| モデル                 | クレジット | モデル              | クレジット |
| ------------------- | ----- | ---------------- | ----- |
| `z-image-turbo`     | 5     | `nanobanana-2`   | 20    |
| `qwen`              | 8     | `openai`         | 25    |
| `gemini`            | 10    | `flux-2-flex`    | 25    |
| `flux`              | 12    | `grok`           | 30    |
| `nanobanana-2-lite` | 12    | `nanobanana-pro` | 30    |
| `seedream`          | 15    | `gpt-image-2`    | 50    |

## 4. 一連のサンプル

生成を開始し、完了までポーリングする最小構成のスクリプト：

```bash theme={null}
TOKEN="$CHATIMG_API_TOKEN"
SRC="https://example.com/photo.jpg"

curl -s -X POST https://api.bibigpt.co/api/v1/generateImage \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"imageUrl\":\"$SRC\",\"prompt\":\"ghibli style\",\"model\":\"nanobanana-2-lite\"}"

# completed になるまでポーリング
for i in $(seq 1 60); do
  sleep 3
  RESP=$(curl -s "https://api.bibigpt.co/api/v1/imageStatus?imageUrl=$SRC" \
    -H "Authorization: Bearer $TOKEN")
  echo "$RESP" | grep -q '"status":"completed"' && echo "$RESP" && break
done
```

## よくある質問

<AccordionGroup>
  <Accordion title="401 が返ってくる場合">
    トークンが未設定か失効しています。ヘッダーが `Authorization: Bearer <token>` になっているか確認し、
    [chatimg.ai/user/api](https://chatimg.ai/user/api) で現在のトークンをご確認ください。
    「リセット」を実行した場合、旧トークンは即座に失効するためスクリプトの更新が必要です。
  </Accordion>

  <Accordion title="400 invalid_image_url が返ってくる場合">
    `imageUrl` は公開アクセス可能な http(s) アドレスまたは base64 データである必要があります。
    ブラウザのローカルプレビューアドレス（`blob:` で始まるもの）はサーバー側から読み取れません。
    このリクエストではクレジットは消費されません。
  </Accordion>

  <Accordion title="クレジットが足りない場合">
    [chatimg.ai/pricing](https://chatimg.ai/pricing) でクレジットパックをチャージ（有効期限なし）するか、
    プランに加入して毎月の枠を利用してください。単価の安いモデル（`z-image-turbo` は 1 枚 5 クレジット）に
    切り替える方法もあります。
  </Accordion>

  <Accordion title="status がずっと unknown の場合">
    その `imageUrl` に対応する生成記録がありません。多くは照会用の URL が送信時のものと一致していないケースです。
    両者はクエリ文字列を含め**完全に同一の文字列**である必要があります。
  </Accordion>
</AccordionGroup>
