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 APIAutenticação
Crie uma chave em Painel → Configurações → Chaves de API. Envie-a em todas as requisições:
Authorization: Bearer YOUR_API_KEYMantenha 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
| Campo | Descrição |
|---|---|
| image | Arquivo de imagem (multipart), até 4 MB |
| url | URL pública de uma imagem para buscar em vez do arquivo, até 32 MB |
| name | Título opcional, usado na página da imagem |
| expiresIn | Exclusão automática opcional: 1h (1 hora), 1d (1 dia), 1w (1 semana), 1m (1 mês), 6m (6 meses) |
curl -X POST https://imgsharehub.com/api/v1/upload \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "[email protected]" \
-F "name=Login error"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"}'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);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)
{
"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": "[](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.
curl https://imgsharehub.com/api/v1/images/a1b2c3 \
-H "Authorization: Bearer YOUR_API_KEY"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": "..."}.
| Status | Significado |
|---|---|
| 400 | Imagem ausente, arquivo não suportado, arquivo grande demais ou URL que não pode ser buscada |
| 401 | Chave de API ausente, desconhecida ou revogada |
| 404 | Imagem não encontrada ou não pertence à conta da sua chave |
| 429 | Limite de requisições atingido; veja o cabeçalho X-RateLimit-Reset |
| 500 | Algo deu errado do nosso lado; tente novamente mais tarde |
Sem precisar de código
- O plugin de envio para fóruns adiciona um botão de envio ao phpBB, MyBB, SMF e XenForo.
- A configuração para ShareX envia automaticamente cada captura de tela no Windows.
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.