Documentación de la API

Convierta imágenes programáticamente con nuestra API REST.

Descripción general

URL base: https://www.bulkpicconv.com/api/v1

Autenticación: Bearer token vía Authorization encabezado

Formato de clave API: sk_ prefijo + 48 caracteres alfanuméricos

Límites: Team 50K/mes, Enterprise ilimitado

Tamaño máximo: 15 MB por archivo

Dimensiones máx.: 80 megapíxeles (ej. 8000×10000)

Formatos aceptados: JPEG, PNG, WebP, GIF, BMP, TIFF, HEIC

Acceso API: planes Team y Enterprise (genere clave desde el Panel )

Puntos finales

MétodoPunto finalDescripción
POST/api/v1/convertConvertir y comprimir una imagen
POST/api/v1/resizeRedimensionar una imagen
POST/api/v1/cropRecortar una imagen
POST/api/v1/watermarkAñadir marca de agua a una imagen
POST/api/v1/optimizeOptimización inteligente sin conversión de formato
POST/api/v2/batchConversión por lotes de ZIP (asíncrono)
GET/api/v2/batch/{id}/statusConsultar estado del trabajo por lotes
GET/api/v2/batch/{id}/resultDescargar ZIP de resultados
GET/api/v2/usageConsultar uso mensual de la clave API
GET/api/v2/creditsConsultar créditos API disponibles
POST/v1/ai/alt-textGeneración de texto alternativo IA (Pro/Team)
POST/v1/ai/renameRenombrado masivo IA (Pro/Team)
POST/v1/ai/smart-cropDetección de recorte inteligente IA (Pro/Team)
POST/v1/ai/enhanceMejora de imagen IA (Pro/Team)
POST/v1/ai/recommendRecomendación de formato IA (Pro/Team)
POST/api/background-removeEliminar fondo de imagen
GET/PUT/DEL/api/user/ai-keyGestión de configuración de modelo BYOK
POST/v1/convert

Convertir y comprimir imagen a WebP, AVIF, JPEG o PNG.

Parámetros (multipart/form-data)

CampoTipoRequeridoDescripción
imagefileEl archivo de imagen a convertir
formatstringNowebp, avif, jpeg, png (predeterminado: webp)
qualitynumberNo1-100 (predeterminado: 75)
widthnumberNoAncho de salida (mantiene proporción)
heightnumberNoAlto de salida
fitstringNocover, contain, fill, inside, outside
grayscalebooleanNoConvertir a escala de grises
blurnumberNoRadio de desenfoque (0,3-100)
rotatenumberNoÁngulo de rotación (0-360)

Respuesta

Datos binarios de imagen con encabezados:

  • Content-Type : Tipo MIME del formato de imagen
  • Content-Disposition : Adjunto con nombre de archivo (ej. converted.webp)
  • X-Input-Size : Tamaño original en bytes
  • X-Output-Size : Tamaño convertido en bytes
  • X-Saved-Percent : Porcentaje de espacio ahorrado
  • X-RateLimit-Limit : Límite mensual de llamadas API
  • X-RateLimit-Remaining : Llamadas API restantes este mes
POST/api/v1/resize

Redimensionar imagen manteniendo la proporción.

Parámetros (multipart/form-data)

FieldTypeRequiredDescription
imagefileEl archivo de imagen
widthnumberAncho objetivo (1-10000)
heightnumberAlto objetivo (1-10000)
fitstringNocover/contain/fill/inside/outside (predeterminado: inside)
POST/api/v1/crop

Extraer una región rectangular de una imagen.

Parámetros (multipart/form-data)

FieldTypeRequiredDescription
imagefileEl archivo de imagen
xnumberDesplazamiento horizontal (esquina superior izquierda)
ynumberDesplazamiento vertical (esquina superior izquierda)
widthnumberAncho de la región de recorte
heightnumberAlto de la región de recorte
POST/api/v1/watermark

Superponer marca de agua en posición configurable.

Parámetros (multipart/form-data)

FieldTypeRequiredDescription
imagefileImagen base
watermarkfileImagen de marca de agua
positionstringNotop-left/top-right/bottom-left/bottom-right/center
opacitynumberNo0-100 (predeterminado: 100)
scalenumberNoTamaño de marca como fracción del ancho base (0,01-1)
POST/api/v1/optimize

Recodificar imagen para reducir tamaño sin cambiar formato.

Parámetros (multipart/form-data)

FieldTypeRequiredDescription
imagefileEl archivo de imagen
qualitynumberNo1-100 (predeterminado: 75). Formato original conservado.
POST/api/v2/batch

Subir archivo ZIP para conversión por lotes asíncrona. Devuelve ID de trabajo; consultar estado hasta completar.

Parámetros (multipart/form-data)

CampoTipoRequeridoDescripción
filefileArchivo ZIP de imágenes
formatstringNowebp, avif, jpeg, png (predeterminado: webp)
qualitynumberNo1-100 (predeterminado: 75)

GET /api/v2/batch/{id}/status — Consultar estado (en cola → procesando → completado)
GET /api/v2/batch/{id}/result — Descargar ZIP de resultados

Funciones de IA Pro / Team

Análisis de imágenes con IA usando GPT-4o Vision. Todos los puntos finales IA aceptan cuerpo JSON con URI de datos Base64. Soporta BYOK (Bring Your Own Key) — use su propio modelo compatible con OpenAI para acceso ilimitado gratuito.

POST/v1/ai/alt-text

Generate SEO-friendly alt text with keywords using GPT-4o Vision.

Cuerpo (application/json)

FieldTypeRequiredDescription
imagesstring[]Base64 data URIs (1-10 images)
languagestringNoen/zh/es/fr/de/ja/ko/pt/it (default: en)
stylestringNodescriptive/concise/seo (default: descriptive)
userProviderobjectNoBYOK config (see below)
POST/v1/ai/rename

Generate SEO-friendly filenames based on image content.

Cuerpo (application/json)

FieldTypeRequiredDescription
imagesobject[]{data, originalName} (1-20 images)
rulesobjectNo{prefix, includeSequence, style}
userProviderobjectNoBYOK config
POST/v1/ai/smart-crop

Detect subject and generate platform-specific crop recommendations.

Cuerpo (application/json)

FieldTypeRequiredDescription
imagestringBase64 data URI
platformsstring[]Noinstagram-square/twitter/facebook/youtube-thumbnail/etc.
customRatioobjectNo{width, height}
returnCroppedImagebooleanNoReturn cropped result (default: false)
userProviderobjectNoBYOK config
POST/v1/ai/enhance

Upscale, denoise, or deblur images.

Cuerpo (application/json)

FieldTypeRequiredDescription
imagestringBase64 data URI
modestringNoupscale/denoise/deblur/auto (default: auto)
intensitynumberNo1=Light, 2=Medium, 3=Strong (default: 2)
returnPreviewbooleanNoReturn enhanced image (default: true)
POST/v1/ai/recommend

Deep analysis to recommend optimal format, quality, and compression.

Cuerpo (application/json)

FieldTypeRequiredDescription
imagesobject[]{data, filename, width, height, fileSize, mimeType} (1-20)
useCasestringNoweb/ecommerce/social-media/print/archive/general
userProviderobjectNoBYOK config

BYOK: Objeto userProvider (opcional)

Incluir en cualquier solicitud IA para usar su propio modelo. Omite verificación Pro y cuota diaria.

CampoTipoRequeridoDescripción
baseUrlstringURL base API compatible con OpenAI
modelstringNombre del modelo Vision
apiKeystringClave API (modo local, enviada con la solicitud)
useAccountKeybooleanUsar clave cifrada guardada en la cuenta

† Se requiere apiKey o useAccountKey.

Eliminación de fondo

POST/api/background-remove

Eliminar fondo de imagen. Usa API remove.bg con fallback sharp. Cuota mensual (configurado por admin).

Parámetros (multipart/form-data)

CampoTipoRequeridoDescripción
imagefileArchivo de imagen (máx. 10 MB)
formatstringNoFormato de salida: png (predeterminado), webp

Gestión de cuenta

GETPUTDELETE/api/user/ai-key

Gestionar configuración de modelo BYOK guardada (cifrado con AES-256-GCM).

  • GET — Obtener config guardada (clave enmascarada, ej. sk-12****abcd)
  • PUT — Guardar/actualizar config (cuerpo: baseUrl, model, apiKey). Devuelve clave enmascarada.
  • DELETE — Eliminar config guardada (irreversible)

Respuestas de error

Todos los errores devuelven JSON con { "statusCode": 4xx, "statusMessage": "..." }

CódigoErrorDescripción
400missing_form_dataEl cuerpo debe ser multipart/form-data
400missing_image_fileNo se encontró archivo de imagen (campo: "image")
400file_too_largeEl archivo supera el límite de 15 MB
400invalid_image_typeEl archivo no es una imagen válida
400invalid_imageImagen corrupta o ilegible
400image_too_largeLa imagen supera 80 megapíxeles
400invalid_paramsValores de parámetros inválidos (ver campo issues)
401missing_or_invalid_api_keyEncabezado Authorization faltante o malformado
401invalid_or_revoked_api_keyClave API no encontrada o revocada
401api_access_not_availableSu plan no incluye acceso API (solo Team/Enterprise)
429rate_limitedDemasiadas solicitudes (límite: 30/minuto)
429monthly_limit_exceededCuota API mensual agotada
500conversion_failedError de procesamiento de imagen del servidor
Errores de funciones IA
403ai_access_deniedPlan Pro/Team requerido (o modo BYOK: login requerido)
429ai_daily_limit_exceededCuota IA diaria agotada (solo modo plataforma; BYOK ilimitado)
503ai_service_unavailableServicio IA no configurado en el servidor
403no_saved_ai_keyBYOK: useAccountKey=true pero no hay clave guardada
503ai_key_encryption_disabledAI_KEY_ENCRYPTION_SECRET no configurado en el servidor

Ejemplos de código

curl -X POST https://www.bulkpicconv.com/api/v1/convert \
  -H "Authorization: Bearer sk_your_api_key" \
  -F "image=@photo.jpg" \
  -F "format=webp" \
  -F "quality=80" \
  -F "width=1920" \
  -o converted.webp

Texto alternativo IA (cuerpo JSON)

curl -X POST https://www.bulkpicconv.com/v1/ai/alt-text \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"images":["data:image/jpeg;base64,/9j/4AAQ..."],"language":"en","style":"seo"}'

BYOK: Usar su propio modelo

curl -X POST https://www.bulkpicconv.com/v1/ai/alt-text \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "images": ["data:image/jpeg;base64,..."],
    "userProvider": {
      "baseUrl": "https://api.siliconflow.cn/v1",
      "model": "Qwen/Qwen3-VL-32B-Instruct",
      "apiKey": "sk-your-provider-key"
    }
  }'

Pruébelo

Registro de cambios de API

v3.0.02026-08-21
  • addedPOST /v1/ai/alt-text: AI alt text generation with GPT-4o Vision (Pro/Team or BYOK)
  • addedPOST /v1/ai/rename: AI batch rename based on image content
  • addedPOST /v1/ai/smart-crop: AI smart crop detection with platform presets
  • addedPOST /v1/ai/enhance: AI image enhancement (upscale, denoise, deblur)
  • addedPOST /v1/ai/recommend: AI format and quality recommendation
  • addedBYOK (Bring Your Own Key): use your own OpenAI-compatible model via userProvider object
  • addedGET/PUT/DELETE /api/user/ai-key: manage saved BYOK config (AES-256-GCM encrypted)
  • addedPOST /api/background-remove: remove image background
v2.1.02026-08-12
  • addedBatch webhook callback: pass `webhook_url` in batch creation to receive POST notifications on completion or failure
  • addedAutomatic cleanup of stale batch jobs (30-minute timeout) and result files (24-hour retention)
  • addedGET /api/v2/usage: query API key monthly usage and recent calls
  • addedGET /api/v2/credits: query available API credits and package details
v2.0.02026-08-12
  • addedPOST /api/v2/batch: upload ZIP, async batch conversion
  • addedGET /api/v2/batch/{id}/status: query batch job status
  • addedGET /api/v2/batch/{id}/result: download result ZIP
v1.4.02026-08-12
  • addedPOST /api/v1/resize: resize images via API
  • addedPOST /api/v1/crop: crop images via API
  • addedPOST /api/v1/watermark: add watermark to images via API
  • addedPOST /api/v1/optimize: smart optimization without format conversion
v1.0.02026-08-11
  • addedPOST /api/v1/convert: convert images to WebP/AVIF/JPEG/PNG
  • addedAPI key authentication with sk_ prefix
  • addedRate limiting: 60 requests/min per IP, monthly limits per plan
  • addedAPI credits for non-subscription users

¿Necesita una clave API? Ir al panel

¿Sin suscripción? Compre prepago Créditos API