API OpenRemover — Quickstart & Référence
Intégrez la suppression d'arrière-plan IA dans vos applications en quelques minutes. Un seul endpoint, une réponse binaire.
Méthode
POST
Endpoint
/api/v1/remove
Réponse
Image binaire (PNG/JPEG)
Quickstart en 3 minutes
Récupérez votre clé API
Mon Profil → onglet "Paramètres API" → Créez une clé → Copiez-la.
Premier appel en cURL
curl -X POST https://openremover.vercel.app/api/v1/remove \
-H "x-api-key: sk_your_api_key" \
-F "image=@photo.jpg" \
--output result.pngPremier appel en JavaScript
const formData = new FormData();
formData.append('image', fileInput.files[0]);
const response = await fetch('https://openremover.vercel.app/api/v1/remove', {
method: 'POST',
headers: { 'x-api-key': 'sk_your_api_key' },
body: formData
});
const blob = await response.blob();
const url = URL.createObjectURL(blob);
// Utilisez l'URL pour afficher ou télécharger l'imageC'est tout ! L'image détourée est retournée directement dans la réponse HTTP. Pas de callback, pas de polling.
Authentification
L'API supporte 2 méthodes d'authentification. La clé API est recommandée pour les intégrations externes.
🔑 Clé API
Ajoutez votre clé dans le header x-api-key.
🎫 Bearer Token
Utilisez un token Supabase Auth dans le header Authorization.
Comment obtenir une clé API ?
Connectez-vous → Profil → Créez une clé dans "Paramètres API" → Copiez-la immédiatement (elle ne sera plus visible).
Endpoint principal
https://openremover.vercel.app/api/v1/removeParamètres (multipart/form-data)
| Champ | Type | Requis | Description |
|---|---|---|---|
| image | File | Oui | Fichier image à détourer (PNG, JPEG, WebP). Max 10 Mo. |
| format | String | Non | Format de sortie : png, jpeg, webp. Par défaut : png |
| bg_color | String | Non | Couleur de fond hexadécimale (ex: #ffffff). Par défaut : #ffffff (blanc) |
| remove_color | String | Non | Couleur à supprimer manuellement (Chroma Key) hex (#00ff00). |
| remove_tolerance | Number | Non | Tolérance de suppression (0-50). Défaut : 10. |
Réponse (succès — 200)
Content-Type
image/png
Format
Image binaire
Filename
removed-bg.png
Important : La réponse est une image binaire, pas du JSON. Configurez votre client pour recevoir des données binaires (Blob en JS, --output en cURL).
Exemples de code
cURL — Fond transparent (blanc par défaut)
curl -X POST https://openremover.vercel.app/api/v1/remove \
-H "x-api-key: sk_your_api_key" \
-F "image=@photo.jpg" \
--output result.pngcURL — Format WebP et fond rouge
curl -X POST https://openremover.vercel.app/api/v1/remove \
-H "x-api-key: sk_your_api_key" \
-F "image=@photo.jpg" \
-F "format=webp" \
-F "bg_color=#ff0000" \
--output result.webpJavaScript (fetch)
const formData = new FormData();
formData.append('image', fileInput.files[0]);
formData.append('format', 'jpeg'); // Optionnel
formData.append('bg_color', '#000000'); // Optionnel (noir)
const response = await fetch('https://openremover.vercel.app/api/v1/remove', {
method: 'POST',
headers: { 'x-api-key': 'sk_your_api_key' },
body: formData
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error);
}
const blob = await response.blob();
const url = URL.createObjectURL(blob);
// Utiliser l'URL pour afficher ou télécharger l'imagePython (requests)
import requests
response = requests.post(
'https://openremover.vercel.app/api/v1/remove',
headers={'x-api-key': 'sk_your_api_key'},
files={'image': open('photo.jpg', 'rb')},
data={
'format': 'png',
'bg_color': '#ffffff',
}
)
if response.status_code == 200:
with open('result.png', 'wb') as f:
f.write(response.content)
print("Image sauvegardée !")
else:
print(f"Erreur {response.status_code}: {response.json()['error']}")Node.js (fetch + fs)
import fs from 'fs';
const formData = new FormData();
formData.append('image', new Blob([fs.readFileSync('./photo.jpg')]), 'photo.jpg');
const response = await fetch('https://openremover.vercel.app/api/v1/remove', {
method: 'POST',
headers: { 'x-api-key': 'sk_your_api_key' },
body: formData
});
const buffer = Buffer.from(await response.arrayBuffer());
fs.writeFileSync('result.png', buffer);
console.log('Image sauvegardée !');Erreurs & limites
| Code | Message | Cause & recommandation |
|---|---|---|
| 400 | No image file provided | Aucun fichier dans le champ 'image'. Vérifiez le nom du champ multipart. |
| 400 | Invalid format | Le format demandé n'est pas supporté. Utilisez : png, jpeg ou webp. |
| 401 | Invalid API Key | La clé API fournie est invalide. Vérifiez qu'elle est correcte et active. |
| 401 | Missing API Key or Auth Token | Aucun header d'authentification fourni. Ajoutez x-api-key ou Authorization. |
| 402 | Insufficient credits | Solde de crédits à 0. Rechargez depuis votre profil. |
| 413 | File too large (max 10MB) | L'image dépasse 10 Mo. Réduisez-la avant l'envoi. |
| 415 | Invalid file type | Le fichier n'est pas une image PNG, JPEG ou WebP. |
| 500 | Internal Server Error | Erreur serveur (modèle IA, etc.). Réessayez. Si le problème persiste, contactez le support. |
Toutes les erreurs retournent du JSON : { "error": "message" }
Limites techniques
| Taille max du fichier | 10 Mo |
| Formats acceptés | PNG, JPG/JPEG, WebP |
| Timeout serveur | 60 secondes |
| Format de sortie | PNG (défaut), JPEG, WebP |
| Cold start (1er appel) | ~10-30 secondes |
| Appels suivants | ~3-10 secondes |
Cold start : Le premier appel après inactivité est plus lent car le modèle IA (~100 Mo) se charge en mémoire. Les appels suivants sont beaucoup plus rapides.
Crédits et usage en production
Chaque appel API réussi consomme 1 crédit. Les crédits sont décomptés de manière atomique (pas de double-consommation possible).
Comment dimensionner vos crédits
| Volume mensuel | Pack recommandé | Coût |
|---|---|---|
| 1–10 images /mois | Gratuit (10 crédits offerts) | Gratuit |
| 10–50 images /mois | Standard (50 crédits) | $4.99 |
| 50–150 images /mois | Medium (150 crédits) | $12.99 |
| 150–500 images /mois | Pro (500 crédits) | $34.99 |
| 500+ images /mois | Plusieurs packs Pro | Sur mesure |
402. Pas de perte de données : l'image n'est simplement pas traitée.Prêt à commencer ?
Créez votre clé API en quelques secondes et intégrez le détourage IA.