Documentation de l'API

L'API YourImageShare vous permet de mettre en ligne, lister et supprimer des fichiers par programmation. C'est une petite API JSON/REST : aucun SDK requis, il suffit d'un client HTTP et d'une clé API. Des bibliothèques officielles JavaScript, Python et MCP sont également disponibles.

Toutes les bibliothèques clientes et tous les outils ci-dessous sont open source. Parcourez le code, signalez des problèmes ou contribuez sur notre dépôt GitHub officiel : github.com/yourimageshare/yourimageshare.

URL de base : https://yourimageshare.com/api · Format : JSON en entrée et en sortie, sauf les mises en ligne qui sont en multipart/form-data · Authentification : une clé API à chaque requête. · Spécification lisible par machine : /openapi.json (OpenAPI 3.1), pour les agents et les outils de génération de code qui préfèrent ne pas analyser cette page.

Obtenir une clé API

Connectez-vous, allez dans Mon compte et ouvrez l'onglet API. Votre clé y est affichée, avec un bouton Régénérer. Régénérer une clé invalide immédiatement l'ancienne : mettez donc à jour tous les endroits où elle est utilisée avant de cliquer.

Cet onglet contient aussi une seconde clé réservée à la mise en ligne, indépendante : voir le conseil ci-dessous et Extensions pour forums pour savoir quand l'utiliser à la place.

Authentification

Envoyez votre clé dans un en-tête (méthode recommandée, car les chaînes de requête finissent souvent dans les journaux d'accès, les journaux de proxy et les en-têtes Referer) :

X-API-Key: YOUR_API_KEY

Un paramètre de requête ?key= fonctionne aussi, conservé pour la compatibilité avec d'anciennes intégrations et pour des commandes curl ponctuelles. Si les deux sont présents, l'en-tête l'emporte.

?key=YOUR_API_KEY

Conseil : traitez votre clé comme un mot de passe : quiconque la possède peut mettre en ligne, lister, modifier et supprimer des fichiers sur votre compte. Chaque requête réussie est enregistrée et visible sous forme de graphique dans l'onglet API de votre page de compte, par jour et par type de requête. Si une clé doit se trouver à un endroit visible par d'autres personnes (extension de forum, fichier de configuration public), utilisez plutôt la clé réservée à la mise en ligne du même onglet : elle ne permet que de mettre en ligne ; lister, consulter, modifier et supprimer des fichiers la font rejeter avec une erreur 401.

Endpoints

La mise en ligne, la liste et la suppression partagent la même authentification et les mêmes limites de débit ; les gros fichiers peuvent d'abord être envoyés par morceaux.

POST /api - Mettre en ligne un fichier

Met en ligne un seul fichier pour le compte authentifié.

ChampTypeRequisDescription
uploadsfichierl'un de ces troisLe fichier à mettre en ligne, jusqu'à 100 Mo (limite d'une requête unique via notre réseau). Un fichier par requête : cet endpoint n'accepte pas la mise en ligne groupée de plusieurs fichiers.
urlchaîneUn lien http(s) public vers une image ou une vidéo. Nous le récupérons nous-mêmes, donc les fichiers jusqu'à 200 Mo fonctionnent.
upload_idchaîneUn fichier envoyé au préalable par morceaux à POST /api/chunk, jusqu'à 200 Mo.
filenamechaînenonAvec upload_id : le nom d'origine du fichier.
expires_inentiernonSupprime automatiquement ce fichier après ce nombre de secondes (de 60 à 31 536 000, soit de 1 minute à 1 an). À omettre pour une mise en ligne normale et permanente.
allow_duplicatebooléennonStocke une nouvelle copie même si votre compte a déjà mis en ligne exactement le même fichier (voir duplicate ci-dessous).
keep_originalbooléennonConserve l'image exactement telle qu'elle a été mise en ligne. Sans cette option, les fichiers JPG/PNG de plus de 1 Mo sont optimisés en WebP. Les métadonnées, comme le GPS, sont supprimées dans tous les cas.
visibilitychaînenonunlisted (par défaut) : le fichier et sa page fonctionnent pour toute personne disposant du lien, mais ils ne sont répertoriés nulle part. private : fichier seul ; le lien de la page renvoie tout le monde, sauf vous, directement vers le fichier (ni commentaires, ni réactions, ni publicités). public : répertorié sur le site et indexable.
titlechaînenonJusqu'à 90 caractères, affiché sur la page du fichier.
descriptionchaînenonJusqu'à 500 caractères.

Types acceptés : images JPG, PNG, GIF, WEBP, AVIF, BMP, TIFF, HEIC ou HEIF ; vidéo MP4, WEBM, AVI, MOV, MKV, MPEG, WMV, FLV ou 3GP (la liste exacte peut s'allonger avec le temps). Les fichiers HEIC/HEIF et TIFF sont stockés en WebP, les vidéos autres que MP4/WebM sont converties en MP4, et les images JPEG/PNG plus volumineuses sont converties en WebP peu après la mise en ligne lorsque cela les allège sensiblement. Taille maximale : 200 Mo ; les fichiers trop volumineux ou illisibles sont rejetés avec une erreur 422.

Réponse - 200 OK :

{
  "type": "success",
  "msg": "success",
  "data": {
    "id": "aB3xY9qRz1",
    "type": "image",
    "path": "https://i.yourimageshare.com/aB3xY9qRz1.png",
    "src": "https://yourimageshare.com/ib/aB3xY9qRz1.png",
    "direct": "https://yourimageshare.com/ib/aB3xY9qRz1",
    "thumb": "https://i.yourimageshare.com/thumb-aB3xY9qRz1.webp",
    "width": 1920,
    "height": 1080,
    "size": 482113,
    "locked": false,
    "visibility": "unlisted",
    "title": null,
    "description": null,
    "expires_at": null,
    "duplicate": false,
    "delete_url": "https://yourimageshare.com/delete#iV3x...k9"
  }
}
ChampDescription
idL'identifiant unique du fichier.
typeimage ou video.
pathL'URL de stockage du fichier tel que mis en ligne. Elle peut changer peu après lorsque le fichier est converti (WebP/MP4) : conservez src, pas path.
srcLien direct permanent vers le fichier : il ouvre toujours le fichier actuel, adapté à un attribut src de <img>/<video> et à l'enregistrement.
directLa page du fichier sur YourImageShare (titre, description, commentaires, options de partage).
thumbUne miniature WebP de 280 px de large (pour une vidéo, sa première image), ou null.
width, heightTaille d'affichage en pixels (à l'endroit ; pour une vidéo, la taille de l'image), ou null si inconnue.
sizeTaille du fichier en octets, telle que stockée.
lockedtrue si le fichier est protégé par un mot de passe.
visibilityprivate, unlisted ou public (voir le champ de requête ci-dessus).
title, descriptionTels que définis, ou null. Le texte passe par la même modération que le site.
delete_urlNouvelles mises en ligne uniquement : un lien privé qui supprime ce fichier sans clé API. Affiché une seule fois (seule une empreinte est stockée) : conservez-le si vous en avez besoin.
expires_atHorodatage ISO 8601 de la suppression automatique de ce fichier, ou null s'il n'expire pas.
duplicatetrue si votre compte avait déjà mis en ligne exactement le même fichier : cette mise en ligne est renvoyée et rien de nouveau n'est stocké. Non appliqué aux fichiers à expiration ni avec allow_duplicate=1.

Fichiers à expiration : une fois expires_at dépassé, le fichier est supprimé du stockage et sa page renvoie 410 Gone dans les 5 minutes environ. Cette action ne peut être ni annulée ni prolongée après coup : supprimez-le plus tôt avec l'endpoint DELETE si vous devez le retirer plus vite, ou mettez-le de nouveau en ligne avec un nouveau expires_in s'il doit durer plus longtemps.

POST /api/chunk - Gros fichiers

Une seule requête peut contenir au maximum 100 Mo. Pour les fichiers plus gros (jusqu'à 200 Mo), ou pour garder chaque requête légère sur une connexion lente, envoyez le fichier par morceaux de 5 Mo maximum, puis terminez avec POST /api :

  1. Choisissez un identifiant de mise en ligne : 32 caractères hexadécimaux aléatoires.
  2. Pour chaque morceau, faites un POST /api/chunk (multipart/form-data) avec upload_id, index (à partir de 0), total (nombre de morceaux) et les octets dans chunk. La réponse est {"type": "success", "chunk_size": 5242880}.
  3. Faites un POST /api avec upload_id et filename à la place de uploads, plus tout autre champ de mise en ligne. La réponse est la réponse de mise en ligne habituelle.

Les morceaux d'une mise en ligne non terminée sont supprimés au bout de 2 heures. Seul le POST /api final compte dans les limites de mise en ligne.

GET /api/{id} et PATCH /api/{id} - Un fichier

GET renvoie l'un de vos fichiers avec les mêmes champs que la liste ci-dessous. PATCH modifie sa visibility, son title ou sa description (champs de formulaire ou JSON ; un titre ou une description vide l'efface) et répond avec le fichier mis à jour. Les deux requièrent la clé API complète ; 404 si ce fichier n'existe pas sur votre compte.

curl -X PATCH https://yourimageshare.com/api/aB3xY9qRz1 \
  -H "X-API-Key: YOUR_API_KEY" -d visibility=public -d title="Sunset"

POST /api/{id}/replace - Remplacer le fichier

Remplace le fichier associé à l'une de vos mises en ligne en conservant son identifiant, sa page et tous ses liens. Tout type autorisé fonctionne, même différent (une image peut devenir une vidéo). Envoyez le nouveau fichier dans uploads (ou upload_id d'un fichier envoyé par morceaux avec POST /api/chunk) ; keep_original fonctionne comme pour la mise en ligne. Le nouveau fichier subit les mêmes contrôles et conversions qu'une nouvelle mise en ligne, et la version précédente est supprimée. Requiert la clé API complète ; 404 si ce fichier n'existe pas sur votre compte, 409 s'il est protégé par mot de passe ou limité en nombre de vues.

curl -X POST https://yourimageshare.com/api/aB3xY9qRz1/replace \
  -H "X-API-Key: YOUR_API_KEY" -F uploads=@new-version.png

GET /api - Lister vos fichiers

Renvoie une liste paginée des fichiers du compte authentifié (de toute origine : API, site web ou éditeur), du plus récent au plus ancien, 50 par page.

ParamètreOùRequisDescription
pagerequêtenonNuméro de page, 1 par défaut.

Réponse - 200 OK :

{
  "type": "success",
  "data": [
    {
      "id": "aB3xY9qRz1",
      "type": "image",
      "title": null,
      "path": "https://i.yourimageshare.com/aB3xY9qRz1.webp",
      "src": "https://yourimageshare.com/ib/aB3xY9qRz1.webp",
      "direct": "https://yourimageshare.com/ib/aB3xY9qRz1",
      "thumb": "https://i.yourimageshare.com/thumb-aB3xY9qRz1.webp",
      "width": 1920,
      "height": 1080,
      "size": 482113,
      "locked": false,
      "visibility": "unlisted",
      "description": null,
      "expires_at": null,
      "created_at": "2026-07-23T15:43:28+01:00"
    }
  ],
  "meta": { "current_page": 1, "last_page": 1, "total": 1 }
}

Les champs ont ici le même sens que dans la réponse de mise en ligne ci-dessus (pour un fichier protégé par mot de passe, path et thumb sont des liens signés de courte durée). Pour consulter un fichier par son id, utilisez GET /api/{id}.

DELETE /api/{id} - Supprimer un fichier

Supprime définitivement l'un des fichiers du compte authentifié. Cette action ne peut pas être annulée depuis l'API. {id} est la valeur renvoyée sous id par les endpoints de mise en ligne ou de liste.

Réponse - 200 OK :

{ "type": "success", "msg": "Deleted." }

404 si aucun fichier portant cet identifiant n'existe sur votre compte (soit il ne vous a jamais appartenu, soit il a déjà été supprimé).

POST /api/compare - Curseur avant/après

Crée une comparaison avant/après de deux de vos propres images : une page avec un curseur à /c/{id}, qui peut aussi être intégrée à n'importe quel site web. La clé réservée à la mise en ligne fonctionne aussi. Envoyez before et after (identifiants de fichiers, requis) et, en option, title, label_before et label_after (par défaut « Before » et « After »).

Réponse - 201 Created :

{
  "type": "success",
  "id": "P7uAYy04VA",
  "url": "https://yourimageshare.com/c/P7uAYy04VA",
  "embed_url": "https://yourimageshare.com/embed/c/P7uAYy04VA",
  "embed": { "script": "<blockquote class=\"YISEmbed\" ...", "iframe": "<iframe ..." }
}

422 si l'un des identifiants ne correspond pas à l'une de vos images (les vidéos et les images protégées par mot de passe ne peuvent pas être utilisées).

Limites de débit

Chaque clé API dispose de quotas indépendants par minute et par jour, ainsi que d'un plafond quotidien par IP, plus large, qui sert de garde-fou contre une même IP utilisant plusieurs clés tour à tour. Les mises en ligne, les listes et les suppressions partagent les mêmes limites.

FenêtreLimite par défautPortée
Par minute20 requêtespar clé API
Par jour500 requêtespar clé API complète
Par jour2 000 requêtespar clé réservée à la mise en ligne (extensions qui déportent des médiathèques entières)
Par jour2 000 requêtespar adresse IP
Par minute300 morceauxpar clé API, POST /api/chunk uniquement

Ces limites peuvent évoluer. Chaque réponse inclut les en-têtes standard de limite de débit :

X-RateLimit-Limit: 20
X-RateLimit-Remaining: 14

Une erreur 429 est renvoyée dès qu'une limite est dépassée, avec un en-tête Retry-After qui indique combien de secondes attendre.

Erreurs

Toutes les réponses d'erreur ont la même forme, quels que soient l'endpoint ou la cause :

{ "type": "error", "errors": "A human-readable description of what went wrong." }
StatutSignification
401Clé API manquante ou invalide.
403Le compte ou votre IP actuelle est banni de la mise en ligne.
404Aucun fichier correspondant à cet identifiant sur ce compte (consultation, modification, suppression).
413La requête dépasse 100 Mo. Envoyez le fichier par morceaux (POST /api/chunk) ou un lien vers celui-ci dans url (jusqu'à 200 Mo).
422Échec de validation : aucun fichier ni lien fourni, type de fichier non pris en charge, données d'image illisibles, dimensions supérieures à la limite de 30000x30000 px, fichier de plus de 200 Mo, upload_id inachevé ou expiré, ou url impossible à récupérer (le message en donne la raison).
429Limite de débit dépassée : voir Limites de débit ci-dessus.
500Une erreur inattendue s'est produite côté serveur. Vous pouvez réessayer sans risque.

Bibliothèques clientes

Des SDK officiels qui encapsulent les endpoints ci-dessus avec des résultats typés et lèvent des exceptions sur les erreurs de l'API au lieu de laisser gérer le HTTP brut.

JavaScript / TypeScript

Aucune dépendance, fonctionne dans Node.js et dans les navigateurs. Également sur JSR sous le nom @yourimageshare/yourimageshare - npx jsr add @yourimageshare/yourimageshare - même source, publiée directement en TypeScript.

npm install yourimageshare

Python

Une dépendance (requests), Python 3.8+.

pip install yourimageshare

PHP

Aucune dépendance Composer (utilise l'extension curl de PHP), PHP 7.4+. Code source sur GitHub.

composer require yourimageshare/yourimageshare-php

Go

Aucune dépendance (bibliothèque standard uniquement), Go 1.18+. Consultez pkg.go.dev pour la documentation de référence complète.

go get github.com/yourimageshare/yourimageshare/go

Rust

Deux dépendances (ureq pour du HTTP bloquant, sans runtime asynchrone, et serde), Rust 1.70+. Code source sur GitHub.

cargo add yourimageshare

Ruby

Aucune dépendance de gem (Net::HTTP + json de la bibliothèque standard), Ruby 2.7+. Code source sur GitHub.

gem install yourimageshare

.NET

Une dépendance (le System.Text.Json de Microsoft), cible netstandard2.0 et fonctionne donc avec .NET Framework comme avec le .NET moderne. Code source sur GitHub. Développé et vérifié avec cette API en production ; publication sur NuGet prochainement.

dotnet add package YourImageShare

Dart / Flutter

Une dépendance (http, le paquet de l'équipe Dart), Dart 2.17+. Code source sur GitHub. Développé et vérifié avec cette API en production ; publication sur pub.dev prochainement.

dart pub add yourimageshare

Elixir

Une dépendance (Req), Elixir 1.14+. Renvoie des tuples {:ok, result}| {:error, reason}, l'équivalent direct de la gestion d'erreurs de cette API dans tous les autres SDK, ainsi que des variantes avec point d'exclamation qui lèvent des exceptions. Code source sur GitHub, documentation sur HexDocs.

{:yourimageshare, "~> 1.1"}

Serveur MCP

Pour les agents de programmation IA (Claude Code, Cursor et autres outils compatibles MCP) : collez une capture d'écran dans un rapport de bug, une description de PR ou un fil de support sous forme de vrai lien plutôt qu'un blob base64 ou une étape de mise en ligne manuelle. Fonctionne de la même façon avec Claude Desktop et tout autre client MCP.

Hébergé, rien à installer : ajoutez-le comme serveur MCP distant (dans Claude : Settings › Connectors › Add custom connector ; aussi ChatGPT, Cursor, VS Code et les autres clients qui acceptent une URL de serveur) avec votre clé API dans l'URL :

https://yourimageshare.com/mcp?key=YOUR_API_KEY

Les clients qui permettent de définir des en-têtes peuvent utiliser https://yourimageshare.com/mcp avec Authorization: Bearer YOUR_API_KEY à la place. L'URL contenant votre clé fonctionne comme un mot de passe : gardez-la privée et obtenez une nouvelle clé dans Mon compte si elle fuite. Sur le serveur hébergé, upload_image accepte un lien public (jusqu'à 200 Mo) ou du contenu base64 en ligne (jusqu'à 15 Mo). Sans clé, https://yourimageshare.com/mcp permet quand même de mettre en ligne anonymement, comme le site : non répertorié ou privé uniquement, limites plus basses, et le fichier est supprimé avec le delete_url renvoyé. Les autres outils nécessitent une clé.

En local : lancez-le directement avec npx, sans étape d'installation (il peut aussi lire des fichiers sur votre disque) :

npx yourimageshare-mcp

Outils : upload_image (un fichier local, du contenu en ligne ou un lien, jusqu'à 200 Mo, avec visibilité, titre et suppression automatique en option), list_uploads, get_upload, update_upload et delete_upload.

Également dans le registre MCP officiel (sous le nom io.github.yourimageshare/yourimageshare) et référencé sur Smithery et Glama, si votre client MCP s'installe depuis l'un d'eux.

Nouveau avec MCP ? Consultez comment connecter Claude et ChatGPT à cette API via MCP pour un guide d'installation complet.

Les dix sont sous licence MIT. Pas de bibliothèque officielle pour votre langage ? Les exemples de code ci-dessous montrent comment appeler l'API directement.

Exemples de code

curl

# Upload a file
curl "https://yourimageshare.com/api" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "uploads=@/path/to/photo.jpg"

# Upload from a link (files up to 200MB; one direct upload request stops at 100MB -
# bigger files go in pieces, see Large Files above)
curl "https://yourimageshare.com/api" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "url=https://example.com/video.mp4"

# Upload a file that auto-deletes after 1 hour
curl "https://yourimageshare.com/api" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "uploads=@/path/to/photo.jpg" \
  -F "expires_in=3600"

# List uploads
curl "https://yourimageshare.com/api" -H "X-API-Key: YOUR_API_KEY"

# Upload a file without a page of its own (file only) and give it a title
curl "https://yourimageshare.com/api" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "uploads=@/path/to/photo.jpg" \
  -F "visibility=private" \
  -F "title=Sunset"

# Look up one upload, then make it public
curl "https://yourimageshare.com/api/aB3xY9qRz1" -H "X-API-Key: YOUR_API_KEY"
curl -X PATCH "https://yourimageshare.com/api/aB3xY9qRz1" \
  -H "X-API-Key: YOUR_API_KEY" -d "visibility=public"

# Delete an upload
curl -X DELETE "https://yourimageshare.com/api/aB3xY9qRz1" -H "X-API-Key: YOUR_API_KEY"

JavaScript (fetch)

const API_KEY = 'YOUR_API_KEY';
const BASE = 'https://yourimageshare.com/api';

async function uploadFile(file) {
  const form = new FormData();
  form.append('uploads', file);

  const res = await fetch(BASE, {
    method: 'POST',
    headers: { 'X-API-Key': API_KEY },
    body: form,
  });
  const json = await res.json();
  if (json.type !== 'success') throw new Error(json.errors);
  return json.data;
}

async function listUploads(page = 1) {
  const res = await fetch(`${BASE}?page=${page}`, {
    headers: { 'X-API-Key': API_KEY },
  });
  return res.json();
}

async function deleteUpload(id) {
  const res = await fetch(`${BASE}/${id}`, {
    method: 'DELETE',
    headers: { 'X-API-Key': API_KEY },
  });
  return res.json();
}

Python (requests)

import requests

API_KEY = "YOUR_API_KEY"
BASE = "https://yourimageshare.com/api"

HEADERS = {"X-API-Key": API_KEY}

# Upload a file
with open("/path/to/photo.jpg", "rb") as f:
    res = requests.post(BASE, headers=HEADERS, files={"uploads": f})
res.raise_for_status()
upload = res.json()["data"]

# List uploads
res = requests.get(BASE, headers=HEADERS, params={"page": 1})
uploads = res.json()

# Delete an upload
res = requests.delete(f"{BASE}/{upload['id']}", headers=HEADERS)

PHP (curl)

<?php

$apiKey = 'YOUR_API_KEY';
$base = 'https://yourimageshare.com/api';

// Upload a file
$curl = curl_init($base);
curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ["X-API-Key: $apiKey"],
    CURLOPT_POSTFIELDS => ['uploads' => new CURLFile('/path/to/photo.jpg')],
    CURLOPT_RETURNTRANSFER => true,
]);
$upload = json_decode(curl_exec($curl), true)['data'];
curl_close($curl);

// List uploads
$curl = curl_init("$base?page=1");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-API-Key: $apiKey"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$uploads = json_decode(curl_exec($curl), true);
curl_close($curl);

Go (net/http)

Le SDK Go officiel ci-dessus encapsule tout cela pour vous ; cette version brute est destinée à celles et ceux qui préfèrent ne pas ajouter la dépendance.

package main

import (
    "bytes"
    "encoding/json"
    "io"
    "mime/multipart"
    "net/http"
    "os"
)

const apiKey = "YOUR_API_KEY"
const base = "https://yourimageshare.com/api"

func uploadFile(path string) (map[string]any, error) {
    file, err := os.Open(path)
    if err != nil {
        return nil, err
    }
    defer file.Close()

    body := &bytes.Buffer{}
    writer := multipart.NewWriter(body)
    part, _ := writer.CreateFormFile("uploads", path)
    io.Copy(part, file)
    writer.Close()

    req, _ := http.NewRequest("POST", base, body)
    req.Header.Set("Content-Type", writer.FormDataContentType())
    req.Header.Set("X-API-Key", apiKey)

    res, err := http.DefaultClient.Do(req)
    if err != nil {
        return nil, err
    }
    defer res.Body.Close()

    var result map[string]any
    json.NewDecoder(res.Body).Decode(&result)
    return result, nil
}

Outils de capture d'écran

Une extension de navigateur, ainsi que des configurations et scripts prêts à l'emploi pour envoyer vos captures d'écran directement sur YourImageShare, sans mise en ligne manuelle. Chacun passe par le même endpoint /api documenté ci-dessus.

Extension de navigateur (Chrome & Firefox)

L'extension YourImageShare Capture pour Chrome et Firefox se passe totalement de scripts et de fichiers de configuration. Elle capture la zone visible, une région sélectionnée à la souris ou une page entière avec défilement, ouvre un éditeur intégré pour ajouter des flèches, du texte, du flou/masquage et d'autres annotations, puis télécharge le résultat, le copie dans votre presse-papiers ou le publie directement sur YourImageShare en un clic. La publication utilise le même endpoint /api documenté ci-dessus : ajoutez votre clé API une seule fois dans les réglages de l'extension et chaque publication renvoie ensuite immédiatement un lien de partage. Fonctionne sur Chrome pour ordinateur (et les autres navigateurs Chromium), Firefox pour ordinateur et Firefox pour Android.

Obtenir YourImageShare Capture pour Firefox Obtenir YourImageShare Capture pour Chrome

ShareX

Téléchargez le fichier de configuration d'envoi personnalisé ci-dessous, puis dans ShareX allez dans Destinations > Custom uploader settings > Import > from file, ouvrez le fichier .sxcu téléchargé et remplacez YOUR_API_KEY dans le champ Headers par votre vraie clé. Définissez-le comme destination des images/fichiers et vos captures seront mises en ligne automatiquement.

Télécharger YourImageShare.sxcu

Suppression : le lien « Delete » de ShareX pour chaque fichier ouvre notre page de suppression dans votre navigateur (le delete_url à usage unique du fichier), ce qui vous permet de supprimer une capture directement depuis l'historique de ShareX. Vous pouvez aussi supprimer vos fichiers depuis Mon compte. Vous avez téléchargé la configuration avant octobre 2026 ? Téléchargez-la de nouveau pour en profiter.

Flameshot (Linux)

Un petit script shell qui lance flameshot gui, met en ligne la capture et copie le lien dans votre presse-papiers. Associez-le à un raccourci clavier dans votre environnement de bureau à la place de celui par défaut de Flameshot.

Télécharger yis-flameshot-upload.sh

# One-time setup
chmod +x yis-flameshot-upload.sh
export YIS_API_KEY="YOUR_API_KEY"   # or add to ~/.config/yourimageshare/api_key

# Then bind this to a hotkey instead of calling flameshot directly:
/path/to/yis-flameshot-upload.sh

Greenshot (Windows)

Un script PowerShell pour la destination intégrée External command de Greenshot. Compatible avec le Windows PowerShell 5.1 fourni avec Windows, aucune installation supplémentaire n'est nécessaire.

Télécharger yis-greenshot-upload.ps1

# One-time setup
setx YIS_API_KEY "YOUR_API_KEY"

# In Greenshot: Preferences > Destinations > External command > Settings
#   Command:   powershell.exe
#   Arguments: -ExecutionPolicy Bypass -File "C:\path\to\yis-greenshot-upload.ps1" "%1"

Extensions pour forums

Ajoutez un vrai bouton « Mettre en ligne une image » à côté de l'éditeur de messages de votre forum. Chacune passe par le même endpoint /api documenté ci-dessus et insère du BBCode à l'emplacement du curseur : pas d'onglet séparé, pas de copier-coller manuel.

Utilisez votre clé réservée à la mise en ligne, pas votre clé API, ci-dessous. Chaque extension affiche la clé dans le code source de la page de chaque visiteur, et la clé réservée à la mise en ligne (Mon compte > onglet API) ne peut que mettre en ligne : elle ne permet ni de lister ni de supprimer vos fichiers, même si quelqu'un la copie depuis la page.

Les fichiers mis en ligne depuis un forum sont privés par défaut : l'image s'affiche dans le message, mais YourImageShare ne lui crée pas de page propre (ni commentaires, ni réactions, ni publicités). Chaque extension a un réglage pour passer en unlisted si vous souhaitez aussi une page pour toute personne disposant du lien.

phpBB

Une vraie extension phpBB 3.2/3.3. Décompressez-la dans ext/, activez-la sous Customise > Manage extensions, puis remplacez YOUR_UPLOAD_ONLY_KEY dans le fichier d'événement de modèle de l'extension par votre vraie clé réservée à la mise en ligne.

Télécharger pour phpBB

SMF (Simple Machines Forum)

Un vrai paquet SMF : installez-le via Admin > Package Manager, puis remplacez YOUR_UPLOAD_ONLY_KEY dans Sources/yis_forumupload.php par votre vraie clé réservée à la mise en ligne.

Télécharger pour SMF

MyBB

Une vraie extension MyBB 1.8. Copiez-la dans inc/plugins/, activez-la sous Configuration > Plugins, puis remplacez YOUR_UPLOAD_ONLY_KEY dans le fichier de l'extension par votre vraie clé réservée à la mise en ligne.

Télécharger pour MyBB

FluxBB, PunBB & ZetaBoards

Ces forums n'ont pas de système d'extensions formel : il s'agit donc d'un petit extrait de code à coller directement dans votre modèle (FluxBB/PunBB) ou dans le panneau d'administration (ZetaBoards). Instructions complètes à copier-coller pour chacun :

Instructions FluxBB Instructions PunBB Instructions ZetaBoards

Extension WordPress

Déportez votre médiathèque vers YourImageShare au lieu du disque local. Les nouvelles images/vidéos passent automatiquement par le même endpoint /api documenté ci-dessus, le fichier local (et chaque taille de miniature générée) est supprimé une fois la mise en ligne confirmée, et chaque URL de fichier joint WordPress (éditeur de blocs, images mises en avant, galeries, API REST) pointe vers le fichier hébergé sur YourImageShare. Pas de shortcode, aucun changement de méthode de travail.

  • Déportez en masse une médiathèque existante en arrière-plan (ou avec wp yis offload --all), pas seulement les nouveaux fichiers
  • Les images et vidéos déjà insérées dans des articles continuent de fonctionner après la suppression de leurs fichiers locaux
  • Les miniatures et le srcset utilisent notre miniature de 280 px, afin que les petits emplacements ne chargent pas de fichiers en pleine taille
  • Fichiers jusqu'à 200 Mo, envoyés par morceaux pour que les grosses vidéos ne mettent jamais un hébergement mutualisé en difficulté
  • Rapatriez à tout moment n'importe quel fichier déporté vers le stockage local
  • Une colonne de la médiathèque indique ce qui est déporté et ce qui est encore local
  • Les fichiers déportés sont stockés en privé : ils s'affichent partout où votre site les utilise, mais n'ont pas de page propre sur YourImageShare

Utilise votre clé réservée à la mise en ligne, pas votre clé API. La clé API complète, facultative, n'est nécessaire que si vous voulez que les fichiers déportés soient supprimés de YourImageShare lorsque vous les supprimez dans WordPress.

L'obtenir sur WordPress.org Télécharger le ZIP

Dans WordPress : Plugins > Add New, recherchez YourImageShare Media Offload, puis cliquez sur Install et Activate.

Bouton de mise en ligne pour tout site

Offrez à vos visiteurs un bouton « Mettre en ligne » sur n'importe quel site : formulaire de commentaire, page de support, forum pour lequel nous n'avons pas d'extension, site statique. Collez deux lignes ; sans inscription et sans code serveur.

<a class="yis-upload" href="https://yourimageshare.com/" data-target="#message" data-format="bbcode">Image and video hosting by YourImageShare</a>
<script src="https://yourimageshare.com/w.js" async></script>

Les deux attributs sont facultatifs : sans eux, le bouton affiche les liens avec un bouton Copier. La zone de mise en ligne est construite autour du lien.

  • La mise en ligne se fait directement sur votre page : cliquez sur le bouton, déposez des fichiers dessus ou collez-y une capture d'écran, avec plusieurs fichiers à la fois, une barre de progression et une miniature
  • Les images collées ou déposées directement dans le champ indiqué par data-target (n'importe quel textarea, input ou zone modifiable) sont aussi mises en ligne, et les liens sont ajoutés à ce champ ; sans cible, ils apparaissent sous le bouton avec un bouton Copier
  • data-format : url (lien direct vers le fichier, par défaut), page, bbcode, html ou markdown ; data-label change le texte du bouton
  • data-key (facultatif) : votre clé réservée à la mise en ligne (Mon compte > API). Les fichiers arrivent alors dans votre compte, avec vos propres limites. Sans clé, les mises en ligne sont anonymes et non répertoriées, avec une limite quotidienne par visiteur et par site
  • Les développeurs peuvent écouter l'événement yis:upload sur la zone de mise en ligne : event.detail.item contient {id, type, page, url, thumb}
  • Fichiers jusqu'à 95 Mo via le bouton (les plus gros sur le site web). Notre modération et nos conditions s'appliquent comme d'habitude ; chaque visiteur reçoit son propre lien de suppression

Le bouton est affiché dans sa propre zone isolée, afin que le CSS de votre site ne puisse pas le casser. Le petit lien « Image and video hosting by YourImageShare » reste visible dans la zone de mise en ligne.

Raccourci iPhone & iPad

Mettez en ligne depuis la feuille de partage de n'importe quelle app (Photos, Fichiers, Safari, une capture d'écran) et récupérez le lien dans votre presse-papiers. Aucune app à installer et aucun compte nécessaire.

Pour le créer vous-même dans l'app Raccourcis (environ deux minutes) :

  1. Nouveau raccourci, nommez-le « Upload to YourImageShare ». Dans ses détails, activez Show in Share Sheet et acceptez les images et les médias.
  2. Ajoutez Get Contents of URL : URL https://yourimageshare.com/api/widget, méthode POST, corps de requête Form avec deux champs : uploads (File) = Shortcut Input, et client (Text) = ios-shortcut.
  3. Ajoutez Get Dictionary Value pour data, puis un autre pour src : c'est le lien direct.
  4. Ajoutez Copy to Clipboard et Show Notification (« Link copied »).

Sans clé, les mises en ligne sont anonymes et non répertoriées, avec une limite quotidienne. Ajoutez un en-tête X-API-Key avec votre clé réservée à la mise en ligne (Mon compte > API) pour mettre en ligne dans votre compte. La réponse contient aussi delete_url si vous voulez conserver un lien de suppression.

PicGo & PicList

PicGo et PicList mettent en ligne les images collées ou glissées dans les éditeurs Markdown (Typora, VS Code, Obsidian, Joplin) et placent le lien dans votre texte. Notre extension fait de YourImageShare l'un de leurs hébergeurs d'images.

  • Dans PicGo ou PicList : Plugins, recherchez yourimageshare, installez-le, puis choisissez YourImageShare comme service de mise en ligne. En ligne de commande : picgo install yourimageshare
  • Ou téléchargez l'extension et importez-la comme extension locale (décompressez-la d'abord)
  • Réglages : clé réservée à la mise en ligne (facultative : vide = mises en ligne anonymes et non répertoriées), visibilité, et choix de renvoyer le lien direct vers l'image (pour Markdown) ou le lien de la page
  • Le lien renvoyé continue de fonctionner lorsque les grandes images sont ensuite optimisées en WebP

Télécharger l'extension PicGo

Bot Telegram

Obtenez un lien pour une photo, une vidéo ou un GIF sans quitter Telegram. Envoyez-la à @YourImageShare_bot et le lien vous revient aussitôt, sans inscription ni clé API. Le bot met en ligne via le même endpoint /api documenté ci-dessus.

  • Envoyez une photo, une vidéo, un GIF ou un fichier image ou vidéo ; un album de 10 éléments maximum revient dans une seule réponse
  • Dans un groupe, répondez /link à une photo ou une vidéo et le bot publie son lien pour tout le monde
  • /autodelete fait en sorte que vos prochains fichiers se suppriment seuls après 1 heure, 1 jour, 1 semaine ou 30 jours
  • Chaque résultat a un bouton Supprimer qui ne fonctionne que pour la personne qui a mis le fichier en ligne
  • Les liens sont non répertoriés : seules les personnes qui ont le lien peuvent voir le fichier
  • Le bot répond dans la langue de votre Telegram lorsque le site est disponible dans cette langue

Conservez la qualité d'origine : Telegram compresse les photos envoyées de la façon habituelle. Envoyez-les comme fichier (📎 → Fichier) et l'original est mis en ligne. Telegram permet aux bots de récupérer des fichiers jusqu'à 20 Mo ; mettez donc les fichiers plus gros en ligne depuis le site web.

Ouvrir @YourImageShare_bot dans Telegram

Bot Discord

Transformez n'importe quelle image, GIF ou vidéo de Discord en lien permanent. Les liens de pièces jointes de Discord cessent de fonctionner au bout d'un moment ; ceux de YourImageShare, non. Sans inscription et sans clé API. Le bot met en ligne via le même endpoint /api documenté ci-dessus.

  • /upload avec un fichier : suppression automatique facultative après 1, 7 ou 30 jours, et only_me pour que seul vous voyiez le lien
  • Clic droit sur un message → Apps → Rehost on YourImageShare pour remettre en ligne jusqu'à 6 images ou vidéos du message en une seule réponse
  • Ajoutez-le à un serveur, ou à votre propre compte pour l'utiliser dans n'importe quelle discussion ou message privé
  • Chaque résultat a un bouton Supprimer qui ne fonctionne que pour la personne qui a mis le fichier en ligne
  • Les liens sont non répertoriés : seules les personnes qui ont le lien peuvent voir le fichier

Ajouter YourImageShare à Discord

GitHub Action pour Playwright & Cypress

Quand des tests de bout en bout échouent dans une pull request, comprenez pourquoi sans télécharger d'archives d'artefacts. L'action met en ligne les captures d'écran d'échec et les différences visuelles, puis les affiche sous forme d'images dans un seul commentaire de pull request, mis à jour à chaque exécution.

  • Fonctionne avec Playwright et Cypress, et détecte seule celui que le projet utilise
  • Les comparaisons visuelles échouées apparaissent en Expected, Actual et Diff, avec un lien vers un curseur avant/après (toHaveScreenshot de Playwright ; pour Cypress, les extensions cypress-image-diff-js et cypress-visual-regression)
  • Le commentaire passe à « all tests passed » une fois les tests corrigés ; le même rapport est envoyé dans le résumé du job
  • Les captures sont privées (fichiers image uniquement, sans page) et supprimées au bout de 30 jours par défaut
  • Nécessite votre clé réservée à la mise en ligne comme secret de dépôt YOURIMAGESHARE_API_KEY ; elle ne fait jamais échouer votre build
- uses: yourimageshare/playwright-pr-screenshots@v1
  if: always()
  with:
    api-key: ${{ secrets.YOURIMAGESHARE_API_KEY }}

Guide d'installation sur GitHub

Projets de la communauté

Certaines des meilleures intégrations de YourImageShare sont créées par celles et ceux qui l'utilisent. Ces projets ont été réalisés par des membres de la communauté avec l'API publique documentée ci-dessus. Ils sont maintenus par leurs auteurs : pour toute question ou tout rapport de bug, contactez l'auteur via la page du projet.

  • YourImageShare Uploads for FlatBB - une extension pour le forum FlatBB par madromas (MadWay Inc.).
    • Ajoute un bouton de mise en ligne à l'éditeur de messages FlatBB : choisissez une ou plusieurs images ou vidéos et le Markdown est inséré à l'emplacement du curseur
    • Insère chaque fichier sous forme de miniature cliquable, d'image en pleine taille ou de simple lien (les vidéos en lien)
    • Les mises en ligne passent par le serveur de votre forum avec une clé API réservée à la mise en ligne, si bien que la clé n'atteint jamais le navigateur des visiteurs
    • Les fichiers sont hébergés sur YourImageShare, et non sur le disque de votre forum, avec une visibilité par défaut de votre choix (privé, non répertorié ou public)
    • Fonctionne en parallèle du système de mise en ligne propre à FlatBB, avec une limite de taille de fichier distincte

    Code source sur GitHub · Page FlatBB Marketplace

Merci

Un grand merci à toutes celles et ceux qui développent avec YourImageShare et partagent leur travail avec les autres. Les projets de la communauté amènent YourImageShare là où nous ne serions jamais arrivés seuls. Vous avez créé quelque chose avec l'API ? Parlez-nous-en et nous serons ravis de l'ajouter ici.

Sur le blog

Prêt à l'essayer ?

Obtenir votre clé API →