Desenvolvedores · API grátis

API de hospedagem de imagens grátis

Envie imagens a partir dos seus apps, bots e scripts. Uma única requisição retorna link direto, HTML, BBCode e Markdown.

Obter uma chave de API

Autenticação

Crie uma chave em Painel → Configurações → Chaves de API. Envie-a em todas as requisições:

Cabeçalho
Authorization: Bearer YOUR_API_KEY

Mantenha as chaves no seu servidor. Qualquer pessoa com uma chave pode enviar e excluir imagens da sua conta.

Enviar uma imagem

POST /api/v1/upload

CampoDescrição
imageArquivo de imagem (multipart), até 4 MB
urlURL pública de uma imagem para buscar em vez do arquivo, até 32 MB
nameTítulo opcional, usado na página da imagem
expiresInExclusão automática opcional: 1h (1 hora), 1d (1 dia), 1w (1 semana), 1m (1 mês), 6m (6 meses)
curl: enviar um arquivo
curl -X POST https://imgsharehub.com/api/v1/upload \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]" \
  -F "name=Login error"
curl: enviar a partir de uma URL
curl -X POST https://imgsharehub.com/api/v1/upload \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/photo.jpg", "expiresIn": "1w"}'
Node.js
import { readFile } from "node:fs/promises";

const form = new FormData();
form.append("image", new Blob([await readFile("photo.jpg")]), "photo.jpg");

const res = await fetch("https://imgsharehub.com/api/v1/upload", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.IMGSHAREHUB_KEY}` },
  body: form,
});
const { data } = await res.json();
console.log(data.direct_url);
Python
import os, requests

res = requests.post(
    "https://imgsharehub.com/api/v1/upload",
    headers={"Authorization": f"Bearer {os.environ['IMGSHAREHUB_KEY']}"},
    files={"image": open("photo.jpg", "rb")},
)
print(res.json()["data"]["direct_url"])

Resposta (201)

JSON
{
  "success": true,
  "data": {
    "id": "a1b2c3",
    "url": "https://imgsharehub.com/a1b2c3",
    "direct_url": "https://imgsharehub.com/i/a1b2c3.webp",
    "html": "<a href=\"https://imgsharehub.com/a1b2c3\" target=\"_blank\"><img src=\"https://imgsharehub.com/i/a1b2c3.webp\" alt=\"Image hosted on ImgShareHub\" /></a>",
    "bbcode": "[url=https://imgsharehub.com/a1b2c3][img]https://imgsharehub.com/i/a1b2c3.webp[/img][/url]",
    "markdown": "[![Image](https://imgsharehub.com/i/a1b2c3.webp)](https://imgsharehub.com/a1b2c3)",
    "width": 1920,
    "height": 1080,
    "size": 284512,
    "private": false,
    "expires_at": null
  }
}

Obter ou excluir uma imagem

Funciona para imagens que pertencem à conta da chave. O GET também retorna created_at e views.

Obter
curl https://imgsharehub.com/api/v1/images/a1b2c3 \
  -H "Authorization: Bearer YOUR_API_KEY"
Excluir
curl -X DELETE https://imgsharehub.com/api/v1/images/a1b2c3 \
  -H "Authorization: Bearer YOUR_API_KEY"

Limites e erros

Cada chave pode enviar 100 imagens por hora e fazer 1.000 outras requisições por hora. Toda resposta inclui os cabeçalhos X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset. Os erros retornam {"success": false, "error": "..."}.

StatusSignificado
400Imagem ausente, arquivo não suportado, arquivo grande demais ou URL que não pode ser buscada
401Chave de API ausente, desconhecida ou revogada
404Imagem não encontrada ou não pertence à conta da sua chave
429Limite de requisições atingido; veja o cabeçalho X-RateLimit-Reset
500Algo deu errado do nosso lado; tente novamente mais tarde

Sem precisar de código

Perguntas sobre a API

A API do ImgShareHub é grátis?

Sim. Crie até 5 chaves nas configurações da sua conta. Cada chave pode enviar 100 imagens por hora.

Qual é o tamanho máximo de arquivo?

Arquivos enviados diretamente na requisição podem ter até 4 MB. Para imagens maiores, de até 32 MB, envie a URL pública da imagem e o ImgShareHub faz o download.

Onde aparecem as imagens enviadas pela API?

No painel da conta dona da chave, junto com as imagens que você envia pelo site.

As imagens enviadas podem expirar automaticamente?

Sim. Defina expiresIn com um destes valores: 1h (1 hora), 1d (1 dia), 1w (1 semana), 1m (1 mês), 6m (6 meses). Imagens expiradas deixam de carregar imediatamente.