Retour à la documentation
API v1 Documentation

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

1

Récupérez votre clé API

Mon Profil → onglet "Paramètres API" → Créez une clé → Copiez-la.

2

Premier appel en cURL

bash
curl -X POST https://openremover.vercel.app/api/v1/remove \
  -H "x-api-key: sk_your_api_key" \
  -F "image=@photo.jpg" \
  --output result.png
3

Premier appel en JavaScript

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'image

C'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.

Recommandé

🔑 Clé API

Ajoutez votre clé dans le header x-api-key.

Header: x-api-key: sk_xxx...

🎫 Bearer Token

Utilisez un token Supabase Auth dans le header Authorization.

Header: Authorization: Bearer eyJ...

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

POSThttps://openremover.vercel.app/api/v1/remove

Paramètres (multipart/form-data)

ChampTypeRequisDescription
imageFileOuiFichier image à détourer (PNG, JPEG, WebP). Max 10 Mo.
formatStringNonFormat de sortie : png, jpeg, webp. Par défaut : png
bg_colorStringNonCouleur de fond hexadécimale (ex: #ffffff). Par défaut : #ffffff (blanc)
remove_colorStringNonCouleur à supprimer manuellement (Chroma Key) hex (#00ff00).
remove_toleranceNumberNonTolé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)

bash
curl -X POST https://openremover.vercel.app/api/v1/remove \
  -H "x-api-key: sk_your_api_key" \
  -F "image=@photo.jpg" \
  --output result.png

cURL — Format WebP et fond rouge

bash
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.webp

JavaScript (fetch)

javascript
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'image

Python (requests)

python
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)

javascript
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

CodeMessageCause & recommandation
400No image file providedAucun fichier dans le champ 'image'. Vérifiez le nom du champ multipart.
400Invalid formatLe format demandé n'est pas supporté. Utilisez : png, jpeg ou webp.
401Invalid API KeyLa clé API fournie est invalide. Vérifiez qu'elle est correcte et active.
401Missing API Key or Auth TokenAucun header d'authentification fourni. Ajoutez x-api-key ou Authorization.
402Insufficient creditsSolde de crédits à 0. Rechargez depuis votre profil.
413File too large (max 10MB)L'image dépasse 10 Mo. Réduisez-la avant l'envoi.
415Invalid file typeLe fichier n'est pas une image PNG, JPEG ou WebP.
500Internal Server ErrorErreur 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 fichier10 Mo
Formats acceptésPNG, JPG/JPEG, WebP
Timeout serveur60 secondes
Format de sortiePNG (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 mensuelPack recommandéCoût
1–10 images /moisGratuit (10 crédits offerts)Gratuit
10–50 images /moisStandard (50 crédits)$4.99
50–150 images /moisMedium (150 crédits)$12.99
150–500 images /moisPro (500 crédits)$34.99
500+ images /moisPlusieurs packs ProSur mesure
1 crédit = 1 image traitée. Si crédits = 0, l'API retourne 402. Pas de perte de données : l'image n'est simplement pas traitée.
Acheter des crédits

Prêt à commencer ?

Créez votre clé API en quelques secondes et intégrez le détourage IA.