Documentação da API
A API do YourImageShare permite enviar, listar e excluir arquivos por código. É uma API JSON/REST pequena - sem SDK obrigatório, basta um cliente HTTP e uma chave de API - e também há bibliotecas oficiais de JavaScript, Python e MCP.
Todas as bibliotecas cliente e as ferramentas abaixo são de código aberto. Veja o código, relate problemas ou contribua no nosso repositório oficial do GitHub em github.com/yourimageshare/yourimageshare.
URL base: https://yourimageshare.com/api · Formato: JSON na entrada e na saída, exceto os uploads, que usam multipart/form-data · Autenticação: uma chave de API em todas as requisições. · Especificação legível por máquina: /openapi.json (OpenAPI 3.1), para agentes e ferramentas de geração de código que preferem não interpretar esta página.
Como obter uma chave de API
Entre na sua conta, acesse Minha conta e abra a aba API. Sua chave aparece ali, junto com um botão Regenerar. Ao regenerar a chave, a antiga deixa de valer imediatamente, então atualize todos os lugares em que ela é usada antes de clicar.
Essa aba também tem uma segunda chave, independente: a chave só para upload. Veja a dica abaixo e Plugins para fóruns para saber quando usá-la.
Autenticação
Envie sua chave em um cabeçalho - é a opção preferida, já que query strings costumam parar em logs de acesso, logs de proxy e cabeçalhos Referer:
X-API-Key: YOUR_API_KEY O parâmetro de query ?key= também funciona, mantido por compatibilidade com integrações antigas e comandos curl rápidos e pontuais. Se os dois estiverem presentes, o cabeçalho tem prioridade.
?key=YOUR_API_KEY Dica: trate sua chave como uma senha - quem a tiver pode enviar, listar, alterar e excluir arquivos na sua conta. Toda requisição bem-sucedida é registrada e aparece em um gráfico na aba API da sua conta, separada por dia e por tipo de requisição. Se a chave precisar ficar em algum lugar que outras pessoas possam ver - um plugin de fórum, um arquivo de configuração público - use a chave só para upload da mesma aba: ela só serve para enviar arquivos - listar, consultar, alterar e excluir uploads são rejeitados com um 401.
Endpoints
Upload, listagem e exclusão compartilham a mesma autenticação e o mesmo controle de limites; arquivos grandes podem ser enviados em partes antes.
POST /api - Enviar um arquivo
Envia um único arquivo para a conta autenticada.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
uploads | arquivo | um destes três | O arquivo a enviar, de até 100MB (o limite de uma única requisição pela nossa rede). Um arquivo por requisição - este endpoint não aceita upload de vários arquivos de uma vez. |
url | string | Um link http(s) público para uma imagem ou vídeo. Nós mesmos baixamos o arquivo, então funcionam arquivos de até 200MB. | |
upload_id | string | Um arquivo enviado antes em partes para POST /api/chunk, de até 200MB. | |
filename | string | não | Com upload_id: o nome original do arquivo. |
expires_in | inteiro | não | Exclui este upload automaticamente após esse número de segundos (de 60 a 31.536.000, ou seja, de 1 minuto a 1 ano). Omita para um upload normal e permanente. |
allow_duplicate | booleano | não | Armazena uma nova cópia mesmo que sua conta já tenha enviado exatamente o mesmo arquivo (veja duplicate abaixo). |
keep_original | booleano | não | Mantém a imagem exatamente como foi enviada. Sem isso, arquivos JPG/PNG com mais de 1 MB são otimizados para WebP. Metadados como GPS são removidos de qualquer forma. |
visibility | string | não | unlisted (padrão): o arquivo e a página dele funcionam para qualquer pessoa com o link, mas não aparecem listados em lugar nenhum. private: apenas o arquivo - o link da página leva todo mundo, exceto você, direto ao arquivo (sem comentários, reações ou anúncios). public: listado no site e indexável. |
title | string | não | Até 90 caracteres, exibido na página do upload. |
description | string | não | Até 500 caracteres. |
Tipos aceitos: imagens JPG, PNG, GIF, WEBP, AVIF, BMP, TIFF, HEIC ou HEIF; vídeo MP4, WEBM, AVI, MOV, MKV, MPEG, WMV, FLV ou 3GP (a lista exata pode crescer com o tempo). HEIC/HEIF e TIFF são armazenados como WebP, vídeos que não sejam MP4/WebM são convertidos para MP4, e imagens JPEG/PNG maiores são convertidas para WebP pouco depois do upload quando isso as deixa visivelmente menores. Tamanho máximo: 200MB; arquivos grandes demais ou ilegíveis são rejeitados com um 422.
Resposta - 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 | Descrição |
|---|---|
id | O identificador único do arquivo. |
type | image ou video. |
path | O link de armazenamento do arquivo como foi enviado. Ele pode mudar pouco depois, quando o arquivo é convertido (WebP/MP4), então guarde src, não path. |
src | Link direto e permanente do arquivo - sempre abre o arquivo atual, adequado para o src de um <img>/<video> e para salvar. |
direct | A página do arquivo no YourImageShare (título, descrição, comentários, opções de compartilhamento). |
thumb | Uma miniatura WebP de 280px de largura (em vídeos, o primeiro quadro), ou null. |
width, height | Tamanho de exibição em pixels (na vertical; no caso de vídeo, o tamanho do quadro), ou null se for desconhecido. |
size | Tamanho do arquivo em bytes, como armazenado. |
locked | true se o upload tem proteção por senha. |
visibility | private, unlisted ou public (veja o campo da requisição acima). |
title, description | Como definidos, ou null. O texto passa pela mesma moderação do site. |
delete_url | Apenas em uploads novos: um link privado que exclui este upload sem chave de API. É exibido uma única vez (só um hash é armazenado) - guarde-o se precisar. |
expires_at | Data e hora em ISO 8601 em que este upload será excluído automaticamente, ou null se não expira. |
duplicate | true se sua conta já tinha enviado exatamente o mesmo arquivo: esse upload é retornado e nada novo é armazenado. Não se aplica a uploads com expiração nem com allow_duplicate=1. |
Uploads com expiração: depois que expires_at passa, o arquivo é excluído do armazenamento e a página do upload passa a retornar 410 Gone em cerca de 5 minutos. Isso não pode ser desfeito nem prorrogado depois - exclua antes com o endpoint DELETE se precisar removê-lo mais cedo, ou envie de novo com um novo expires_in se precisar que dure mais.
POST /api/chunk - Arquivos grandes
Uma única requisição pode levar no máximo 100MB. Para arquivos maiores (até 200MB), ou para manter cada requisição pequena em uma conexão lenta, envie o arquivo em partes de no máximo 5MB e termine com POST /api:
- Escolha um id de upload: 32 caracteres hexadecimais aleatórios.
- Para cada parte, faça
POST /api/chunk(multipart/form-data) comupload_id,index(começando em 0),total(número de partes) e os bytes emchunk. A resposta é{"type": "success", "chunk_size": 5242880}. - Faça
POST /apicomupload_idefilenameno lugar deuploads, mais qualquer outro campo de upload. A resposta é a resposta normal de upload.
As partes de um upload não finalizado são excluídas após 2 horas. Apenas o POST /api final conta para os limites de upload.
GET /api/{id} e PATCH /api/{id} - Um upload
GET retorna um dos seus uploads com os mesmos campos da lista abaixo. PATCH altera visibility, title ou description (campos de formulário ou JSON; um título ou descrição vazio apaga o valor) e responde com o upload atualizado. Ambos exigem a chave de API completa; 404 se não houver esse upload na sua conta.
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 - Substituir o arquivo
Troca o arquivo de um dos seus uploads e mantém o id, a página e todos os links. Qualquer tipo permitido funciona, até um diferente (uma imagem pode virar um vídeo). Envie o novo arquivo como uploads (ou o upload_id de um arquivo enviado em partes com POST /api/chunk); keep_original funciona como no upload. O novo arquivo passa pelas mesmas verificações e conversões de um upload novo, e a versão anterior é removida. Exige a chave de API completa; 404 se não houver esse upload na sua conta, 409 se ele tiver proteção por senha ou limite de visualizações.
curl -X POST https://yourimageshare.com/api/aB3xY9qRz1/replace \
-H "X-API-Key: YOUR_API_KEY" -F uploads=@new-version.png GET /api - Listar seus uploads
Retorna uma lista paginada dos uploads da conta autenticada (de qualquer origem - API, site ou editor), do mais recente para o mais antigo, 50 por página.
| Parâmetro | Onde | Obrigatório | Descrição |
|---|---|---|---|
page | query | não | Número da página, padrão 1. |
Resposta - 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 }
} Os campos significam aqui o mesmo que na resposta de upload acima (em um upload protegido por senha, path e thumb são links assinados de curta duração). Para consultar um upload pelo id, use GET /api/{id}.
DELETE /api/{id} - Excluir um upload
Exclui permanentemente um dos uploads da conta autenticada. Isso não pode ser desfeito pela API. {id} é o valor retornado como id pelos endpoints de upload ou de listagem.
Resposta - 200 OK:
{ "type": "success", "msg": "Deleted." } 404 se não existir upload com esse id na sua conta (ou ele nunca foi seu, ou já foi excluído).
POST /api/compare - Controle deslizante de antes/depois
Cria uma comparação de antes/depois entre dois uploads de imagem seus: uma página com um controle deslizante em /c/{id} que também pode ser incorporada em qualquer site. A chave só para upload também funciona. Envie before e after (ids de upload, obrigatórios) e, opcionalmente, title, label_before e label_after (padrão "Before" e "After").
Resposta - 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 se algum dos ids não for um dos seus uploads de imagem (vídeos e imagens protegidas por senha não podem ser usados).
Limites de uso
Cada chave de API tem cotas independentes por minuto e por dia, além de um teto diário mais amplo por IP, como proteção contra um mesmo IP alternando entre várias chaves. Uploads, listagens e exclusões compartilham os mesmos limites.
| Janela | Limite padrão | Escopo |
|---|---|---|
| Por minuto | 20 requisições | por chave de API |
| Por dia | 500 requisições | por chave de API completa |
| Por dia | 2.000 requisições | por chave só para upload (plugins que transferem bibliotecas de mídia inteiras) |
| Por dia | 2.000 requisições | por endereço IP |
| Por minuto | 300 partes | por chave de API, apenas POST /api/chunk |
Esses limites podem mudar. Toda resposta inclui cabeçalhos padrão de limite de uso:
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 14 Um 429 é retornado quando um limite é excedido, com um cabeçalho Retry-After informando quantos segundos esperar.
Erros
Toda resposta de erro tem o mesmo formato, independentemente do endpoint ou da causa:
{ "type": "error", "errors": "A human-readable description of what went wrong." } | Status | Significado |
|---|---|
| 401 | Chave de API ausente ou inválida. |
| 403 | A conta ou o seu IP atual foi banido do envio de arquivos. |
| 404 | Nenhum upload correspondente a esse id nesta conta (consultar, alterar, excluir). |
| 413 | A requisição passa de 100MB. Envie o arquivo em partes (POST /api/chunk) ou um link para ele em url (até 200MB). |
| 422 | Falha de validação - nenhum arquivo ou link informado, tipo de arquivo não aceito, dados de imagem ilegíveis, dimensões acima do limite de 30000x30000px, arquivo maior que 200MB, um upload_id não finalizado ou expirado, ou uma url que não pôde ser baixada (a mensagem explica o motivo). |
| 429 | Limite de uso excedido - veja Limites de uso acima. |
| 500 | Algo falhou de forma inesperada no servidor. Pode tentar de novo com segurança. |
Bibliotecas cliente
SDKs oficiais que encapsulam os endpoints acima, com resultados tipados e que lançam exceções em erros da API, em vez de exigir o tratamento HTTP bruto.
JavaScript / TypeScript
Sem dependências, funciona em Node.js e em navegadores. Também está no JSR como @yourimageshare/yourimageshare - npx jsr add @yourimageshare/yourimageshare - mesmo código-fonte, publicado diretamente em TypeScript.
npm install yourimageshare Python
Uma dependência (requests), Python 3.8+.
pip install yourimageshare PHP
Sem dependências do Composer (usa a própria extensão curl do PHP), PHP 7.4+. Código-fonte no GitHub.
composer require yourimageshare/yourimageshare-php Go
Sem dependências (só a biblioteca padrão), Go 1.18+. Veja pkg.go.dev para a documentação de referência completa.
go get github.com/yourimageshare/yourimageshare/go Rust
Duas dependências (ureq para HTTP bloqueante - sem trazer um runtime assíncrono - e serde), Rust 1.70+. Código-fonte no GitHub.
cargo add yourimageshare Ruby
Sem dependências de gems (Net::HTTP da stdlib + json), Ruby 2.7+. Código-fonte no GitHub.
gem install yourimageshare .NET
Uma dependência (o próprio System.Text.Json da Microsoft), voltada para netstandard2.0, então funciona tanto no .NET Framework quanto no .NET moderno. Código-fonte no GitHub. Compilada e verificada com esta API em produção; publicação no NuGet em breve.
dotnet add package YourImageShare Dart / Flutter
Uma dependência (http, o pacote da própria equipe do Dart), Dart 2.17+. Código-fonte no GitHub. Compilada e verificada com esta API em produção; publicação no pub.dev em breve.
dart pub add yourimageshare Elixir
Uma dependência (Req), Elixir 1.14+. Retorna tuplas {:ok, result}| {:error, reason} - o equivalente direto do tratamento de erros desta API em todos os outros SDKs - além de variantes com ponto de exclamação que lançam exceções. Código-fonte no GitHub, documentação no HexDocs.
{:yourimageshare, "~> 1.1"} Servidor MCP
Para agentes de programação com IA (Claude Code, Cursor e outras ferramentas compatíveis com MCP) - cole uma captura de tela em um relatório de bug, na descrição de um PR ou em uma conversa de suporte como um link de verdade, em vez de um blob base64 ou de uma etapa manual de upload. Funciona do mesmo jeito com o Claude Desktop e qualquer outro cliente MCP.
Hospedado, nada para instalar: adicione como um servidor MCP remoto (no Claude: Configurações › Conectores › Adicionar conector personalizado; também no ChatGPT, Cursor, VS Code e outros clientes que aceitam o link de um servidor) com sua chave de API no link:
https://yourimageshare.com/mcp?key=YOUR_API_KEY Clientes que permitem definir cabeçalhos podem usar https://yourimageshare.com/mcp com Authorization: Bearer YOUR_API_KEY. O link com a sua chave funciona como uma senha: mantenha-o em sigilo e gere uma nova chave em Minha conta se ele vazar. No servidor hospedado, upload_image aceita um link público (até 200MB) ou conteúdo base64 inline (até 15MB). Sem chave, https://yourimageshare.com/mcp ainda faz uploads anônimos, como o site: apenas não listados ou privados, com limites menores, e o upload é excluído com o delete_url que ele retorna. As outras ferramentas exigem uma chave.
Local: execute direto com npx, sem etapa de instalação (ele também pode ler arquivos do seu disco):
npx yourimageshare-mcp Ferramentas: upload_image (um arquivo local, conteúdo inline ou um link, até 200MB, com visibilidade, título e exclusão automática opcionais), list_uploads, get_upload, update_upload e delete_upload.
Também está no Registro oficial do MCP (como io.github.yourimageshare/yourimageshare) e listado no Smithery e no Glama, caso seu cliente MCP instale a partir de um deles.
Novo no MCP? Veja como conectar o Claude e o ChatGPT a esta API por MCP para um passo a passo completo.
Todas as dez têm licença MIT. Não há biblioteca oficial para a sua linguagem? Os exemplos de código abaixo mostram como chamar a API diretamente.
Exemplos 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)
O SDK oficial de Go acima já faz isso por você - esta versão direta está aqui para quem prefere não adicionar a dependência.
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
} Ferramentas de captura de tela
Uma extensão de navegador, além de configurações e scripts prontos, para enviar capturas de tela direto ao YourImageShare, sem upload manual. Todas enviam pelo mesmo endpoint /api documentado acima.
Extensão de navegador (Chrome & Firefox)
A extensão YourImageShare Capture para Chrome e Firefox dispensa scripts e arquivos de configuração. Ela captura a área visível, uma região selecionada com o mouse ou uma página inteira com rolagem, abre um editor integrado para setas, texto, desfoque/ocultação e outras anotações e depois baixa o resultado, copia para a área de transferência ou publica direto no YourImageShare com um clique. A publicação usa o mesmo endpoint /api documentado acima - adicione sua chave de API uma vez nas Configurações da extensão e toda publicação a partir daí devolve um link para compartilhar na hora. Funciona no Chrome para computador (e outros navegadores Chromium), no Firefox para computador e no Firefox para Android.
Instalar o YourImageShare Capture no Firefox Instalar o YourImageShare Capture no Chrome
ShareX
Baixe o uploader personalizado abaixo e, no ShareX, vá em Destinations > Custom uploader settings > Import > from file, abra o arquivo .sxcu baixado e substitua YOUR_API_KEY no campo Headers pela sua chave real. Defina-o como destino de imagem/arquivo e as capturas serão enviadas automaticamente.
Exclusão: o link "Delete" do ShareX para cada upload abre nossa página de exclusão no navegador (o delete_url de uso único do upload), então você pode remover uma captura direto do histórico do ShareX. Você também pode excluir uploads em Minha conta. Baixou a configuração antes de outubro de 2026? Baixe de novo para ter esse recurso.
Flameshot (Linux)
Um pequeno script de shell que executa flameshot gui, envia a captura e copia o link para a área de transferência. Associe-o a um atalho de teclado no seu ambiente de desktop no lugar do atalho padrão do Flameshot.
Baixar 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)
Um script PowerShell para o destino integrado External command do Greenshot. Compatível com o Windows PowerShell 5.1 que já vem no Windows, sem instalar nada extra.
Baixar 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 fóruns
Adicione um botão "Enviar imagem" de verdade ao lado do editor de posts do seu fórum. Cada um envia pelo mesmo endpoint /api documentado acima e insere BBCode no cursor - sem outra aba, sem copiar e colar manualmente.
Use sua chave só para upload, não a sua chave de API, abaixo. Cada plugin exibe a chave no código-fonte da página de todo visitante, e a chave só para upload (Minha conta > aba API) só consegue enviar arquivos - ela não lista nem exclui seus uploads, mesmo que alguém a copie da página.
Os uploads de fóruns são privados por padrão: a imagem funciona no post, mas o YourImageShare não cria uma página própria para ela (sem comentários, reações ou anúncios). Cada plugin tem uma opção para mudar para unlisted se você também quiser uma página para quem tiver o link.
phpBB
Uma extensão de verdade para phpBB 3.2/3.3. Descompacte em ext/, ative em Customise > Manage extensions e substitua YOUR_UPLOAD_ONLY_KEY no arquivo de eventos de template da extensão pela sua chave só para upload.
SMF (Simple Machines Forum)
Um pacote de verdade para SMF - instale em Admin > Package Manager e substitua YOUR_UPLOAD_ONLY_KEY em Sources/yis_forumupload.php pela sua chave só para upload.
MyBB
Um plugin de verdade para MyBB 1.8. Copie para inc/plugins/, ative em Configuration > Plugins e substitua YOUR_UPLOAD_ONLY_KEY no arquivo do plugin pela sua chave só para upload.
FluxBB, PunBB & ZetaBoards
Esses não têm um sistema formal de plugins, então é um pequeno trecho colado diretamente no seu template (FluxBB/PunBB) ou no Admin CP (ZetaBoards) - instruções completas de copiar e colar para cada um:
Instruções do FluxBB Instruções do PunBB Instruções do ZetaBoards
Plugin para WordPress
Transfira sua Biblioteca de mídia para o YourImageShare em vez do disco local. Os novos uploads de imagem/vídeo passam automaticamente pelo mesmo endpoint /api documentado acima, o arquivo local (e todos os tamanhos de miniatura gerados) é excluído assim que o upload é confirmado, e todo link de anexo do WordPress - editor de blocos, imagens destacadas, galerias, API REST - passa a apontar para o arquivo hospedado no YourImageShare. Sem shortcode, sem mudar seu fluxo de trabalho.
- Transfira em massa uma Biblioteca de mídia existente em segundo plano (ou com
wp yis offload --all), não só os novos uploads - Imagens e vídeos já inseridos em posts continuam funcionando depois que os arquivos locais são removidos
- Miniaturas e srcset usam nossa miniatura de 280px, então espaços pequenos de imagem não carregam arquivos em tamanho original
- Arquivos de até 200MB, enviados em partes para que vídeos grandes nunca sobrecarreguem uma hospedagem compartilhada
- Restaure qualquer arquivo transferido de volta para o armazenamento local a qualquer momento
- Uma coluna na Biblioteca de mídia mostra o que foi transferido e o que ainda é local
- Os arquivos transferidos são armazenados como privados: carregam onde o seu site os usa, mas não ganham página própria no YourImageShare
Usa sua chave só para upload, não a sua chave de API. A chave de API completa, opcional, só é necessária se você quiser que os arquivos transferidos sejam excluídos do YourImageShare quando você os excluir no WordPress.
Obter no WordPress.org Baixar o ZIP
No WordPress: Plugins > Adicionar novo, pesquise por YourImageShare Media Offload, depois Instalar e Ativar.
Atalho para iPhone & iPad
Envie pelo menu de compartilhamento de qualquer app - Fotos, Arquivos, Safari, uma captura de tela - e receba o link na área de transferência. Sem app para instalar e sem cadastro.
Para criá-lo você mesmo no app Atalhos (cerca de dois minutos):
- Novo atalho, com o nome "Upload to YourImageShare". Nos detalhes, ative Show in Share Sheet e aceite imagens e mídia.
- Adicione Get Contents of URL: URL
https://yourimageshare.com/api/widget, métodoPOST, corpo da requisição Form com dois campos:uploads(File) = Shortcut Input eclient(Text) =ios-shortcut. - Adicione Get Dictionary Value para
datae outro parasrc- esse é o link direto. - Adicione Copy to Clipboard e Show Notification ("Link copied").
Sem chave, os uploads são anônimos e não listados, com um limite diário. Adicione um cabeçalho X-API-Key com sua chave só para upload (Minha conta > API) para enviar para a sua conta. A resposta também traz delete_url se você quiser guardar um link de exclusão.
PicGo & PicList
O PicGo e o PicList enviam imagens coladas ou arrastadas em editores de Markdown - Typora, VS Code, Obsidian, Joplin - e colocam o link no seu texto. Nosso plugin transforma o YourImageShare em uma das hospedagens de imagens deles.
- No PicGo ou PicList: Plugins, pesquise
yourimageshare, instale e escolha YourImageShare como serviço de upload. Linha de comando:picgo install yourimageshare - Ou baixe o plugin e importe como plugin local (descompacte antes)
- Configurações: chave só para upload (opcional - vazia = uploads anônimos e não listados), visibilidade e se deve retornar o link direto da imagem (para Markdown) ou o link da página
- O link retornado continua funcionando quando imagens grandes são otimizadas para WebP depois
Bot do Telegram
Gere um link para uma foto, vídeo ou GIF sem sair do Telegram. Envie para @YourImageShare_bot e o link volta na hora - sem cadastro e sem chave de API. O bot envia pelo mesmo endpoint /api documentado acima.
- Envie uma foto, vídeo, GIF ou um arquivo de imagem ou vídeo; um álbum de até 10 volta em uma única resposta
- Em um grupo, responda
/linka uma foto ou vídeo e o bot publica o link para todos /autodeletefaz seus próximos uploads se excluírem sozinhos após 1 hora, 1 dia, 1 semana ou 30 dias- Todo resultado tem um botão Excluir que só funciona para quem enviou o arquivo
- Os links são não listados: só quem tem o link pode ver o arquivo
- O bot responde no idioma do seu Telegram quando o site está disponível nele
Mantenha a qualidade original: o Telegram comprime fotos enviadas do jeito normal. Envie-as como arquivo (📎 → Arquivo) e o original é enviado. O Telegram permite que bots busquem arquivos de até 20 MB, então envie arquivos maiores pelo site.
Bot do Discord
Transforme qualquer imagem, GIF ou vídeo do Discord em um link permanente. Os links de anexos do próprio Discord deixam de funcionar depois de um tempo; os links do YourImageShare, não. Sem cadastro e sem chave de API. O bot envia pelo mesmo endpoint /api documentado acima.
/uploadcom um arquivo: exclusão automática opcional após 1, 7 ou 30 dias e only_me para mostrar o link só para você- Clique com o botão direito em uma mensagem → Apps → Rehost on YourImageShare para reenviar até 6 imagens ou vídeos dela em uma única resposta
- Adicione a um servidor ou à sua própria conta para usar em qualquer chat ou DM
- Todo resultado tem um botão Excluir que só funciona para quem enviou o arquivo
- Os links são não listados: só quem tem o link pode ver o arquivo
GitHub Action para Playwright & Cypress
Quando testes de ponta a ponta falham em um pull request, veja o motivo sem baixar zips de artefatos. A action envia as capturas de tela das falhas e as diferenças visuais e as mostra como imagens em um único comentário do pull request, atualizado a cada execução.
- Funciona com Playwright e Cypress, e descobre sozinha qual dos dois o projeto usa
- Comparações visuais que falham aparecem como Expected, Actual e Diff, com um link para um controle deslizante de antes/depois (
toHaveScreenshotdo Playwright; no Cypress, os plugins cypress-image-diff-js e cypress-visual-regression) - O comentário muda para "all tests passed" quando os testes são corrigidos; o mesmo relatório vai para o resumo do job
- As capturas são privadas (só os arquivos de imagem, sem página) e são excluídas após 30 dias por padrão
- Precisa da sua chave só para upload como o secret de repositório
YOURIMAGESHARE_API_KEY; nunca faz o seu build falhar
- uses: yourimageshare/playwright-pr-screenshots@v1
if: always()
with:
api-key: ${{ secrets.YOURIMAGESHARE_API_KEY }} Projetos da comunidade
Algumas das melhores integrações do YourImageShare são feitas por quem o usa. Estes projetos foram criados por membros da comunidade com a API pública documentada acima. Eles são mantidos pelos próprios autores, então, para dúvidas ou relatos de bugs, entre em contato com o autor pela página do projeto.
- YourImageShare Uploads for FlatBB - um plugin para o fórum FlatBB criado por madromas (MadWay Inc.).
- Adiciona um botão de upload ao editor de posts do FlatBB: escolha uma ou mais imagens ou vídeos e o Markdown é inserido no cursor
- Insere cada upload como uma miniatura clicável, uma imagem em tamanho original ou um link simples (vídeos como link)
- Os uploads passam pelo servidor do seu fórum com uma chave de API só para upload, então a chave nunca chega aos navegadores dos visitantes
- Os arquivos ficam hospedados no YourImageShare, não no disco do seu fórum, com uma visibilidade padrão à sua escolha (privada, não listada ou pública)
- Funciona junto com o uploader do próprio FlatBB, com um limite de tamanho de arquivo separado
Obrigado
Um grande obrigado a todos que criam com o YourImageShare e compartilham seu trabalho com os outros. Os projetos da comunidade levam o YourImageShare a lugares que nunca alcançaríamos sozinhos. Criou algo com a API? Conte para a gente e ficaremos felizes em adicionar aqui.
Do blog
Guias e passo a passo para desenvolvedores
- Envie capturas de tela na hora com ShareX, Flameshot ou Greenshot
- Adicione um botão de upload de imagens de verdade ao seu fórum phpBB, SMF ou MyBB
- Como usar o MCP: conecte o Claude, o ChatGPT e agentes de IA ao YourImageShare
- YourImageShare Capture: extensão de captura de tela para Chrome e Firefox
- Transfira sua Biblioteca de mídia do WordPress para uma hospedagem de imagens grátis
- Bot do YourImageShare para Telegram: gere um link para qualquer foto ou vídeo
Pronto para testar?
Obter sua chave de API →