Saltar al contenido principal
POST
/
v1
/
images
/
generations
curl --request POST \
  --url https://api.apimart.ai/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-image-2-official",
    "prompt": "An ancient castle beneath a starry sky",
    "size": "16:9",
    "resolution": "2k",
    "quality": "high",
    "n": 1
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KPTXXXXXXXXXXXXXXX"
    }
  ]
}

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.

curl --request POST \
  --url https://api.apimart.ai/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-image-2-official",
    "prompt": "An ancient castle beneath a starry sky",
    "size": "16:9",
    "resolution": "2k",
    "quality": "high",
    "n": 1
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KPTXXXXXXXXXXXXXXX"
    }
  ]
}

Autorizaciones

Authorization
string
requerido
Todos los endpoints requieren autenticación con Bearer TokenObtenga su API Key:Visite la página de gestión de API Keys para obtener su API KeyInclúyala en el encabezado de la solicitud:
Authorization: Bearer YOUR_API_KEY

Body

model
string
predeterminado:"gpt-image-2-official"
requerido
Nombre del modelo de generación de imágenesFijo en gpt-image-2-official (modelo oficial gpt-image-2 de OpenAI)
prompt
string
requerido
Descripción textual para la generación de la imagen
  • Admite inglés y chino, se recomiendan descripciones detalladas
  • Moderación de contenido / revisión de seguridad antes del envío — las violaciones se rechazan inmediatamente
size
string
predeterminado:"1:1"
Proporción de la imagenExternamente usa valores de proporción; internamente se mapean a píxeles reales según resolution.Proporciones admitidas, más auto para dejar que el servidor elija una proporción adecuada automáticamente:
  • auto - Automática (el servidor elige una proporción según el prompt / imágenes de referencia)
  • 1:1 - Cuadrada (predeterminada, avatares sociales / logos)
  • 3:2 - Horizontal (proporción común de DSLR)
  • 2:3 - Vertical (pósters verticales)
  • 4:3 - Horizontal (monitor clásico / presentación de diapositivas)
  • 3:4 - Vertical
  • 5:4 - Horizontal
  • 4:5 - Vertical (publicación vertical de Instagram)
  • 16:9 - Horizontal (miniatura de video panorámico)
  • 9:16 - Vertical (pantalla completa de móvil / portada de video corto)
  • 2:1 - Horizontal (banner web)
  • 1:2 - Vertical
  • 3:1 - Horizontal (banner ultra panorámico)
  • 1:3 - Vertical (póster extra alto)
  • 21:9 - Horizontal (cinematográfico ultra panorámico)
  • 9:21 - Vertical
También pueden pasarse dimensiones en píxeles directamente, como 1881x836 / 887x1774.
Cuando size se establece en auto, la proporción predeterminada es 1:1.
resolution
string
predeterminado:"1k"
Nivel de resolución (nuevo campo)Controla la nitidez real de la salida.
  • 1k - Línea base 1024, rentable para uso diario (predeterminado)
  • 2k - Línea base 2048, adecuado para pósters / necesidades de alta definición
  • 4k - Línea base 3840, admite las 15 proporciones de la tabla de mapeo siguiente
El 4K admite las 15 proporciones en la tabla de mapeo siguiente; también puede pasar las dimensiones en píxeles de la tabla directamente mediante size.
quality
string
predeterminado:"auto"
Calidad de la imagen
  • auto - Automática (predeterminado, normalmente equivale a low)
  • low - Rápida y económica, suficiente para bocetos
  • medium - Equilibrada
  • high - Precisión máxima (4K + high puede tardar >120s)
background
string
predeterminado:"auto"
Modo de fondo
  • auto - Automático (predeterminado)
  • opaque - Opaco
  • transparent - ⚠️ gpt-image-2-official no admite fondos transparentes; el sistema lo degrada silenciosamente a auto
moderation
string
predeterminado:"auto"
Nivel de moderación
  • auto - Nivel de moderación predeterminado
  • low - Moderación más permisiva
output_format
string
predeterminado:"png"
Formato de salida
  • png - Predeterminado
  • jpeg - Archivos más pequeños
  • webp - Óptimo para navegadores modernos
output_compression
integer
Nivel de compresión de salida, rango 0-100
  • Solo efectivo para jpeg / webp
n
integer
predeterminado:"1"
Número de imágenes a generarRango: 1 ~ 4
Debe ser un número puro (p. ej., 1), no lo envuelva en comillas
image_urls
array
Array de URLs de imágenes de referencia
mask_url
string
URL de la imagen de máscara, usada para inpainting
  • Debe usarse junto con image_urls
  1. Asegúrese de que la imagen de máscara tenga un canal Alpha antes de cargarla.
  2. Las dimensiones de la imagen de máscara deben coincidir con la primera imagen de referencia.

Mapeo Size × Resolution

size × resolution → píxeles reales de OpenAI (15 proporciones × 3 niveles):
size1k2k4k
1:11024×10242048×20482880×2880
3:21536×10242048×13603520×2336
2:31024×15361360×20482336×3520
4:31024×7682048×15363312×2480
3:4768×10241536×20482480×3312
5:41280×10242560×20483216×2576
4:51024×12802048×25602576×3216
16:91536×8642048×11523840×2160
9:16864×15361152×20482160×3840
2:12048×10242688×13443840×1920
1:21024×20481344×26881920×3840
3:11881×836 / 1536×5123072×10243840×1280
1:3887×1774 / 512×15361024×30721280×3840
21:92016×8642688×11523840×1648
9:21864×20161152×26881648×3840
Nota: Algunas dimensiones se aproximan en función de múltiplos de 16 y límites de píxeles, como 3:2 / 2:3 @ 2K siendo 2048×1360 y 21:9 @ 4K siendo 3840×1648. Use los píxeles reales de la tabla como fuente de verdad.

Ejemplos de uso

Texto a imagen (solicitud mínima)
{
  "model": "gpt-image-2-official",
  "prompt": "An ancient castle beneath a starry sky"
}
Póster en alta definición 2K
{
  "model": "gpt-image-2-official",
  "prompt": "Cyberpunk night scene",
  "size": "16:9",
  "resolution": "2k",
  "quality": "high",
  "output_format": "jpeg",
  "output_compression": 90
}
Fondo de pantalla 4K
{
  "model": "gpt-image-2-official",
  "prompt": "Snow mountain sunrise panorama",
  "size": "16:9",
  "resolution": "4k",
  "quality": "high",
  "n": 1
}
Imagen a imagen (fusión multireferencia)
{
  "model": "gpt-image-2-official",
  "prompt": "Fuse the two reference images into a single illustration poster, preserving the main silhouettes",
  "size": "1:1",
  "quality": "high",
  "image_urls": [
    "https://your-cdn.com/input-a.png",
    "https://your-cdn.com/input-b.png"
  ]
}
Inpainting (máscara)
{
  "model": "gpt-image-2-official",
  "prompt": "Replace the background with a desert sunset",
  "size": "1:1",
  "quality": "medium",
  "image_urls": ["https://your-cdn.com/photo.png"],
  "mask_url": "https://your-cdn.com/mask.png"
}
Múltiples imágenes (n > 1)
{
  "model": "gpt-image-2-official",
  "prompt": "Four minimalist poster variations of a red fox",
  "size": "1:1",
  "quality": "low",
  "n": 4
}
Cadena de píxeles directa (avanzado)
{
  "model": "gpt-image-2-official",
  "prompt": "wide cinematic shot",
  "size": "3840x2160",
  "quality": "high"
}

Response

code
integer
Código de estado de la respuesta
data
array
Array de datos de la respuesta

Consulta de resultados de la tarea

Tras un envío correcto, se devuelve un task_id. Consulte el estado de la tarea mediante GET /v1/tasks/{task_id}, consulte la API de consulta de tareas para más detalles.

Ejemplo de respuesta exitosa

{
  "code": 200,
  "data": {
    "id": "task_01KPTXXXXXXXXXXXXXXX",
    "status": "completed",
    "progress": 100,
    "actual_time": 46,
    "cost": 0.05279,
    "result": {
      "images": [
        {
          "url": [
            "https://upload.apimart.ai/f/image/xxxxxxxx-gpt_image_2_official_task_xxx_0.png"
          ],
          "expires_at": 1776928569
        }
      ]
    }
  }
}
Flujo de estado de la tarea: submittedin_progresscompleted / failed. Acceso a la imagen: data.result.images[0].url[0].

Recomendaciones de polling

  • Retraso de la consulta inicial: Espere de 10 a 20 segundos tras el envío antes de la primera consulta
  • Intervalo de consulta: Se recomiendan de 3 a 5 segundos
  • Referencia de timeout: Las combinaciones high + 2k/4k pueden tardar hasta 130 segundos; se recomienda un timeout del cliente ≥ 180 segundos
  • Consulta por lotes: Para consultar varias tareas a la vez, use POST /v1/tasks/batch