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.

CampoTipoObrigatórioDescrição
uploadsarquivoum destes trêsO 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.
urlstringUm 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_idstringUm arquivo enviado antes em partes para POST /api/chunk, de até 200MB.
filenamestringnãoCom upload_id: o nome original do arquivo.
expires_ininteironãoExclui 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_duplicatebooleanonãoArmazena uma nova cópia mesmo que sua conta já tenha enviado exatamente o mesmo arquivo (veja duplicate abaixo).
keep_originalbooleanonãoManté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.
visibilitystringnãounlisted (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.
titlestringnãoAté 90 caracteres, exibido na página do upload.
descriptionstringnãoAté 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"
  }
}
CampoDescrição
idO identificador único do arquivo.
typeimage ou video.
pathO 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.
srcLink direto e permanente do arquivo - sempre abre o arquivo atual, adequado para o src de um <img>/<video> e para salvar.
directA página do arquivo no YourImageShare (título, descrição, comentários, opções de compartilhamento).
thumbUma miniatura WebP de 280px de largura (em vídeos, o primeiro quadro), ou null.
width, heightTamanho de exibição em pixels (na vertical; no caso de vídeo, o tamanho do quadro), ou null se for desconhecido.
sizeTamanho do arquivo em bytes, como armazenado.
lockedtrue se o upload tem proteção por senha.
visibilityprivate, unlisted ou public (veja o campo da requisição acima).
title, descriptionComo definidos, ou null. O texto passa pela mesma moderação do site.
delete_urlApenas 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_atData e hora em ISO 8601 em que este upload será excluído automaticamente, ou null se não expira.
duplicatetrue 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:

  1. Escolha um id de upload: 32 caracteres hexadecimais aleatórios.
  2. Para cada parte, faça POST /api/chunk (multipart/form-data) com upload_id, index (começando em 0), total (número de partes) e os bytes em chunk. A resposta é {"type": "success", "chunk_size": 5242880}.
  3. Faça POST /api com upload_id e filename no lugar de uploads, 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âmetroOndeObrigatórioDescrição
pagequerynãoNú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.

JanelaLimite padrãoEscopo
Por minuto20 requisiçõespor chave de API
Por dia500 requisiçõespor chave de API completa
Por dia2.000 requisiçõespor chave só para upload (plugins que transferem bibliotecas de mídia inteiras)
Por dia2.000 requisiçõespor endereço IP
Por minuto300 partespor 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." }
StatusSignificado
401Chave de API ausente ou inválida.
403A conta ou o seu IP atual foi banido do envio de arquivos.
404Nenhum upload correspondente a esse id nesta conta (consultar, alterar, excluir).
413A requisição passa de 100MB. Envie o arquivo em partes (POST /api/chunk) ou um link para ele em url (até 200MB).
422Falha 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).
429Limite de uso excedido - veja Limites de uso acima.
500Algo 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.

Baixar YourImageShare.sxcu

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.

Baixar para phpBB

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.

Baixar para SMF

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.

Baixar para MyBB

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.

Botão de upload para qualquer site

Dê aos seus visitantes um botão de "Upload" em qualquer site - um formulário de comentários, uma página de suporte, um fórum para o qual não temos plugin, um site estático. Cole duas linhas; sem cadastro e sem 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>

Os dois atributos são opcionais: sem eles, o botão mostra os links com um botão Copiar. A caixa de upload é montada em torno do link.

  • Os uploads acontecem na própria página: clique no botão, solte arquivos sobre ele ou cole uma captura de tela nele - vários arquivos de uma vez, com barra de progresso e miniatura
  • Imagens coladas ou soltas direto no campo indicado em data-target (qualquer textarea, input ou caixa editável) também são enviadas, e os links são adicionados a esse campo; sem um alvo, eles aparecem sob o botão com um botão Copiar
  • data-format: url (link direto do arquivo, o padrão), page, bbcode, html ou markdown; data-label muda o texto do botão
  • data-key (opcional): sua chave só para upload (Minha conta > API). Os uploads vão então para a sua conta, sob os seus próprios limites. Sem chave, os uploads são anônimos e não listados, com um limite diário por visitante e por site
  • Desenvolvedores podem escutar o evento yis:upload na caixa de upload: event.detail.item contém {id, type, page, url, thumb}
  • Arquivos de até 95 MB pelo botão (os maiores, no site). Nossa moderação e nossos termos valem normalmente; cada visitante recebe o próprio link de exclusão

O botão é desenhado em uma caixa isolada própria, então o CSS do seu site não consegue quebrá-lo. O pequeno link "Image and video hosting by YourImageShare" continua visível dentro da caixa de upload.

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

  1. Novo atalho, com o nome "Upload to YourImageShare". Nos detalhes, ative Show in Share Sheet e aceite imagens e mídia.
  2. Adicione Get Contents of URL: URL https://yourimageshare.com/api/widget, método POST, corpo da requisição Form com dois campos: uploads (File) = Shortcut Input e client (Text) = ios-shortcut.
  3. Adicione Get Dictionary Value para data e outro para src - esse é o link direto.
  4. 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

Baixar o plugin do PicGo

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 /link a uma foto ou vídeo e o bot publica o link para todos
  • /autodelete faz 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.

Abrir @YourImageShare_bot no Telegram

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.

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

Adicionar o YourImageShare ao Discord

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

Guia de configuração no GitHub

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

    Código-fonte no GitHub · Página no FlatBB Marketplace

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

Pronto para testar?

Obter sua chave de API →