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.

CampoTipoObligatorioDescripción
uploadsarchivouno de estos tresEl 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.
urlcadenaUn enlace http(s) público a una imagen o un video. Lo descargamos nosotros, así que funcionan archivos de hasta 200MB.
upload_idcadenaUn archivo enviado antes en partes a POST /api/chunk, de hasta 200MB.
filenamecadenanoCon upload_id: el nombre original del archivo.
expires_inenteronoElimina 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_duplicatebooleanonoGuarda una copia nueva aunque tu cuenta ya haya subido exactamente el mismo archivo (consulta duplicate más abajo).
keep_originalbooleanonoConserva 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.
visibilitycadenanounlisted (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.
titlecadenanoHasta 90 caracteres, se muestra en la página de la subida.
descriptioncadenanoHasta 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"
  }
}
CampoDescripción
idEl identificador único del archivo.
typeimage o video.
pathLa 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.
srcURL directa y permanente del archivo: siempre abre el archivo actual, y sirve para el src de un <img>/<video> y para guardar.
directLa página del archivo en YourImageShare (título, descripción, comentarios, opciones para compartir).
thumbUna miniatura WebP de 280px de ancho (en un video, su primer fotograma), o null.
width, heightTamaño de visualización en píxeles (en vertical; en un video, el tamaño del fotograma), o null si se desconoce.
sizeTamaño del archivo en bytes tal como está almacenado.
lockedtrue si la subida está protegida con contraseña.
visibilityprivate, unlisted o public (consulta el campo de la solicitud más arriba).
title, descriptionTal como se indicaron, o null. El texto pasa por la misma moderación que el sitio web.
delete_urlSolo 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_atMarca de tiempo ISO 8601 en la que esta subida se eliminará automáticamente, o null si no caduca.
duplicatetrue 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:

  1. Elige un id de subida: 32 caracteres hexadecimales aleatorios.
  2. Para cada parte, haz POST /api/chunk (multipart/form-data) con upload_id, index (desde 0), total (número de partes) y los bytes en chunk. La respuesta es {"type": "success", "chunk_size": 5242880}.
  3. POST /api con upload_id y filename en lugar de uploads, 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ámetroEnObligatorioDescripción
pageconsultanoNú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.

VentanaLímite por defectoÁmbito
Por minuto20 solicitudespor clave de API
Por día500 solicitudespor clave de API completa
Por día2.000 solicitudespor clave solo para subir (plugins que trasladan bibliotecas de medios enteras)
Por día2.000 solicitudespor dirección IP
Por minuto300 partespor 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." }
EstadoSignificado
401Falta la clave de API o no es válida.
403La cuenta o tu IP actual está bloqueada para subir archivos.
404No se encontró ninguna subida con ese id en esta cuenta (consultar, modificar, eliminar).
413La solicitud supera los 100MB. Envía el archivo en partes (POST /api/chunk) o un enlace en url (hasta 200MB).
422Error 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).
429Se superó el límite de uso; consulta Límites de uso más arriba.
500Algo 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.

Descargar YourImageShare.sxcu

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.

Descargar para phpBB

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.

Descargar para SMF

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.

Descargar para MyBB

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.

Botón para subir imágenes en cualquier sitio web

Da a tus visitantes un botón "Subir" en cualquier sitio: un formulario de comentarios, una página de soporte, un foro para el que no tenemos plugin, un sitio estático. Pega dos líneas; sin registro y sin código de servidor.

<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>

Ambos atributos son opcionales: sin ellos, el botón muestra los enlaces con un botón Copiar. El cuadro de subida se construye alrededor del enlace.

  • Las subidas se hacen directamente en tu página: haz clic en el botón, suelta archivos sobre él o pega una captura de pantalla; varios archivos a la vez, con barra de progreso y miniatura
  • Las imágenes pegadas o soltadas directamente en el campo indicado en data-target (cualquier textarea, input o cuadro editable) también se suben, y los enlaces se añaden a ese campo; sin destino, aparecen debajo del botón con un botón Copiar
  • data-format: url (enlace directo al archivo, el predeterminado), page, bbcode, html o markdown; data-label cambia el texto del botón
  • data-key (opcional): tu clave solo para subir (Mi cuenta > API). Las subidas van entonces a tu cuenta con tus propios límites. Sin clave, las subidas son anónimas y no listadas, con un límite diario por visitante y por sitio
  • Los desarrolladores pueden escuchar el evento yis:upload en el cuadro de subida: event.detail.item contiene {id, type, page, url, thumb}
  • Archivos de hasta 95 MB mediante el botón (los más grandes, en el sitio web). Se aplican como siempre nuestra moderación y nuestros términos; cada visitante recibe su propio enlace para eliminar

El botón se dibuja en su propio cuadro aislado, así que el CSS de tu sitio no puede romperlo. El pequeño enlace "Image and video hosting by YourImageShare" permanece visible dentro del cuadro de subida.

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):

  1. Nuevo atajo, con el nombre "Upload to YourImageShare". En sus detalles, activa Show in Share Sheet y acepta imágenes y contenido multimedia.
  2. Añade Get Contents of URL: URL https://yourimageshare.com/api/widget, método POST, cuerpo de la solicitud Form con dos campos: uploads (File) = Shortcut Input, y client (Text) = ios-shortcut.
  3. Añade Get Dictionary Value para data y otro para src: ese es el enlace directo.
  4. 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

Descargar el plugin de PicGo

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 /link a una foto o un video y el bot publica su enlace para todos
  • /autodelete hace 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.

Abrir @YourImageShare_bot en Telegram

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.

  • /upload con 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

Añadir YourImageShare a Discord

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 (toHaveScreenshot de 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 }}

Guía de configuración en GitHub

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

¿Listo para probarlo?

Obtén tu clave de API →