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

# Midjourney API 概要

>  - Midjourney テキストから画像（Imagine）/ 参照画像 / 二次操作 / 画像から動画エンドポイント一覧
- 非同期タスク：送信後に task_id を返し、ポーリングで結果を取得
- 新ルートは model=midjourney を自動注入し、ネイティブ MJ パラメータ、構造化 body フィールド、metadata をサポート 

<Note>
  **Base URL：** `https://api.apimart.ai`

  **認証：** `Authorization: Bearer <token>`

  新しい `/v1/midjourney/...` ルートは `model=midjourney` を自動注入するため、リクエスト本文に `model` を渡す必要はありません。
</Note>

## クイックスタート

```bash theme={null}
# 1. Imagine タスクを送信
curl -X POST https://api.apimart.ai/v1/midjourney/generations \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "a cute cat, watercolor style --ar 16:9"}'

# 2. 統一タスク API を status=completed までポーリング
curl https://api.apimart.ai/v1/tasks/task_01JWXXXX \
  -H "Authorization: Bearer <token>"

# 3. 1 枚目をアップスケール
curl -X POST https://api.apimart.ai/v1/midjourney/generations/upscale \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"task_id": "task_01JWXXXX", "index": 1}'
```

## エンドポイント一覧

各機能の完全なフィールド、例、注意事項は対応する子ページを参照してください。

| 機能               | パス                                                               | ドキュメント                             |
| ---------------- | ---------------------------------------------------------------- | ---------------------------------- |
| テキストから画像（デフォルト）  | `POST /v1/midjourney/generations`                                | [Imagine](./imagine)               |
| テキストから画像（明示エントリ） | `POST /v1/midjourney/generations/imagine`                        | [Imagine](./imagine)               |
| 複数画像ブレンド         | `POST /v1/midjourney/generations/blend`                          | [Blend](./blend)                   |
| 画像からテキスト         | `POST /v1/midjourney/generations/describe`                       | [Describe](./describe)             |
| 画像編集             | `POST /v1/midjourney/generations/edits`                          | [Edits](./edits)                   |
| アップスケール          | `POST /v1/midjourney/generations/upscale`                        | [Upscale](./upscale)               |
| バリエーション          | `POST /v1/midjourney/generations/variation`                      | [Variation](./variation)           |
| 強いバリエーション        | `POST /v1/midjourney/generations/high-variation`                 | [High Variation](./high-variation) |
| 弱いバリエーション        | `POST /v1/midjourney/generations/low-variation`                  | [Low Variation](./low-variation)   |
| 再生成              | `POST /v1/midjourney/generations/reroll`                         | [Reroll](./reroll)                 |
| ズームアウト           | `POST /v1/midjourney/generations/zoom`                           | [Zoom](./zoom)                     |
| パン               | `POST /v1/midjourney/generations/pan`                            | [Pan](./pan)                       |
| インペイント           | `POST /v1/midjourney/generations/inpaint`                        | [Inpaint](./inpaint)               |
| モーダル（追加パラメータ）    | `POST /v1/midjourney/generations/modal`                          | [Modal](./modal)                   |
| 画像から動画           | `POST /v1/midjourney/generations/video`                          | [Video](./video)                   |
| リシェイプ（強 / 弱）     | `POST /v1/midjourney/generations/remix-strong` · `/remix-subtle` | [Remix](./remix)                   |
| タスク取得            | `GET /v1/tasks/{task_id}` · `/v1/midjourney/{task_id}`           | [タスク取得](./query)                   |

参考：[ベストプラクティス](./best-practices)（ポーリング / リトライ / トラブルシュート） · [完全ワークフロー例](./workflow)（エンドツーエンド curl + クライアントラッパー）

## 全体フロー

```mermaid theme={null}
flowchart TB
  A["① POST /generations<br/>Imagine 送信"] --> B["② GET /v1/tasks/{task_id}<br/>completed までポーリング"]
  B --> C["③ buttons が必要な場合<br/>GET /v1/midjourney/{task_id}"]
  C --> D1["/upscale"]
  C --> D2["/variation"]
  C --> D3["/reroll"]
  C --> D4["/zoom"]
  C --> D5["/inpaint<br/>(MODAL へ進む)"]
  D5 --> M["/modal<br/>マスク + prompt を送信"]
```

## エラー処理

### エラーレスポンス形式

```json theme={null}
{
  "error": {
    "type": "invalid_request_error",
    "message": "prompt is required"
  }
}
```

### よくあるエラー

| HTTP | type                    | 説明                   |
| ---- | ----------------------- | -------------------- |
| 400  | `invalid_request_error` | パラメータ不正（必須欠落、形式不正など） |
| 401  | `authentication_error`  | API Key が無効          |
| 402  | `payment_required`      | 残高不足                 |
| 404  | `not_found`             | タスクが存在しない            |
| 429  | `rate_limit_error`      | レート制限                |
| 500  | `internal_error`        | サーバ内部エラー             |

### タスク失敗

タスク失敗時、`fail_reason` に理由が入ります。よくある値：

* `Banned prompt detected` — 禁止語句を含む
* `Task timeout` — タイムアウト（30 分超）。自動全額返金済み
* `No available upstream` — サービス一時的に利用不可。時間をおいて再試行

## 課金

MJ 新ルートの統一モデル名は `midjourney` です。action、version、speed から課金 key を生成します。通常のマッチ順は次の通りです。

```text theme={null}
midjourney@<action>-<version>-<speed>
-> midjourney@<action>-<version>
-> midjourney@<action>-<speed>
-> midjourney@<action>
-> midjourney
```

| 操作             | 課金名                                           | 説明                        |
| -------------- | --------------------------------------------- | ------------------------- |
| Imagine        | `midjourney@imagine[-version][-speed]`        | テキストから画像 / 参照画像生成         |
| Blend          | `midjourney@blend[-speed]`                    | 複数画像ブレンド                  |
| Describe       | `midjourney@describe[-speed]`                 | 画像からテキスト                  |
| Edits          | `midjourney@edits[-speed]`                    | 画像編集                      |
| Upscale        | `midjourney@upscale[-version][-speed]`        | アップスケール                   |
| Variation      | `midjourney@variation[-version][-speed]`      | バリエーション                   |
| High Variation | `midjourney@high_variation[-version][-speed]` | 強いバリエーション                 |
| Low Variation  | `midjourney@low_variation[-version][-speed]`  | 弱いバリエーション                 |
| Reroll         | `midjourney@reroll[-version][-speed]`         | 再生成                       |
| Zoom           | `midjourney@zoom[-version][-speed]`           | ズームアウト / 拡張               |
| Pan            | `midjourney@pan[-version][-speed]`            | パン拡張                      |
| Inpaint        | `midjourney@inpaint[-version][-speed]`        | インペイント入口                  |
| Modal          | `midjourney@modal[-speed]`                    | インペイント追加パラメータ             |
| Video          | `midjourney@video` / `midjourney@video-720p`  | 画像から動画、実課金 × `batch_size` |
| Remix Strong   | `midjourney@remix_strong[-speed]`             | 強リシェイプ（v8.1 / v8.2 のみ）    |
| Remix Subtle   | `midjourney@remix_subtle[-speed]`             | 弱リシェイプ（v8.1 / v8.2 のみ）    |

説明：

* `speed=relax` または `speed` 未指定の場合、speed サフィックスは追加されません。`fast` / `turbo` は対応するサフィックスを追加します。
* 主バージョンは `v8.2`、`v8.1`、`v7`、`v6.1`、`v5.2`、`v5.1` に正規化されます。
* `niji=true + version=7/6` は `niji7` / `niji6` に正規化されます。

> 価格はコンソールのモデル価格ページを参照。失敗時は全額自動返金。
