L'API Morphix permet de convertir, redimensionner, recadrer et supprimer les métadonnées de vos images par programmation. Envoyez une requête POST avec un fichier image, recevez l'image traitée en retour. Aucun SDK à installer, aucune configuration complexe. L'API fonctionne avec tout langage capable de faire des requêtes HTTP.
Ce guide couvre l'authentification, chaque endpoint disponible, et des exemples de code fonctionnels.
Que peut faire l'API ?
L'API expose quatre endpoints, chacun gérant une opération spécifique :
| Endpoint | Méthode | Description |
|---|---|---|
/api/v1/convert |
POST | Convertir entre JPG, PNG, WebP et AVIF |
/api/v1/resize |
POST | Redimensionner une image à des dimensions précises |
/api/v1/crop |
POST | Recadrer une image avec des coordonnées pixel exactes |
/api/v1/remove-metadata |
POST | Supprimer les métadonnées EXIF, IPTC et XMP |
Tous les endpoints acceptent un upload de fichier via multipart/form-data et retournent l'image traitée dans le corps de la réponse. Le content-type de la réponse correspond au format de sortie (par ex. image/webp pour une sortie WebP).
Authentification
Chaque requête API nécessite une clé API valide envoyée dans le header Authorization en tant que Bearer token :
Authorization: Bearer VOTRE_CLE_API
Vous pouvez générer une clé API depuis votre tableau de bord. Chaque clé est liée à votre compte et aux limites de votre plan.
Gardez votre clé API secrète. Ne la committez pas dans le contrôle de version, ne l'intégrez pas dans du code côté client, et ne la partagez pas publiquement. Utilisez des variables d'environnement ou un gestionnaire de secrets.
Votre premier appel API | Convertir une image
L'opération la plus simple est la conversion d'une image d'un format à un autre. Voici un exemple complet qui convertit un fichier JPG en WebP :
cURL :
curl -X POST https://morphix.tools/api/v1/convert \
-H "Authorization: Bearer VOTRE_CLE_API" \
-F "file=@photo.jpg" \
-F "format=webp" \
-F "quality=80" \
--output photo.webp
Python (requests) :
import requests
response = requests.post(
"https://morphix.tools/api/v1/convert",
headers={"Authorization": "Bearer VOTRE_CLE_API"},
files={"file": open("photo.jpg", "rb")},
data={"format": "webp", "quality": 80},
)
with open("photo.webp", "wb") as f:
f.write(response.content)
JavaScript (Node.js, fetch) :
const fs = require("fs");
const form = new FormData();
form.append("file", new Blob([fs.readFileSync("photo.jpg")]), "photo.jpg");
form.append("format", "webp");
form.append("quality", "80");
const response = await fetch("https://morphix.tools/api/v1/convert", {
method: "POST",
headers: { Authorization: "Bearer VOTRE_CLE_API" },
body: form,
});
fs.writeFileSync("photo.webp", Buffer.from(await response.arrayBuffer()));
Paramètres :
| Paramètre | Requis | Valeurs | Par défaut |
|---|---|---|---|
file |
Oui | Fichier image (JPG, PNG, WebP, AVIF) | |
format |
Oui | jpg, png, webp, avif |
|
quality |
Non | 1 à 100 | 80 |
Endpoints Resize et Crop
Resize modifie les dimensions de l'image en préservant tout le contenu :
curl -X POST https://morphix.tools/api/v1/resize \
-H "Authorization: Bearer VOTRE_CLE_API" \
-F "file=@photo.jpg" \
-F "width=800" \
-F "height=600" \
--output photo-resized.jpg
| Paramètre | Requis | Description |
|---|---|---|
file |
Oui | Fichier image |
width |
Oui | Largeur cible en pixels |
height |
Oui | Hauteur cible en pixels |
Crop extrait une zone rectangulaire de l'image avec des coordonnées pixel :
curl -X POST https://morphix.tools/api/v1/crop \
-H "Authorization: Bearer VOTRE_CLE_API" \
-F "file=@photo.jpg" \
-F "x=100" \
-F "y=50" \
-F "width=800" \
-F "height=600" \
--output photo-cropped.jpg
| Paramètre | Requis | Description |
|---|---|---|
file |
Oui | Fichier image |
x |
Oui | Décalage gauche en pixels |
y |
Oui | Décalage haut en pixels |
width |
Oui | Largeur du recadrage en pixels |
height |
Oui | Hauteur du recadrage en pixels |
Endpoint Remove Metadata
Supprime toutes les métadonnées EXIF, IPTC et XMP d'une image :
curl -X POST https://morphix.tools/api/v1/remove-metadata \
-H "Authorization: Bearer VOTRE_CLE_API" \
-F "file=@photo.jpg" \
--output photo-clean.jpg
L'endpoint retourne la même image avec toutes les métadonnées supprimées. L'orientation est appliquée aux données pixel avant que le flag EXIF d'orientation ne soit supprimé, pour que l'image s'affiche correctement partout.
Limites de débit et gestion des erreurs
Les limites de débit de l'API dépendent de votre plan. Quand vous dépassez votre limite, l'API retourne une réponse 429 Too Many Requests.
| Code HTTP | Signification |
|---|---|
| 200 | Succès, le corps de la réponse contient l'image traitée |
| 400 | Requête invalide, paramètres manquants ou incorrects |
| 401 | Non autorisé, clé API invalide ou manquante |
| 413 | Fichier trop volumineux |
| 415 | Format de fichier non supporté |
| 429 | Limite de débit dépassée |
| 500 | Erreur serveur |
Les réponses d'erreur retournent du JSON avec un champ message expliquant le problème :
{
"error": "Invalid format parameter. Accepted values: jpg, png, webp, avif"
}
Les headers de limite de débit sont inclus dans chaque réponse :
| Header | Description |
|---|---|
X-RateLimit-Limit |
Nombre maximum de requêtes par fenêtre |
X-RateLimit-Remaining |
Requêtes restantes dans la fenêtre en cours |
X-RateLimit-Reset |
Timestamp Unix de remise à zéro de la fenêtre |
Quand vous recevez une réponse 429, lisez le header X-RateLimit-Reset et attendez ce timestamp avant de réessayer.
Obtenez votre clé API
Créez votre clé API depuis le tableau de bord Morphix. Aucune carte bancaire requise pour le plan gratuit.