Documentazione API

Converti immagini programmaticamente con la nostra API REST.

Panoramica

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

Autenticazione: Bearer token via Authorization header

Formato chiave API: sk_ prefisso + 48 caratteri alfanumerici

Limiti: Team 50K/mese, Enterprise illimitato

Dimensione max: 15 MB per file

Dimensioni max: 80 megapixel (es. 8000×10000)

Formati accettati: JPEG, PNG, WebP, GIF, BMP, TIFF, HEIC

Accesso API: piani Team e Enterprise (genera chiave dal Dashboard )

Endpoint

MetodoEndpointDescrizione
POST/api/v1/convertConverti e comprimi un'immagine
POST/api/v1/resizeRidimensiona un'immagine
POST/api/v1/cropRitaglia un'immagine
POST/api/v1/watermarkAggiungi filigrana a un'immagine
POST/api/v1/optimizeOttimizzazione intelligente senza conversione formato
POST/api/v2/batchConversione batch di ZIP (asincrono)
GET/api/v2/batch/{id}/statusConsulta stato job batch
GET/api/v2/batch/{id}/resultScarica ZIP risultati batch
GET/api/v2/usageConsulta utilizzo mensile chiave API
GET/api/v2/creditsConsulta crediti API disponibili
POST/v1/ai/alt-textGenerazione testo alternativo IA (Pro/Team)
POST/v1/ai/renameRinomina batch IA (Pro/Team)
POST/v1/ai/smart-cropRilevamento ritaglio intelligente IA (Pro/Team)
POST/v1/ai/enhanceMiglioramento immagine IA (Pro/Team)
POST/v1/ai/recommendRaccomandazione formato IA (Pro/Team)
POST/api/background-removeRimuovi sfondo immagine
GET/PUT/DEL/api/user/ai-keyGestione configurazione modello BYOK
POST/v1/convert

Converti e comprimi immagine in WebP, AVIF, JPEG o PNG.

Parametri (multipart/form-data)

CampoTipoObbligatorioDescrizione
imagefileIl file immagine da convertire
formatstringNowebp, avif, jpeg, png (predefinito: webp)
qualitynumberNo1-100 (predefinito: 75)
widthnumberNoLarghezza output (mantiene proporzioni)
heightnumberNoAltezza output
fitstringNocover, contain, fill, inside, outside
grayscalebooleanNoConverti in scala di grigi
blurnumberNoRaggio sfocatura (0,3-100)
rotatenumberNoAngolo rotazione (0-360)

Risposta

Dati immagine binari con header:

  • Content-Type : Tipo MIME del formato immagine
  • Content-Disposition : Allegato con nome file (es. converted.webp)
  • X-Input-Size : Dimensione originale in byte
  • X-Output-Size : Dimensione convertita in byte
  • X-Saved-Percent : Percentuale spazio risparmiato
  • X-RateLimit-Limit : Limite mensile chiamate API
  • X-RateLimit-Remaining : Chiamate API rimanenti questo mese
POST/api/v1/resize

Ridimensiona immagine mantenendo le proporzioni.

Parametri (multipart/form-data)

FieldTypeRequiredDescription
imagefileIl file immagine
widthnumberLarghezza target (1-10000)
heightnumberAltezza target (1-10000)
fitstringNocover/contain/fill/inside/outside (predefinito: inside)
POST/api/v1/crop

Estrai una regione rettangolare da un'immagine.

Parametri (multipart/form-data)

FieldTypeRequiredDescription
imagefileIl file immagine
xnumberOffset orizzontale (in alto a sinistra)
ynumberOffset verticale (in alto a sinistra)
widthnumberLarghezza area di ritaglio
heightnumberAltezza area di ritaglio
POST/api/v1/watermark

Sovrapponi filigrana in posizione configurabile.

Parametri (multipart/form-data)

FieldTypeRequiredDescription
imagefileImmagine base
watermarkfileImmagine filigrana
positionstringNotop-left/top-right/bottom-left/bottom-right/center
opacitynumberNo0-100 (predefinito: 100)
scalenumberNoDimensione filigrana come frazione larghezza base (0,01-1)
POST/api/v1/optimize

Ricodifica immagine per ridurre dimensione senza cambiare formato.

Parametri (multipart/form-data)

FieldTypeRequiredDescription
imagefileIl file immagine
qualitynumberNo1-100 (predefinito: 75). Formato originale preservato.
POST/api/v2/batch

Carica archivio ZIP per conversione batch asincrona. Restituisce ID job; consulta stato fino al completamento.

Parametri (multipart/form-data)

CampoTipoObbligatorioDescrizione
filefileArchivio ZIP di immagini
formatstringNowebp, avif, jpeg, png (predefinito: webp)
qualitynumberNo1-100 (predefinito: 75)

GET /api/v2/batch/{id}/status — Consulta stato job (in coda → in elaborazione → completato)
GET /api/v2/batch/{id}/result — Scarica ZIP risultati

Funzionalità IA Pro / Team

Analisi immagini IA con GPT-4o Vision. Tutti gli endpoint IA accettano body JSON con URI dati Base64. Supporta BYOK (Bring Your Own Key) — usa il tuo modello compatibile OpenAI per accesso illimitato gratuito.

POST/v1/ai/alt-text

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

Body (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.

Body (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.

Body (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.

Body (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.

Body (application/json)

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

BYOK: Oggetto userProvider (opzionale)

Includi in qualsiasi richiesta IA per usare il tuo modello. Salta controllo Pro e quota giornaliera.

CampoTipoObbligatorioDescrizione
baseUrlstringURL base API compatibile OpenAI
modelstringNome modello Vision
apiKeystringChiave API (modalità locale, inviata con richiesta)
useAccountKeybooleanUsa chiave crittografata salvata nell'account

† apiKey o useAccountKey è obbligatorio.

Rimozione sfondo

POST/api/background-remove

Rimuovi sfondo immagine. Usa API remove.bg con fallback sharp. Quota mensile (configurata da admin).

Parametri (multipart/form-data)

CampoTipoObbligatorioDescrizione
imagefileFile immagine (max 10 MB)
formatstringNoFormato output: png (predefinito), webp

Gestione account

GETPUTDELETE/api/user/ai-key

Gestisci configurazione modello BYOK salvata (crittografata AES-256-GCM).

  • GET — Ottieni config salvata (chiave mascherata, es. sk-12****abcd)
  • PUT — Salva/aggiorna config (body: baseUrl, model, apiKey). Restituisce chiave mascherata.
  • DELETE — Elimina config salvata (irreversibile)

Risposte di errore

Tutti gli errori restituiscono JSON con { "statusCode": 4xx, "statusMessage": "..." }

CodiceErroreDescrizione
400missing_form_dataIl body deve essere multipart/form-data
400missing_image_fileNessun file immagine trovato (campo: "image")
400file_too_largeIl file supera il limite di 15 MB
400invalid_image_typeIl file non è un'immagine valida
400invalid_imageImmagine corrotta o illeggibile
400image_too_largeL'immagine supera 80 megapixel
400invalid_paramsValori parametro non validi (vedi campo issues)
401missing_or_invalid_api_keyHeader Authorization mancante o malformato
401invalid_or_revoked_api_keyChiave API non trovata o revocata
401api_access_not_availableIl tuo piano non include accesso API (solo Team/Enterprise)
429rate_limitedTroppe richieste (limite: 30/minuto)
429monthly_limit_exceededQuota API mensile esaurita
500conversion_failedErrore elaborazione immagine lato server
Errori funzionalità IA
403ai_access_deniedPiano Pro/Team richiesto (o modalità BYOK: login richiesto)
429ai_daily_limit_exceededQuota IA giornaliera esaurita (solo modalità piattaforma; BYOK illimitato)
503ai_service_unavailableServizio IA non configurato sul server
403no_saved_ai_keyBYOK: useAccountKey=true ma nessuna chiave salvata
503ai_key_encryption_disabledAI_KEY_ENCRYPTION_SECRET non configurato sul server

Esempi di codice

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

Testo alternativo IA (body 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: Usa il tuo modello

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"
    }
  }'

Provalo

Registro modifiche 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

Hai bisogno di una chiave API? Vai alla dashboard

Senza abbonamento? Acquista prepagato Crediti API