Endpoints
Images
POST /images/generations : générez et modifiez des images avec les modèles texte-vers-image du catalogue, via le même format que le SDK OpenAI.
Essayer dans le playgroundGénérez et modifiez des images avec tous les modèles d'image du catalogue : GPT image, Gemini image, FLUX, Seedream, Recraft et d'autres. L'endpoint utilise le chemin du SDK OpenAI, donc client.images.generate(...) fonctionne sans modification.
POST https://api14.com/api/v1/images/generations
POST /api/v1/images est accepté comme alias. Les deux transmettent le corps tel quel.
Requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
model | string | oui | Un identifiant de modèle d'image, par ex. openai/gpt-5.4-image-2. |
prompt | string | oui | Ce qu'il faut dessiner. |
n | integer | non | Nombre d'images. Chaque image est facturée. |
size | string | non | par ex. 1024x1024, 1536x1024. Les tailles prises en charge varient selon le modèle. |
aspect_ratio | string | non | par ex. 16:9, 1:1, pour les modèles qui prennent des ratios au lieu de tailles. |
quality | string | non | par ex. low, medium, high quand c'est pris en charge. |
response_format | string | non | b64_json ou url quand c'est pris en charge. |
image | string ou string[] | non | Image(s) de référence sous forme d'URL ou d'URI data: pour la retouche / image-vers-image. |
Les options propres à chaque modèle (résolutions, ratios) sont listées par modèle dans GET /images/models et sur la page de chaque modèle.
Exemple
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.images.generate({
"model": "openai/gpt-5.4-image-2",
"prompt": "A minimalist product photo of a ceramic mug on a wooden table",
"n": 1,
"aspect_ratio": "1:1"
});
import { writeFile } from "node:fs/promises";
await writeFile("image.png", Buffer.from(result.data[0].b64_json, "base64"));
Réponse
{
"created": 1791100000,
"data": [
{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..." }
],
"usage": { "cost": 0.04 }
}
Certains modèles renvoient url au lieu de b64_json. Téléchargez rapidement les URL hébergées ; elles peuvent expirer.
Images via le chat
Les modèles d'image qui produisent aussi du texte peuvent être appelés via les Chat completions avec modalities :
{
"model": "google/gemini-2.5-flash-image",
"modalities": ["image", "text"],
"messages": [{ "role": "user", "content": "A watercolor fox, square" }]
}
Les images générées reviennent dans choices[0].message.images[] sous forme d'URL data.
Lister les modèles d'image
# Public, aucune clé d'API nécessaire
curl https://api14.com/api/v1/images/models
curl "https://api14.com/api/v1/models?category=image"
Tarifs
Les modèles d'image sont facturés à leur prix indiqué, par image ou par million de tokens d'image selon le modèle. Le coût exact est repris de la réponse du fournisseur et débité de votre solde en USD.
Erreurs
| Statut | Code | Quand |
|---|---|---|
| 400 | model_required / invalid_json | model manquant ou corps mal formé. |
| 402 | insufficient_balance | Votre solde en USD est à 0 $. |
| 403 | model_not_allowed / plan_required | La liste autorisée de la clé ou le forfait exclut le modèle. |
| 404 | model_not_found | Identifiant de modèle inconnu ou désactivé. |
| 413 | payload_too_large | Le corps (par ex. images de référence intégrées) dépasse la limite de taille. |
Les erreurs de validation du fournisseur (taille non prise en charge, politique de contenu) sont transmises avec leur statut. Voir Erreurs.