API développeur

Documentation de l’API d’envoi d’images

Envoyez une image ou un lot depuis une application serveur, puis consultez le quota utilisé et restant.

Envoyez un e-mail à [email protected] avec une demande lisible dans le corps du message. Pour un nouveau compte, le système tente de créer un identifiant utilisateur API et une clé API, puis de les envoyer par e-mail. L’envoi de la demande ne confirme pas la réception des identifiants.

URL de basehttps://api.mini-tools.uk
EnvoiPOST /v1/upload
Quota utilisé et restantGET /v1/usage
Historique des envoisGET /v1/images
Supprimer une imageDELETE /v1/images/:key

Authentification

Aide à la demande et à la réception

  • Écrivez un court message, par exemple pour demander l’envoi d’illustrations de documentation par API. Un objet seul, une pièce jointe seule ou une signature automatique ne constitue pas une demande. Les messages vides ou illisibles ne reçoivent ni réponse automatique ni identifiants.
  • Sans réponse, vérifiez les indésirables et la présence d’un texte lisible dans votre message. Évitez de répéter le même type de demande depuis la même adresse dans les 24 heures. Une réponse signalant un échec de création nécessite l’aide du support ; elle ne signifie pas que le compte est actif. Indiquez à [email protected] l’adresse d’envoi et l’heure de la demande, jamais votre clé API.
  • Si un compte API actif existe déjà pour votre adresse, une nouvelle demande ne renvoie pas la clé d’origine. Demandez sa réinitialisation si vous l’avez perdue. Si le compte est désactivé, contactez le support ; répéter les envois ne le réactive pas.
  • Les nouveaux comptes créés automatiquement par e-mail disposent de 100 images temporaires par jour, avec une durée de 1-day, 7-day ou 30-day. Le stockage permanent par API n’est pas activé par défaut. Consultez GET /v1/usage avant un lot pour connaître vos droits actuels et le quota restant.

Chaque requête doit envoyer l’identifiant attribué et la clé API correspondante dans les en-têtes.

  • X-API-User-ID: assigned-user-id
  • Authorization: Bearer mtu_live_your_key
Utilisez ces deux identifiants uniquement sur un serveur de confiance. L’identifiant repère le compte et la clé API empêche son utilisation par un tiers. Ne publiez pas la clé dans le navigateur ou un dépôt public.

Utilisation

Envoyez multipart/form-data. Utilisez file une fois pour une image ou répétez le champ pour un lot.

Envoyer une image

cURL
curl "https://api.mini-tools.uk/v1/upload" \
  -H "X-API-User-ID: assigned-user-id" \
  -H "Authorization: Bearer mtu_live_your_key" \
  -F "duration=7-day" \
  -F "file=@image.png"

Exemple Node.js

Lisez MTU_API_USER_ID et MTU_API_KEY depuis l’environnement, téléversez un fichier, vérifiez le statut HTTP, analysez le succès ou l’échec, et journalisez un résultat désensibilisé (url, duration, expires_at, usage). N’encodez pas de vrais secrets.

Node.js
import fs from "node:fs";
import path from "node:path";

const userId = process.env.MTU_API_USER_ID;
const apiKey = process.env.MTU_API_KEY;

if (!userId || !apiKey) {
  throw new Error("Set MTU_API_USER_ID and MTU_API_KEY in the environment");
}

const form = new FormData();
form.append("duration", "7-day");
form.append(
  "file",
  new Blob([fs.readFileSync("./image.png")], { type: "image/png" }),
  path.basename("./image.png")
);

const response = await fetch("https://api.mini-tools.uk/v1/upload", {
  method: "POST",
  headers: {
    "X-API-User-ID": userId,
    Authorization: `Bearer ${apiKey}`,
  },
  body: form,
});

const payload = await response.json();

if (!response.ok || payload.success !== true) {
  console.error("Upload failed", {
    status: response.status,
    failed: payload.failed || null,
  });
  process.exitCode = 1;
} else {
  const item = payload.uploaded?.[0] || {};
  console.log({
    url: item.url,
    duration: item.duration,
    expires_at: item.expires_at,
    usage: payload.usage
      ? {
          temporary_used: payload.usage.temporary?.used,
          temporary_remaining: payload.usage.temporary?.remaining,
          permanent_used: payload.usage.permanent?.used,
          permanent_remaining: payload.usage.permanent?.remaining,
        }
      : null,
  });
}

Envoyer plusieurs images

cURL
curl "https://api.mini-tools.uk/v1/upload" \
  -H "X-API-User-ID: assigned-user-id" \
  -H "Authorization: Bearer mtu_live_your_key" \
  -F "duration=7-day" \
  -F "file=@first.png" \
  -F "file=@second.webp"

Nouvelles tentatives sûres

Pour un envoi susceptible d’être relancé, utilisez un Idempotency-Key unique. La même requête avec la même clé renvoie le premier résultat sans nouvel envoi ni double consommation du quota. Des fichiers différents avec la même clé renvoient HTTP 409.

HTTP
Idempotency-Key: upload-request-001

Champs de requête

ChampRequisDescription
fileOuiUne image, ou le même champ répété pour plusieurs images.
durationNon1-day, 7-day, 30-day ou permanent. Le compte doit autoriser le type choisi.

Réponse d’envoi

Un succès complet renvoie HTTP 201. HTTP 207 signifie que certaines images sont stockées et d’autres ont échoué : examinez uploaded et failed même si success vaut false et conservez les URL réussies. Après correction, renvoyez uniquement les fichiers en échec avec un nouvel Idempotency-Key. Rejouer la requête initiale avec sa clé initiale renvoie le résultat initial.

Le JSON ci-dessous illustre la structure de réponse. Les URL d’images, dates et valeurs de compte sont des exemples, pas un envoi réel ni une garantie de votre quota.

JSON
{
  "success": true,
  "partial": false,
  "uploaded": [
    {
      "success": true,
      "key": "7-day/example.png",
      "url": "https://pub.mini-tools.uk/7-day/example.png",
      "duration": "7-day",
      "expires_at": "2026-08-05T12:00:00.000Z",
      "size": 24831,
      "mime": "image/png",
      "risk": "normal"
    }
  ],
  "failed": [],
  "usage": {
    "user_id": "assigned-user-id",
    "plan_type": "custom",
    "temporary": {
      "enabled": true,
      "limit": 100,
      "used": 1,
      "remaining": 99,
      "reset_at": "2026-08-05T16:00:00.000Z",
      "timezone": "Asia/Shanghai"
    },
    "permanent": {
      "enabled": false,
      "limit": 0,
      "used": 0,
      "remaining": 0
    },
    "usage_date": "2026-08-05"
  }
}

Champs renvoyés

ChampDescription
successVrai uniquement si toutes les images réussissent.
partialVrai si une partie du lot réussit.
uploadedImages réussies avec clé, URL, durée, expiration, taille, type MIME et état de contrôle.
failedÉchecs avec index, nom de fichier, message et code d’erreur.
accountDonnées de quota à plat pour compatibilité.
usageLimites actuelles, valeurs utilisées et restantes.

Obtenir le quota utilisé et restant

Appelez cet endpoint avant ou après un envoi. La consultation ne consomme aucun quota.

cURL
curl "https://api.mini-tools.uk/v1/usage" \
  -H "X-API-User-ID: assigned-user-id" \
  -H "Authorization: Bearer mtu_live_your_key"
JSON
{
  "success": true,
  "usage": {
    "user_id": "assigned-user-id",
    "plan_type": "custom",
    "temporary": {
      "enabled": true,
      "limit": 100,
      "used": 24,
      "remaining": 76,
      "reset_at": "2026-08-05T16:00:00.000Z",
      "timezone": "Asia/Shanghai"
    },
    "permanent": {
      "enabled": false,
      "limit": 0,
      "used": 0,
      "remaining": 0
    },
    "usage_date": "2026-08-05"
  }
}

Consulter l’historique des envois

Renvoie uniquement les envois actifs de l’utilisateur API actuel. Chaque URL publique est directement utilisable. La durée, l’expiration et l’état de contrôle ne sont pas inclus.

cURL
curl "https://api.mini-tools.uk/v1/images?limit=20" \
  -H "X-API-User-ID: assigned-user-id" \
  -H "Authorization: Bearer mtu_live_your_key"
JSON
{
  "success": true,
  "records": [
    {
      "key": "7-day/example.png",
      "url": "https://pub.mini-tools.uk/7-day/example.png",
      "size": 24831,
      "mime": "image/png",
      "uploaded_at": "2026-08-05T12:00:00.000Z"
    }
  ],
  "next_cursor": null
}

limit vaut 20 par défaut et 100 au maximum. Lorsque next_cursor n’est pas null, transmettez-le comme paramètre cursor pour obtenir la page suivante.

Supprimer une image envoyée

Supprime une image de l’utilisateur API authentifié. Les images d’un autre utilisateur ne peuvent pas être supprimées. La suppression ne restaure pas le quota quotidien ou permanent.

cURL
curl -X DELETE "https://api.mini-tools.uk/v1/images/7-day/example.png" \
  -H "X-API-User-ID: assigned-user-id" \
  -H "Authorization: Bearer mtu_live_your_key"
JSON
{
  "success": true,
  "deleted": {
    "key": "7-day/example.png",
    "url": "https://pub.mini-tools.uk/7-day/example.png"
  }
}

Limites

  • Formats acceptés : JPG, PNG, GIF et WebP.
  • 5 Mo maximum par image.
  • 10 images et 25 Mo au total par requête.
  • Durée : 1-day, 7-day, 30-day ou permanent, selon les droits du compte.
  • Seules les images réussies consomment le quota. Les quotas temporaires sont réinitialisés à minuit dans Asia/Shanghai ; les quotas permanents sont globaux.
  • Utilisez un Idempotency-Key unique pour les envois susceptibles d’être relancés afin d’éviter les doublons et la double consommation du quota.
  • Les identifiants de la réponse automatique peuvent être utilisés tant que le compte reste actif. Un administrateur peut désactiver le compte ensuite. Les envois API restent soumis à la revue de contenu.
  • Les mêmes règles s’appliquent aux envois API et Web. Les images illégales, nuisibles, privées ou contrefaisantes peuvent être supprimées.

Codes HTTP

  • 200 Consultation ou suppression réussie.
  • 201 Toutes les images ont été envoyées.
  • 207 Lot partiellement réussi.
  • 400 / 413 / 415 Requête, nombre, taille ou contenu invalide.
  • 401 / 403 Identifiants invalides, compte désactivé ou type non autorisé.
  • 404 L’image n’existe pas ou n’appartient pas à l’utilisateur API actuel.
  • 409 L’Idempotency-Key est en cours de traitement ou a été réutilisé pour un autre envoi.
  • 429 Quota quotidien ou permanent épuisé.
  • 503 Base API temporairement indisponible.

Cas d’usage

  • Envoyer des captures depuis un flux de déploiement ou de test.
  • Envoyer plusieurs images de produit ou de documentation.
  • Vérifier le quota avant un lot automatisé.

Outils associés

FAQ

Une requête peut-elle envoyer plusieurs images ?

Oui. Répétez file pour chaque image dans les limites indiquées.

L’identifiant utilisateur suffit-il ?

Non. Envoyez l’identifiant et la clé API correspondante.

Comment connaître le quota restant ?

Appelez GET /v1/usage ou lisez usage dans la réponse d’envoi.