Discord

Documentation

Envoyer une image par script.

Un seul point d'entrée, un fichier par requête, une réponse JSON. De quoi brancher ShareX, un raccourci clavier ou ton propre outil.

Point d'entrée

URLhttps://www.toplix.fr/api/upload.php
MéthodePOST
Encodagemultipart/form-data
Réponseapplication/json

Authentification

La clé se présente en en-tête, ce qui évite de la voir traîner dans les journaux du serveur :

Authorization: Bearer TA_CLE

Si ton client ne sait pas ajouter d'en-tête, envoie-la dans un champ key du formulaire. Les clés se déclarent dans config.php, sous api_keys. Une clé compromise se révoque en la retirant du tableau.

Paramètres

file requis Le fichier image. image est accepté comme alias.
private 1 pour que l'image n'apparaisse pas dans la page publique.
strip 1 pour retirer les métadonnées de prise de vue (EXIF, GPS).
expires Durée de vie en secondes, parmi 0, 3600, 21600, 86400, 604800, 2592000. 0 conserve l'image sans limite.

Exemple avec curl

curl -X POST https://www.toplix.fr/api/upload.php \
  -H "Authorization: Bearer TA_CLE" \
  -F "file=@photo.jpg" \
  -F "strip=1" \
  -F "expires=604800"

Réponse

En cas de succès, le serveur répond 200 :

{
  "ok": true,
  "file": {
    "code": "a7k2m9xp",
    "name": "photo.jpg",
    "url": "https://www.toplix.fr/uploads/a7k2m9xp.jpg",
    "thumb": "https://www.toplix.fr/uploads/thumbs/a7k2m9xp_t.jpg",
    "page": "https://www.toplix.fr/image.php?c=a7k2m9xp",
    "delete": "https://www.toplix.fr/delete.php?c=a7k2m9xp&t=…",
    "width": 1600,
    "height": 1067,
    "size": 482910,
    "sizeLabel": "471,6 Ko",
    "expires": "dans 7 j"
  }
}

En cas d'échec, ok vaut false et error porte le motif :

{ "ok": false, "error": "Ce n'est pas une image lisible." }
400Fichier refusé : format, poids, contenu illisible.
401Clé d'API invalide.
413Requête plus lourde que post_max_size.
419Aucune authentification fournie.
429Quota horaire dépassé pour cette adresse IP.

Configuration ShareX

Enregistre ce contenu dans un fichier .sxcu et ouvre-le : ShareX l'ajoute comme destination personnalisée.

{
  "Version": "14.0.0",
  "Name": "Toplix",
  "DestinationType": "ImageUploader",
  "RequestMethod": "POST",
  "RequestURL": "https://www.toplix.fr/api/upload.php",
  "Headers": { "Authorization": "Bearer TA_CLE" },
  "Body": "MultipartFormData",
  "FileFormName": "file",
  "Arguments": { "strip": "1" },
  "URL": "{json:file.url}",
  "DeletionURL": "{json:file.delete}"
}

Limites

  • Un fichier par requête. Pour un lot, enchaîne les appels.
  • 8,0 Mo maximum par fichier.
  • Formats acceptés : JPG, JPEG, PNG, GIF, WEBP.
  • 60 envois par heure et par adresse IP.
  • Le lien de suppression n'est renvoyé qu'une fois : conserve-le.