DrawNew.comPOST /api/v1/generate · GET /api/v1/tasks
Puntos de acceso públicos para integraciones por lotes y de agentes. Autentícate con la clave API ya emitida a tu cuenta — no se requiere token separado.
Incluye tu clave API en el encabezado Authorization. La clave es la misma asignada a tu cuenta en user_keys (proporcionada por DrawNew después de activar tu plan). Una clave incorrecta devuelve 401.
Authorization: Bearer <your_api_key>{ "error": { "type": "invalid_api_key", "message": "Invalid API key" } }/api/v1/generateEnvía la tarea al proveedor de imágenes aguas arriba y devuelve inmediatamente task_ids. Para obtener la imagen resultante, puedes (A) consultar GET /v1/tasks/:id tú mismo, o (B) simplemente abrir el sitio web — la misma pestaña de Creación de imágenes de la cuenta tomará automáticamente la tarea y persistirá los resultados en "Mis Obras".
curl -X POST https://www.drawnew.com/api/v1/generate \
-H "Authorization: Bearer <your_api_key>" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A serene Japanese garden in autumn",
"model": "flash",
"mode": "text",
"aspect": "16:9",
"imageSize": "2K",
"count": 1
}'{
"task_ids": ["task_abc123"],
"email": "you@example.com"
}| Campo | Tipo | Requerido | Predeterminado | Descripción |
|---|---|---|---|---|
| prompt | string | ✓ | — | Prompt de generación |
| model | string | gpt-image-2 | ID del modelo (ver abajo) | |
| mode | text | edit | fusion | text | text=texto a imagen; edit=edición de imagen única; fusion=fusión de múltiples imágenes | |
| aspect | string | 1:1 | Relación de aspecto: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9, … | |
| imageSize | 1K | 2K | 4K | 2K | Resolución de salida | |
| count | number | 1 | Cantidad de imágenes (limitado por modelo) | |
| imageUrls | string[] | [] | URLs de imágenes de referencia para edit / fusion |
| model | Nombre | Modos compatibles |
|---|---|---|
| gpt-image-2 | GPT Image 2 | text, edit |
| pro | Nano Banana Pro | text, edit |
| flash2 | Nano Banana 2 | text, edit |
| flash | Nano Banana | text, edit |
| HTTP | error.type | Cuándo |
|---|---|---|
| 400 | invalid_request | El body no es JSON, el prompt está vacío, modelo desconocido o el modelo no soporta el modo |
| 401 | unauthorized | Falta el encabezado Authorization o formato incorrecto |
| 401 | invalid_api_key | Clave API no encontrada en user_keys |
| 403 | no_credits | Cuota mensual agotada. Actualiza tu plan en https://drawnew.com/pricing |
/api/v1/tasks/{task_id}Devuelve el estado de la tarea aguas arriba. status es uno de queued / in_progress / completed / failed. completed añade un campo imageUrl; failed añade un campo error.
curl https://www.drawnew.com/api/v1/tasks/task_abc123 \
-H "Authorization: Bearer <your_api_key>"{
"task_id": "task_abc123",
"status": "completed",
"progress": 100,
"imageUrl": "https://files.example.com/generated/xxx.png"
}/api/v1/tasks?ids=t1,t2Consulta muchas tareas en una llamada para ahorrar idas y vueltas y búsquedas de autenticación. Los resultados se devuelven en el mismo orden que los ids de entrada. Máximo 20 ids por solicitud.
curl "https://www.drawnew.com/api/v1/tasks?ids=task_abc,task_def,task_ghi" \
-H "Authorization: Bearer <your_api_key>"{
"tasks": [
{ "task_id": "task_abc", "status": "completed", "progress": 100, "imageUrl": "https://..." },
{ "task_id": "task_def", "status": "in_progress", "progress": 60 },
{ "task_id": "task_ghi", "status": "failed", "progress": 0, "error": "model overloaded" }
]
}| HTTP | error.type | Cuándo |
|---|---|---|
| 400 | invalid_request | Falta el parámetro ids, o más de 20 ids |
| 401 | unauthorized | Falta el encabezado Authorization o formato incorrecto |
| 401 | invalid_api_key | Clave API no encontrada en user_keys |
/api/v1/uploadEl servidor obtiene una imagen de una URL pública y la aloja nuevamente en el CDN aguas arriba, devolviendo una URL estable. Pasa el resultado a generate_image's imageUrls. Máximo 25 MB por imagen; se aceptan png / jpeg / webp / gif / bmp.
curl -X POST https://www.drawnew.com/api/v1/upload \
-H "Authorization: Bearer <your_api_key>" \
-H "Content-Type: application/json" \
-d '{"source_url": "https://example.com/cat.png"}'{
"url": "https://files.example.com/uploads/abc123.png",
"filename": "cat.png",
"content_type": "image/png",
"bytes": 524288
}/api/v1/history?page=1&limit=20Devuelve generaciones pasadas atribuidas a esta clave API, más recientes primero. Paginación vía page (indexada en 1) y limit (máximo 50).
curl "https://www.drawnew.com/api/v1/history?page=1&limit=20" \
-H "Authorization: Bearer <your_api_key>"{
"items": [
{
"id": "tsk_img_xxx",
"prompt": "a cat in autumn",
"model": "flash",
"mode": "text",
"aspect": "16:9",
"imageSize": "2K",
"imageCount": 1,
"images": ["https://..."],
"refs": [],
"createdAt": 1777461252000
}
],
"total": 42,
"page": 1,
"limit": 20,
"total_pages": 3
}/api/v1/user/statusDevuelve el correo electrónico, el nivel (trial / starter / standard / pro) y si la clave aguas arriba está configurada. Útil para que los agentes decidan si pueden costear un modelo de alto costo.
curl https://www.drawnew.com/api/v1/user/status \
-H "Authorization: Bearer <your_api_key>"{
"email": "you@example.com",
"tier": "pro",
"has_key": true
}Para agentes LLM, la forma más fácil de usar DrawNew es a través del servidor MCP oficial publicado como @drawnew/mcp-server en npm. Expone 6 herramientas (generate_image, get_task, batch_get_tasks, upload_reference_image, list_my_generations, get_account_status) vía stdio y funciona con cualquier cliente compatible con MCP. Agrega el siguiente fragmento a la configuración MCP de tu cliente — eso es todo.
Ruta: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) · %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"drawnew": {
"command": "npx",
"args": ["-y", "@drawnew/mcp-server"],
"env": {
"DRAWNEW_API_KEY": "<your_api_key>"
}
}
}
}