Documentación de la API
La API de YourImageShare te permite subir, listar y eliminar archivos por programación. Es una API JSON/REST pequeña: no necesitas ningún SDK, solo un cliente HTTP y una clave de API. También hay bibliotecas oficiales de JavaScript, Python y MCP.
Todas las bibliotecas cliente y las herramientas de abajo son de código abierto. Explora el código, reporta problemas o colabora en nuestro repositorio oficial de GitHub: github.com/yourimageshare/yourimageshare.
URL base: https://yourimageshare.com/api · Formato: JSON de entrada y salida, excepto las subidas, que usan multipart/form-data · Autenticación: una clave de API en cada solicitud. · Especificación legible por máquinas: /openapi.json (OpenAPI 3.1), para agentes y herramientas de generación de código que prefieran no analizar esta página.
Cómo obtener una clave de API
Inicia sesión, ve a Mi cuenta y abre la pestaña API. Ahí verás tu clave, junto con un botón Regenerar. Al regenerar una clave, la anterior deja de funcionar de inmediato, así que actualízala en todos los sitios donde la uses antes de pulsarlo.
Esa pestaña también tiene una segunda clave solo para subir, independiente; consulta el consejo de abajo y Plugins para foros para saber cuándo usarla.
Autenticación
Envía tu clave como encabezado (es lo recomendable, porque las cadenas de consulta suelen acabar en los registros de acceso, los registros de proxy y los encabezados Referer):
X-API-Key: YOUR_API_KEY También funciona el parámetro de consulta ?key=, que se mantiene por compatibilidad con integraciones antiguas y comandos curl rápidos. Si están los dos, gana el encabezado.
?key=YOUR_API_KEY Consejo: trata tu clave como una contraseña: quien la tenga puede subir, listar, modificar y eliminar en tu cuenta. Cada solicitud correcta se registra y aparece en un gráfico en la pestaña API de tu cuenta, desglosada por día y por tipo de solicitud. Si una clave tiene que estar en un lugar que otras personas puedan ver (un plugin de foro, un archivo de configuración público), usa la clave solo para subir de la misma pestaña: solo puede subir, y listar, consultar, modificar y eliminar subidas la rechazan con un 401.
Endpoints
Subir, listar y eliminar comparten la misma autenticación y los mismos límites de uso; los archivos grandes se pueden enviar primero en partes.
POST /api - Subir un archivo
Sube un único archivo para la cuenta autenticada.
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
uploads | archivo | uno de estos tres | El archivo que quieres subir, de hasta 100MB (el límite de una sola solicitud a través de nuestra red). Un archivo por solicitud: este endpoint no admite subidas múltiples. |
url | cadena | Un enlace http(s) público a una imagen o un video. Lo descargamos nosotros, así que funcionan archivos de hasta 200MB. | |
upload_id | cadena | Un archivo enviado antes en partes a POST /api/chunk, de hasta 200MB. | |
filename | cadena | no | Con upload_id: el nombre original del archivo. |
expires_in | entero | no | Elimina automáticamente esta subida pasados estos segundos (de 60 a 31.536.000, es decir, de 1 minuto a 1 año). Omítelo para una subida normal y permanente. |
allow_duplicate | booleano | no | Guarda una copia nueva aunque tu cuenta ya haya subido exactamente el mismo archivo (consulta duplicate más abajo). |
keep_original | booleano | no | Conserva la imagen exactamente como se subió. Sin esto, los archivos JPG/PNG de más de 1 MB se optimizan a WebP. Los metadatos, como el GPS, se eliminan en ambos casos. |
visibility | cadena | no | unlisted (por defecto): el archivo y su página funcionan para cualquiera que tenga el enlace, pero no aparece listado en ningún sitio. private: solo el archivo; el enlace de la página lleva a todos menos a ti directamente al archivo (sin comentarios, reacciones ni anuncios). public: aparece listado en el sitio y es indexable. |
title | cadena | no | Hasta 90 caracteres, se muestra en la página de la subida. |
description | cadena | no | Hasta 500 caracteres. |
Tipos aceptados: imágenes JPG, PNG, GIF, WEBP, AVIF, BMP, TIFF, HEIC o HEIF; video MP4, WEBM, AVI, MOV, MKV, MPEG, WMV, FLV o 3GP (la lista exacta puede ampliarse con el tiempo). HEIC/HEIF y TIFF se guardan como WebP, los videos que no sean MP4/WebM se convierten a MP4, y las imágenes JPEG/PNG más grandes se convierten a WebP poco después de subirlas cuando así pesan claramente menos. Tamaño máximo: 200MB; los archivos demasiado grandes o ilegibles se rechazan con un 422.
Respuesta - 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"
}
} | Campo | Descripción |
|---|---|
id | El identificador único del archivo. |
type | image o video. |
path | La URL de almacenamiento del archivo tal como se subió. Puede cambiar poco después, cuando el archivo se convierte (WebP/MP4), así que guarda src, no path. |
src | URL directa y permanente del archivo: siempre abre el archivo actual, y sirve para el src de un <img>/<video> y para guardar. |
direct | La página del archivo en YourImageShare (título, descripción, comentarios, opciones para compartir). |
thumb | Una miniatura WebP de 280px de ancho (en un video, su primer fotograma), o null. |
width, height | Tamaño de visualización en píxeles (en vertical; en un video, el tamaño del fotograma), o null si se desconoce. |
size | Tamaño del archivo en bytes tal como está almacenado. |
locked | true si la subida está protegida con contraseña. |
visibility | private, unlisted o public (consulta el campo de la solicitud más arriba). |
title, description | Tal como se indicaron, o null. El texto pasa por la misma moderación que el sitio web. |
delete_url | Solo en subidas nuevas: un enlace privado que elimina esta subida sin clave de API. Se muestra una sola vez (solo se guarda un hash); consérvalo si lo necesitas. |
expires_at | Marca de tiempo ISO 8601 en la que esta subida se eliminará automáticamente, o null si no caduca. |
duplicate | true si tu cuenta ya había subido exactamente el mismo archivo: se devuelve esa subida y no se guarda nada nuevo. No se aplica a subidas con caducidad ni con allow_duplicate=1. |
Subidas con caducidad: cuando pasa expires_at, el archivo se elimina del almacenamiento y la página de la subida empieza a devolver 410 Gone en unos 5 minutos. Esto no se puede deshacer ni ampliar después: elimínala antes con el endpoint DELETE si necesitas quitarla antes, o vuelve a subirla con un nuevo expires_in si necesitas que dure más.
POST /api/chunk - Archivos grandes
Una sola solicitud puede llevar como máximo 100MB. Para archivos más grandes (hasta 200MB), o para mantener cada solicitud pequeña en una conexión lenta, envía el archivo en partes de como máximo 5MB y termina con POST /api:
- Elige un id de subida: 32 caracteres hexadecimales aleatorios.
- Para cada parte, haz
POST /api/chunk(multipart/form-data) conupload_id,index(desde 0),total(número de partes) y los bytes enchunk. La respuesta es{"type": "success", "chunk_size": 5242880}. POST /apiconupload_idyfilenameen lugar deuploads, más cualquier otro campo de subida. La respuesta es la respuesta normal de una subida.
Las partes de una subida sin terminar se eliminan después de 2 horas. Solo el POST /api final cuenta para los límites de subida.
GET /api/{id} y PATCH /api/{id} - Una subida
GET devuelve una de tus subidas con los mismos campos que la lista de abajo. PATCH cambia su visibility, title o description (campos de formulario o JSON; un título o una descripción vacíos los borran) y responde con la subida actualizada. Ambos necesitan la clave de API completa; 404 si no existe esa subida en tu cuenta.
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 - Reemplazar el archivo
Cambia el archivo de una de tus subidas y mantiene su id, su página y todos sus enlaces. Sirve cualquier tipo permitido, incluso uno distinto (una imagen puede pasar a ser un video). Envía el archivo nuevo como uploads (o el upload_id de un archivo enviado en partes con POST /api/chunk); keep_original funciona igual que al subir. El archivo nuevo pasa las mismas comprobaciones y conversiones que una subida nueva, y la versión anterior se elimina. Necesita la clave de API completa; 404 si no existe esa subida en tu cuenta, 409 si está protegida con contraseña o tiene límite de visualizaciones.
curl -X POST https://yourimageshare.com/api/aB3xY9qRz1/replace \
-H "X-API-Key: YOUR_API_KEY" -F uploads=@new-version.png GET /api - Listar tus subidas
Devuelve una lista paginada de las subidas de la cuenta autenticada (de cualquier origen: API, sitio web o editor), de la más reciente a la más antigua, 50 por página.
| Parámetro | En | Obligatorio | Descripción |
|---|---|---|---|
page | consulta | no | Número de página, 1 por defecto. |
Respuesta - 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 }
} Los campos significan aquí lo mismo que en la respuesta de subida de arriba (en una subida protegida con contraseña, path y thumb son enlaces firmados de corta duración). Para consultar una subida por su id, usa GET /api/{id}.
DELETE /api/{id} - Eliminar una subida
Elimina de forma permanente una de las subidas de la cuenta autenticada. Esto no se puede deshacer desde la API. {id} es el valor devuelto como id por los endpoints de subida o de lista.
Respuesta - 200 OK:
{ "type": "success", "msg": "Deleted." } 404 si no existe en tu cuenta ninguna subida con ese id (porque nunca fue tuya o porque ya se eliminó).
POST /api/compare - Control deslizante antes/después
Crea una comparación antes/después de dos de tus propias imágenes subidas: una página con un control deslizante en /c/{id} que también se puede insertar en cualquier sitio web. La clave solo para subir también funciona. Envía before y after (ids de subida, obligatorios) y, opcionalmente, title, label_before y label_after (por defecto "Before" y "After").
Respuesta - 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 alguno de los ids no es una de tus imágenes subidas (no se pueden usar videos ni imágenes protegidas con contraseña).
Límites de uso
Cada clave de API tiene cuotas independientes por minuto y por día, además de un tope diario por IP más amplio, como respaldo frente a una IP que rote entre varias claves. Subir, listar y eliminar comparten los mismos límites.
| Ventana | Límite por defecto | Ámbito |
|---|---|---|
| Por minuto | 20 solicitudes | por clave de API |
| Por día | 500 solicitudes | por clave de API completa |
| Por día | 2.000 solicitudes | por clave solo para subir (plugins que trasladan bibliotecas de medios enteras) |
| Por día | 2.000 solicitudes | por dirección IP |
| Por minuto | 300 partes | por clave de API, solo POST /api/chunk |
Estos límites pueden cambiar. Cada respuesta incluye los encabezados estándar de límite de uso:
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 14 Se devuelve un 429 cuando se supera un límite, con un encabezado Retry-After que indica cuántos segundos debes esperar.
Errores
Todas las respuestas de error tienen la misma forma, sea cual sea el endpoint o la causa:
{ "type": "error", "errors": "A human-readable description of what went wrong." } | Estado | Significado |
|---|---|
| 401 | Falta la clave de API o no es válida. |
| 403 | La cuenta o tu IP actual está bloqueada para subir archivos. |
| 404 | No se encontró ninguna subida con ese id en esta cuenta (consultar, modificar, eliminar). |
| 413 | La solicitud supera los 100MB. Envía el archivo en partes (POST /api/chunk) o un enlace en url (hasta 200MB). |
| 422 | Error de validación: no se indicó archivo ni enlace, tipo de archivo no admitido, datos de imagen ilegibles, dimensiones superiores al límite de 30000x30000px, un archivo de más de 200MB, un upload_id sin terminar o caducado, o una url que no se pudo descargar (el mensaje explica el motivo). |
| 429 | Se superó el límite de uso; consulta Límites de uso más arriba. |
| 500 | Algo falló de forma inesperada en el servidor. Se puede reintentar sin problema. |
Bibliotecas cliente
SDK oficiales que envuelven los endpoints de arriba, con resultados tipados y que lanzan excepciones ante errores de la API en lugar de obligarte a manejar HTTP a mano.
JavaScript / TypeScript
Sin dependencias, funciona en Node.js y en navegadores. También está en JSR como @yourimageshare/yourimageshare - npx jsr add @yourimageshare/yourimageshare - con el mismo código fuente, publicado directamente como TypeScript.
npm install yourimageshare Python
Una dependencia (requests), Python 3.8+.
pip install yourimageshare PHP
Sin dependencias de Composer (usa la propia extensión curl de PHP), PHP 7.4+. Código fuente en GitHub.
composer require yourimageshare/yourimageshare-php Go
Sin dependencias (solo la biblioteca estándar), Go 1.18+. Consulta pkg.go.dev para ver la documentación de referencia completa.
go get github.com/yourimageshare/yourimageshare/go Rust
Dos dependencias (ureq para HTTP bloqueante, sin traer un runtime asíncrono, y serde), Rust 1.70+. Código fuente en GitHub.
cargo add yourimageshare Ruby
Sin dependencias de gemas (Net::HTTP de la biblioteca estándar + json), Ruby 2.7+. Código fuente en GitHub.
gem install yourimageshare .NET
Una dependencia (el propio System.Text.Json de Microsoft), con destino netstandard2.0, así que funciona tanto en .NET Framework como en .NET moderno. Código fuente en GitHub. Creado y verificado con esta API en producción; pronto se publicará en NuGet.
dotnet add package YourImageShare Dart / Flutter
Una dependencia (http, el paquete del propio equipo de Dart), Dart 2.17+. Código fuente en GitHub. Creado y verificado con esta API en producción; pronto se publicará en pub.dev.
dart pub add yourimageshare Elixir
Una dependencia (Req), Elixir 1.14+. Devuelve tuplas {:ok, result}| {:error, reason}, el equivalente directo del manejo de errores de esta API en todos los demás SDK, además de variantes con exclamación que lanzan excepciones. Código fuente en GitHub, documentación en HexDocs.
{:yourimageshare, "~> 1.1"} Servidor MCP
Para agentes de programación con IA (Claude Code, Cursor y otras herramientas compatibles con MCP): pega una captura de pantalla en un reporte de error, en la descripción de un PR o en una conversación de soporte como una URL real, en lugar de un blob base64 o un paso de subida manual. Funciona igual con Claude Desktop y cualquier otro cliente MCP.
Alojado, sin instalar nada: agrégalo como servidor MCP remoto (en Claude: Settings › Connectors › Add custom connector; también en ChatGPT, Cursor, VS Code y otros clientes que aceptan la URL de un servidor) con tu clave de API en la URL:
https://yourimageshare.com/mcp?key=YOUR_API_KEY Los clientes que permiten definir encabezados pueden usar https://yourimageshare.com/mcp con Authorization: Bearer YOUR_API_KEY. La URL con tu clave funciona como una contraseña: mantenla privada y obtén una clave nueva en Mi cuenta si se filtra. En el servidor alojado, upload_image acepta un enlace público (hasta 200MB) o contenido base64 en línea (hasta 15MB). Sin clave, https://yourimageshare.com/mcp sigue permitiendo subir de forma anónima, como el sitio web: solo no listado o privado, con límites más bajos, y la subida se elimina con el delete_url que devuelve. Las demás herramientas necesitan una clave.
Local: ejecútalo directamente con npx, sin paso de instalación (también puede leer archivos de tu disco):
npx yourimageshare-mcp Herramientas: upload_image (un archivo local, contenido en línea o un enlace, hasta 200MB, con visibilidad, título y eliminación automática opcionales), list_uploads, get_upload, update_upload y delete_upload.
También está en el registro oficial de MCP (como io.github.yourimageshare/yourimageshare) y en Smithery y Glama, por si tu cliente MCP instala desde alguno de ellos.
¿Eres nuevo en MCP? Consulta cómo conectar Claude y ChatGPT a esta API mediante MCP para ver la configuración completa paso a paso.
Los diez tienen licencia MIT. ¿No hay una biblioteca oficial para tu lenguaje? Los ejemplos de código de abajo muestran cómo llamar a la API directamente.
Ejemplos de código
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)
El SDK oficial de Go de arriba se encarga de esto por ti; esta versión sin biblioteca es para quien prefiera no añadir la dependencia.
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
} Herramientas de captura de pantalla
Una extensión del navegador más configuraciones y scripts listos para enviar capturas directamente a YourImageShare, sin subirlas a mano. Todas suben mediante el mismo endpoint /api documentado arriba.
Extensión del navegador (Chrome y Firefox)
La extensión YourImageShare Capture para Chrome y Firefox prescinde por completo de scripts y archivos de configuración. Captura el área visible, una región seleccionada arrastrando o una página completa con desplazamiento, abre un editor integrado para flechas, texto, desenfoque/tachado y otras anotaciones, y luego descarga el resultado, lo copia al portapapeles o lo publica directamente en YourImageShare con un clic. La publicación usa el mismo endpoint /api documentado arriba: añade tu clave de API una vez en los Ajustes de la extensión y cada publicación devolverá de inmediato un enlace para compartir. Funciona en Chrome de escritorio (y otros navegadores Chromium), Firefox de escritorio y Firefox para Android.
Obtener YourImageShare Capture para Firefox Obtener YourImageShare Capture para Chrome
ShareX
Descarga la configuración de subida personalizada de abajo y, en ShareX, ve a Destinations > Custom uploader settings > Import > from file, abre el archivo .sxcu descargado y reemplaza YOUR_API_KEY en el campo Headers por tu clave real. Configúralo como destino de imágenes/archivos y las capturas se subirán automáticamente.
Eliminar: el enlace "Delete" de ShareX para cada subida abre nuestra página de eliminación en tu navegador (el delete_url de un solo uso de la subida), así que puedes quitar una captura directamente desde el historial de ShareX. También puedes eliminar subidas desde Mi cuenta. ¿Descargaste la configuración antes de octubre de 2026? Vuelve a descargarla para tener esto.
Flameshot (Linux)
Un pequeño script de shell que ejecuta flameshot gui, sube la captura y copia el enlace al portapapeles. Asígnalo a un atajo de teclado en tu entorno de escritorio en lugar del predeterminado de Flameshot.
Descargar 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 de PowerShell para el destino integrado External command de Greenshot. Es compatible con el Windows PowerShell 5.1 que viene con Windows, sin instalar nada más.
Descargar 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" Plugins para foros
Añade un verdadero botón "Subir imagen" junto al editor de mensajes de tu foro. Cada uno sube mediante el mismo endpoint /api documentado arriba e inserta BBCode en la posición del cursor: sin otra pestaña y sin copiar y pegar a mano.
Usa tu clave solo para subir, no tu clave de API, en los plugins de abajo. Cada plugin muestra la clave en el código fuente de la página de cada visitante, y la clave solo para subir (Mi cuenta > pestaña API) solo puede subir: no puede listar ni eliminar tus subidas aunque alguien la copie de la página.
Las subidas desde foros son privadas por defecto: la imagen funciona en el mensaje, pero YourImageShare no le da una página propia (sin comentarios, reacciones ni anuncios). Cada plugin tiene un ajuste para cambiar a unlisted si también quieres una página para cualquiera que tenga el enlace.
phpBB
Una extensión real de phpBB 3.2/3.3. Descomprímela en ext/, actívala en Customise > Manage extensions y reemplaza YOUR_UPLOAD_ONLY_KEY en el archivo de eventos de plantilla de la extensión por tu clave real solo para subir.
SMF (Simple Machines Forum)
Un paquete real de SMF: instálalo desde Admin > Package Manager y reemplaza YOUR_UPLOAD_ONLY_KEY en Sources/yis_forumupload.php por tu clave real solo para subir.
MyBB
Un plugin real de MyBB 1.8. Cópialo en inc/plugins/, actívalo en Configuration > Plugins y reemplaza YOUR_UPLOAD_ONLY_KEY en el archivo del plugin por tu clave real solo para subir.
FluxBB, PunBB y ZetaBoards
No tienen un sistema formal de plugins, así que se trata de un pequeño fragmento que se pega directamente en tu plantilla (FluxBB/PunBB) o en el Admin CP (ZetaBoards). Instrucciones completas para copiar y pegar de cada uno:
Instrucciones para FluxBB Instrucciones para PunBB Instrucciones para ZetaBoards
Plugin de WordPress
Traslada tu Biblioteca de medios a YourImageShare en lugar de al disco local. Las nuevas subidas de imágenes y videos pasan automáticamente por el mismo endpoint /api documentado arriba, el archivo local (y cada tamaño de miniatura generado) se elimina cuando la subida se confirma, y cada URL de adjunto de WordPress (el editor de bloques, las imágenes destacadas, las galerías, la API REST) apunta al archivo alojado en YourImageShare. Sin shortcodes y sin cambiar tu forma de trabajar.
- Traslada en bloque una Biblioteca de medios existente en segundo plano (o con
wp yis offload --all), no solo las subidas nuevas - Las imágenes y los videos ya insertados en entradas siguen funcionando después de eliminar sus archivos locales
- Las miniaturas y el srcset usan nuestra miniatura de 280px, así que los espacios pequeños para imágenes no cargan archivos a tamaño completo
- Archivos de hasta 200MB, enviados en partes para que los videos grandes nunca saturen un hosting compartido
- Restaura cualquier archivo trasladado al almacenamiento local en cualquier momento
- Una columna de la Biblioteca de medios muestra qué está trasladado y qué sigue en local
- Los archivos trasladados se guardan como privados: se cargan donde tu sitio los use, pero no tienen página propia en YourImageShare
Usa tu clave solo para subir, no tu clave de API. La clave de API completa, opcional, solo es necesaria si quieres que los archivos trasladados se eliminen de YourImageShare cuando los elimines en WordPress.
Obtenerlo en WordPress.org Descargar el ZIP
En WordPress: Plugins > Add New, busca YourImageShare Media Offload y luego Install y Activate.
Atajo para iPhone y iPad
Sube desde el menú de compartir de cualquier app (Fotos, Archivos, Safari, una captura de pantalla) y consigue el enlace en tu portapapeles. Sin instalar ninguna app y sin registro.
Para crearlo tú mismo en la app Atajos (unos dos minutos):
- Nuevo atajo, con el nombre "Upload to YourImageShare". En sus detalles, activa Show in Share Sheet y acepta imágenes y contenido multimedia.
- Añade Get Contents of URL: URL
https://yourimageshare.com/api/widget, métodoPOST, cuerpo de la solicitud Form con dos campos:uploads(File) = Shortcut Input, yclient(Text) =ios-shortcut. - Añade Get Dictionary Value para
datay otro parasrc: ese es el enlace directo. - Añade Copy to Clipboard y Show Notification ("Link copied").
Sin clave, las subidas son anónimas y no listadas, con un límite diario. Añade un encabezado X-API-Key con tu clave solo para subir (Mi cuenta > API) para subir a tu cuenta. La respuesta también incluye delete_url por si quieres guardar un enlace para eliminar.
PicGo y PicList
PicGo y PicList suben las imágenes pegadas o arrastradas en editores Markdown (Typora, VS Code, Obsidian, Joplin) y ponen el enlace en tu texto. Nuestro plugin añade YourImageShare como una de sus opciones de hosting de imágenes.
- En PicGo o PicList: Plugins, busca
yourimageshare, instala y elige YourImageShare como servicio de subida. Línea de comandos:picgo install yourimageshare - O descarga el plugin e impórtalo como plugin local (descomprímelo primero)
- Ajustes: clave solo para subir (opcional; vacía = subidas anónimas y no listadas), visibilidad, y si devolver el enlace directo a la imagen (para Markdown) o el enlace de la página
- El enlace que devuelve sigue funcionando cuando las imágenes grandes se optimizan después a WebP
Bot de Telegram
Consigue un enlace para una foto, un video o un GIF sin salir de Telegram. Envíalo a @YourImageShare_bot y el enlace te llega de inmediato: sin registro y sin clave de API. El bot sube mediante el mismo endpoint /api documentado arriba.
- Envía una foto, un video, un GIF o un archivo de imagen o video; un álbum de hasta 10 vuelve en una sola respuesta
- En un grupo, responde
/linka una foto o un video y el bot publica su enlace para todos /autodeletehace que tus próximas subidas se eliminen solas después de 1 hora, 1 día, 1 semana o 30 días- Cada resultado tiene un botón Eliminar que solo funciona para la persona que subió el archivo
- Los enlaces no están listados: solo las personas que tienen el enlace pueden ver el archivo
- El bot responde en el idioma de tu Telegram cuando el sitio está disponible en él
Conserva la calidad completa: Telegram comprime las fotos enviadas de la forma normal. Envíalas como archivo (📎 → File) y se sube el original. Telegram permite que los bots descarguen archivos de hasta 20 MB, así que sube los archivos más grandes en el sitio web.
Bot de Discord
Convierte cualquier imagen, GIF o video de Discord en un enlace permanente. Los enlaces de archivos adjuntos de Discord dejan de funcionar al cabo de un tiempo; los de YourImageShare, no. Sin registro y sin clave de API. El bot sube mediante el mismo endpoint /api documentado arriba.
/uploadcon un archivo: eliminación automática opcional después de 1, 7 o 30 días, y only_me para mostrar el enlace solo a ti- Haz clic derecho en un mensaje → Apps → Rehost on YourImageShare para volver a alojar hasta 6 imágenes o videos suyos en una sola respuesta
- Agrégalo a un servidor, o a tu propia cuenta para usarlo en cualquier chat o mensaje directo
- Cada resultado tiene un botón Eliminar que solo funciona para la persona que subió el archivo
- Los enlaces no están listados: solo las personas que tienen el enlace pueden ver el archivo
GitHub Action para Playwright y Cypress
Cuando fallan las pruebas de extremo a extremo en un pull request, descubre por qué sin descargar zips de artefactos. La action sube las capturas de los fallos y las diferencias visuales y las muestra como imágenes en un único comentario del pull request, que se actualiza en cada ejecución.
- Funciona con Playwright y Cypress, y detecta por sí sola cuál usa el proyecto
- Las comparaciones visuales fallidas aparecen como Expected, Actual y Diff, con un enlace a un control deslizante antes/después (
toHaveScreenshotde Playwright; en Cypress, los plugins cypress-image-diff-js y cypress-visual-regression) - El comentario cambia a "all tests passed" cuando se arreglan las pruebas; el mismo informe va al resumen del job
- Las capturas son privadas (solo archivos de imagen, sin página) y se eliminan a los 30 días por defecto
- Necesita tu clave solo para subir como secreto del repositorio
YOURIMAGESHARE_API_KEY; nunca hace fallar tu build
- uses: yourimageshare/playwright-pr-screenshots@v1
if: always()
with:
api-key: ${{ secrets.YOURIMAGESHARE_API_KEY }} Proyectos de la comunidad
Algunas de las mejores integraciones de YourImageShare las crean las personas que lo usan. Estos proyectos los hicieron miembros de la comunidad con la API pública documentada arriba. Los mantienen sus autores, así que, para preguntas o reportes de errores, contacta con el autor a través de la página del proyecto.
- YourImageShare Uploads for FlatBB: un plugin para el foro FlatBB de madromas (MadWay Inc.).
- Añade un botón de subida al editor de mensajes de FlatBB: elige una o más imágenes o videos y el Markdown se inserta en la posición del cursor
- Inserta cada subida como una miniatura en la que se puede hacer clic, una imagen a tamaño completo o un enlace simple (los videos, como enlace)
- Las subidas pasan por el servidor de tu foro con una clave de API solo para subir, así que la clave nunca llega a los navegadores de los visitantes
- Los archivos se alojan en YourImageShare, no en el disco de tu foro, con una visibilidad por defecto que tú eliges (privada, no listada o pública)
- Funciona junto al propio sistema de subida de FlatBB, con un límite de tamaño de archivo aparte
Código fuente en GitHub · Página en el Marketplace de FlatBB
Gracias
Muchas gracias a todos los que crean con YourImageShare y comparten su trabajo con los demás. Los proyectos de la comunidad llevan YourImageShare a lugares a los que nunca habríamos llegado solos. ¿Has creado algo con la API? Cuéntanoslo y con gusto lo añadiremos aquí.
Del blog
Guías y tutoriales para desarrolladores
- Sube capturas de pantalla al instante con ShareX, Flameshot o Greenshot
- Añade un verdadero botón para subir imágenes a tu foro phpBB, SMF o MyBB
- Cómo usar MCP: conecta Claude, ChatGPT y agentes de IA a YourImageShare
- YourImageShare Capture: extensión de capturas de pantalla para Chrome y Firefox
- Traslada tu Biblioteca de medios de WordPress a un hosting de imágenes gratis
- Bot de Telegram de YourImageShare: consigue un enlace para cualquier foto o video
¿Listo para probarlo?
Obtén tu clave de API →