> ## 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.

# API Midjourney

>  - Endpoint Midjourney texte-vers-image (Imagine) / génération guidée par image / actions de suivi / image vers vidéo
- Mode tâche asynchrone : recevez task_id après soumission, sondez le résultat
- Les nouvelles routes injectent automatiquement model=midjourney et prennent en charge les paramètres MJ natifs, les champs structurés du body et metadata 

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

  **Auth :** `Authorization: Bearer <token>`

  Les nouvelles routes `/v1/midjourney/...` injectent automatiquement `model=midjourney` ; vous n'avez pas besoin de passer `model` dans le body.
</Note>

## Démarrage rapide

```bash theme={null}
# 1. Soumettre une tâche 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. Sondez l'API unifiée des tâches jusqu'à status=completed
curl https://api.apimart.ai/v1/tasks/task_01JWXXXX \
  -H "Authorization: Bearer <token>"

# 3. Agrandir l'image 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}'
```

## Aperçu de l'API

Les champs complets, exemples et notes de chaque fonction se trouvent sur la page dédiée correspondante.

| Fonction                             | Chemin                                                           | Documentation                      |
| ------------------------------------ | ---------------------------------------------------------------- | ---------------------------------- |
| Texte vers image (entrée par défaut) | `POST /v1/midjourney/generations`                                | [Imagine](./imagine)               |
| Texte vers image (entrée explicite)  | `POST /v1/midjourney/generations/imagine`                        | [Imagine](./imagine)               |
| Fusion multi-images                  | `POST /v1/midjourney/generations/blend`                          | [Blend](./blend)                   |
| Image vers texte                     | `POST /v1/midjourney/generations/describe`                       | [Describe](./describe)             |
| Édition d'image                      | `POST /v1/midjourney/generations/edits`                          | [Edits](./edits)                   |
| Agrandir une tuile                   | `POST /v1/midjourney/generations/upscale`                        | [Upscale](./upscale)               |
| Variation                            | `POST /v1/midjourney/generations/variation`                      | [Variation](./variation)           |
| Variation forte                      | `POST /v1/midjourney/generations/high-variation`                 | [High Variation](./high-variation) |
| Variation subtile                    | `POST /v1/midjourney/generations/low-variation`                  | [Low Variation](./low-variation)   |
| Régénérer                            | `POST /v1/midjourney/generations/reroll`                         | [Reroll](./reroll)                 |
| Zoom out                             | `POST /v1/midjourney/generations/zoom`                           | [Zoom](./zoom)                     |
| Pan                                  | `POST /v1/midjourney/generations/pan`                            | [Pan](./pan)                       |
| Inpaint                              | `POST /v1/midjourney/generations/inpaint`                        | [Inpaint](./inpaint)               |
| Modal (paramètres)                   | `POST /v1/midjourney/generations/modal`                          | [Modal](./modal)                   |
| Image vers vidéo                     | `POST /v1/midjourney/generations/video`                          | [Video](./video)                   |
| Remix (fort / subtil)                | `POST /v1/midjourney/generations/remix-strong` · `/remix-subtle` | [Remix](./remix)                   |
| Consulter une tâche                  | `GET /v1/tasks/{task_id}` · `/v1/midjourney/{task_id}`           | [Consulter une tâche](./query)     |

Voir aussi : [Bonnes pratiques](./best-practices) (polling / réessais / dépannage) · [Workflows de bout en bout](./workflow) (parcours curl + wrappers client)

## Flux de bout en bout

```mermaid theme={null}
flowchart TB
  A["① POST /generations<br/>soumettre Imagine"] --> B["② GET /v1/tasks/{task_id}<br/>sonder jusqu'à completed"]
  B --> C["③ Si boutons nécessaires<br/>GET /v1/midjourney/{task_id}"]
  C --> D1["/upscale"]
  C --> D2["/variation"]
  C --> D3["/reroll"]
  C --> D4["/zoom"]
  C --> D5["/inpaint<br/>(entre en MODAL)"]
  D5 --> M["/modal<br/>envoyer masque + prompt"]
```

## Erreurs

### Format de réponse d'erreur

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

### Erreurs courantes

| HTTP | type                    | Signification           |
| ---- | ----------------------- | ----------------------- |
| 400  | `invalid_request_error` | Paramètres invalides    |
| 401  | `authentication_error`  | Clé API invalide        |
| 402  | `payment_required`      | Solde insuffisant       |
| 404  | `not_found`             | Tâche non trouvée       |
| 429  | `rate_limit_error`      | Limite de taux atteinte |
| 500  | `internal_error`        | Erreur serveur          |

### Échecs de tâche

Valeurs courantes de `fail_reason` :

* `Banned prompt detected` — contenu interdit dans le prompt
* `Task timeout` — timeout (remboursement auto après 30+ minutes)
* `No available upstream` — service temporairement indisponible, réessayez plus tard

## Facturation

Le nom unifié du modèle pour les nouvelles routes MJ est `midjourney`. Les clés de facturation sont générées à partir d'action, version et speed. L'ordre de match habituel :

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

| Action         | Nom de facturation                            | Notes                                    |
| -------------- | --------------------------------------------- | ---------------------------------------- |
| Imagine        | `midjourney@imagine[-version][-speed]`        | Texte vers image / guidé par image       |
| Blend          | `midjourney@blend[-speed]`                    | Fusion multi-images                      |
| Describe       | `midjourney@describe[-speed]`                 | Image vers texte                         |
| Edits          | `midjourney@edits[-speed]`                    | Édition d'image                          |
| Upscale        | `midjourney@upscale[-version][-speed]`        | Agrandissement                           |
| Variation      | `midjourney@variation[-version][-speed]`      | Variation                                |
| High Variation | `midjourney@high_variation[-version][-speed]` | Variation forte                          |
| Low Variation  | `midjourney@low_variation[-version][-speed]`  | Variation subtile                        |
| Reroll         | `midjourney@reroll[-version][-speed]`         | Régénération                             |
| Zoom           | `midjourney@zoom[-version][-speed]`           | Zoom out / outpaint                      |
| Pan            | `midjourney@pan[-version][-speed]`            | Pan outpaint                             |
| Inpaint        | `midjourney@inpaint[-version][-speed]`        | Entrée inpaint                           |
| Modal          | `midjourney@modal[-speed]`                    | Paramètres de suivi inpaint              |
| Video          | `midjourney@video` / `midjourney@video-720p`  | Image vers vidéo, facturé × `batch_size` |
| Remix Strong   | `midjourney@remix_strong[-speed]`             | Reshape fort (v8.1 / v8.2 uniquement)    |
| Remix Subtle   | `midjourney@remix_subtle[-speed]`             | Reshape subtil (v8.1 / v8.2 uniquement)  |

Notes :

* `speed=relax` ou omis n'ajoute pas de suffixe de speed ; `fast` / `turbo` ajoutent le suffixe correspondant.
* Les versions principales se normalisent à `v8.2`, `v8.1`, `v7`, `v6.1`, `v5.2`, `v5.1`.
* `niji=true + version=7/6` se normalise à `niji7` / `niji6`.

> Voir la tarification de la console. Les tâches échouées sont entièrement remboursées.
