Documentation API

Convertissez des images programmatiquement avec notre API REST.

Aperçu

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

Authentification : Bearer token via Authorization en-tête

Format de clé API : sk_ préfixe + 48 caractères alphanumériques

Limites : Team 50K/mois, Enterprise illimité

Taille max : 15 Mo par fichier

Dimensions max : 80 mégapixels (ex. 8000×10000)

Formats acceptés : JPEG, PNG, WebP, GIF, BMP, TIFF, HEIC

Accès API : plans Team et Enterprise (générer une clé depuis le Tableau de bord )

Points de terminaison

MéthodePoint de terminaisonDescription
POST/api/v1/convertConvertir et compresser une image
POST/api/v1/resizeRedimensionner une image
POST/api/v1/cropRecadrer une image
POST/api/v1/watermarkAjouter un filigrane à une image
POST/api/v1/optimizeOptimisation intelligente sans conversion de format
POST/api/v2/batchConversion par lot de ZIP (asynchrone)
GET/api/v2/batch/{id}/statusInterroger le statut du travail par lot
GET/api/v2/batch/{id}/resultTélécharger le ZIP de résultats
GET/api/v2/usageInterroger l'utilisation mensuelle de la clé API
GET/api/v2/creditsInterroger les crédits API disponibles
POST/v1/ai/alt-textGénération de texte alternatif IA (Pro/Team)
POST/v1/ai/renameRenommage en masse IA (Pro/Team)
POST/v1/ai/smart-cropDétection de recadrage intelligent IA (Pro/Team)
POST/v1/ai/enhanceAmélioration d'image IA (Pro/Team)
POST/v1/ai/recommendRecommandation de format IA (Pro/Team)
POST/api/background-removeSupprimer l'arrière-plan de l'image
GET/PUT/DEL/api/user/ai-keyGestion de configuration modèle BYOK
POST/v1/convert

Convertir et compresser une image en WebP, AVIF, JPEG ou PNG.

Paramètres (multipart/form-data)

ChampTypeRequisDescription
imagefileOuiLe fichier image à convertir
formatstringNonwebp, avif, jpeg, png (par défaut : webp)
qualitynumberNon1-100 (par défaut : 75)
widthnumberNonLargeur de sortie (conserve le ratio)
heightnumberNonHauteur de sortie
fitstringNoncover, contain, fill, inside, outside
grayscalebooleanNonConvertir en niveaux de gris
blurnumberNonRayon de flou (0,3-100)
rotatenumberNonAngle de rotation (0-360)

Réponse

Données d'image binaires avec en-têtes :

  • Content-Type : Type MIME du format image
  • Content-Disposition : Pièce jointe avec nom de fichier (ex. converted.webp)
  • X-Input-Size : Taille originale en octets
  • X-Output-Size : Taille convertie en octets
  • X-Saved-Percent : Pourcentage espace économisé
  • X-RateLimit-Limit : Limite d'appels API mensuels
  • X-RateLimit-Remaining : Appels API restants ce mois
POST/api/v1/resize

Redimensionner une image en préservant le ratio d'aspect.

Paramètres (multipart/form-data)

FieldTypeRequiredDescription
imagefileOuiLe fichier image
widthnumberOuiLargeur cible (1-10000)
heightnumberOuiHauteur cible (1-10000)
fitstringNoncover/contain/fill/inside/outside (par défaut : inside)
POST/api/v1/crop

Extraire une région rectangulaire d'une image.

Paramètres (multipart/form-data)

FieldTypeRequiredDescription
imagefileOuiLe fichier image
xnumberOuiDécalage horizontal (en haut à gauche)
ynumberOuiDécalage vertical (en haut à gauche)
widthnumberOuiLargeur de la zone de recadrage
heightnumberOuiHauteur de la zone de recadrage
POST/api/v1/watermark

Superposer un filigrane à une position configurable.

Paramètres (multipart/form-data)

FieldTypeRequiredDescription
imagefileOuiImage de base
watermarkfileOuiImage de filigrane
positionstringNontop-left/top-right/bottom-left/bottom-right/center
opacitynumberNon0-100 (par défaut : 100)
scalenumberNonTaille du filigrane en fraction de la largeur de base (0,01-1)
POST/api/v1/optimize

Ré-encoder l'image pour réduire la taille sans changer le format.

Paramètres (multipart/form-data)

FieldTypeRequiredDescription
imagefileOuiLe fichier image
qualitynumberNon1-100 (par défaut : 75). Format original préservé.
POST/api/v2/batch

Télécharger une archive ZIP pour conversion par lot asynchrone. Retourne un ID de travail ; interroger le statut jusqu'à complétion.

Paramètres (multipart/form-data)

ChampTypeRequisDescription
filefileOuiArchive ZIP d'images
formatstringNonwebp, avif, jpeg, png (par défaut : webp)
qualitynumberNon1-100 (par défaut : 75)

GET /api/v2/batch/{id}/status — Interroger le statut (en attente → en cours → terminé)
GET /api/v2/batch/{id}/result — Télécharger le ZIP de résultats

Fonctionnalités IA Pro / Team

Analyse d'images par IA avec GPT-4o Vision. Tous les points IA acceptent un corps JSON avec des URI de données Base64. Prend en charge BYOK (Bring Your Own Key) — utilisez votre propre modèle compatible OpenAI pour un accès illimité gratuit.

POST/v1/ai/alt-text

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

Corps (application/json)

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

Generate SEO-friendly filenames based on image content.

Corps (application/json)

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

Detect subject and generate platform-specific crop recommendations.

Corps (application/json)

FieldTypeRequiredDescription
imagestringOuiBase64 data URI
platformsstring[]Noninstagram-square/twitter/facebook/youtube-thumbnail/etc.
customRatioobjectNon{width, height}
returnCroppedImagebooleanNonReturn cropped result (default: false)
userProviderobjectNonBYOK config
POST/v1/ai/enhance

Upscale, denoise, or deblur images.

Corps (application/json)

FieldTypeRequiredDescription
imagestringOuiBase64 data URI
modestringNonupscale/denoise/deblur/auto (default: auto)
intensitynumberNon1=Light, 2=Medium, 3=Strong (default: 2)
returnPreviewbooleanNonReturn enhanced image (default: true)
POST/v1/ai/recommend

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

Corps (application/json)

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

BYOK : Objet userProvider (optionnel)

Inclure dans toute requête IA pour utiliser votre propre modèle. Ignore la vérification Pro et le quota quotidien.

ChampTypeRequisDescription
baseUrlstringOuiURL de base API compatible OpenAI
modelstringOuiNom du modèle Vision
apiKeystringClé API (mode local, envoyée avec la requête)
useAccountKeybooleanUtiliser la clé chiffrée enregistrée au compte

† apiKey ou useAccountKey est requis.

Suppression d'arrière-plan

POST/api/background-remove

Supprimer l'arrière-plan de l'image. Utilise l'API remove.bg avec fallback sharp. Quota mensuel (configuré par l'admin).

Paramètres (multipart/form-data)

ChampTypeRequisDescription
imagefileOuiFichier image (max 10 Mo)
formatstringNonFormat de sortie : png (par défaut), webp

Gestion de compte

GETPUTDELETE/api/user/ai-key

Gérer la configuration de modèle BYOK enregistrée (chiffrée AES-256-GCM).

  • GET — Obtenir la config enregistrée (clé masquée, ex. sk-12****abcd)
  • PUT — Enregistrer/mettre à jour la config (corps : baseUrl, model, apiKey). Retourne la clé masquée.
  • DELETE — Supprimer la config enregistrée (irréversible)

Réponses d'erreur

Toutes les erreurs retournent du JSON avec { "statusCode": 4xx, "statusMessage": "..." }

CodeErreurDescription
400missing_form_dataLe corps doit être multipart/form-data
400missing_image_fileAucun fichier image trouvé (champ : "image")
400file_too_largeLe fichier dépasse la limite de 15 Mo
400invalid_image_typeLe fichier n'est pas une image valide
400invalid_imageImage corrompue ou illisible
400image_too_largeL'image dépasse 80 mégapixels
400invalid_paramsValeurs de paramètres invalides (voir le champ issues)
401missing_or_invalid_api_keyEn-tête Authorization manquant ou malformé
401invalid_or_revoked_api_keyClé API introuvable ou révoquée
401api_access_not_availableVotre plan n'inclut pas l'accès API (Team/Enterprise uniquement)
429rate_limitedTrop de requêtes (limite : 30/minute)
429monthly_limit_exceededQuota API mensuel épuisé
500conversion_failedErreur de traitement d'image côté serveur
Erreurs fonctionnalités IA
403ai_access_deniedPlan Pro/Team requis (ou mode BYOK : connexion requise)
429ai_daily_limit_exceededQuota IA quotidien épuisé (mode plateforme uniquement ; BYOK illimité)
503ai_service_unavailableService IA non configuré sur le serveur
403no_saved_ai_keyBYOK : useAccountKey=true mais aucune clé enregistrée
503ai_key_encryption_disabledAI_KEY_ENCRYPTION_SECRET non configuré sur le serveur

Exemples de code

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

Texte alternatif IA (corps 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 : Utiliser votre propre modèle

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

Essayer

Journal des modifications 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

Besoin d'une clé API ? Aller au tableau de bord

Pas d'abonnement ? Achetez du prépayé Crédits API