Разработчикам · бесплатный API
Бесплатный API хостинга изображений
Загружайте изображения из своих приложений, ботов и скриптов. Один запрос возвращает прямую ссылку, HTML, BBCode и Markdown.
Получить ключ APIАутентификация
Создайте ключ в разделе Панель управления → Настройки → Ключи API. Передавайте его с каждым запросом:
Authorization: Bearer YOUR_API_KEYХраните ключи на своём сервере. Любой, у кого есть ключ, может загружать изображения в ваш аккаунт и удалять их.
Загрузка изображения
POST /api/v1/upload
| Поле | Описание |
|---|---|
| image | Файл изображения (multipart), до 4 МБ |
| url | Вместо файла — публичный URL изображения для скачивания, до 32 МБ |
| name | Необязательное название для страницы изображения |
| expiresIn | Необязательное автоудаление: 1h (1 час), 1d (1 день), 1w (1 неделя), 1m (1 месяц), 6m (6 месяцев) |
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"])Ответ (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
}
}Получение и удаление изображения
Работает для изображений, принадлежащих аккаунту владельца ключа. GET также возвращает created_at и 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"Лимиты и ошибки
Каждый ключ может загружать 100 изображений в час и выполнять 1000 других запросов в час. Каждый ответ содержит заголовки X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset. Ошибки возвращаются в виде {"success": false, "error": "..."}.
| Статус | Значение |
|---|---|
| 400 | Нет изображения, неподдерживаемый файл, файл слишком большой или URL, который не удаётся скачать |
| 401 | Ключ API не указан, неизвестен или отозван |
| 404 | Изображение не найдено или не принадлежит аккаунту владельца ключа |
| 429 | Достигнут лимит запросов; см. заголовок X-RateLimit-Reset |
| 500 | Что-то пошло не так на нашей стороне; повторите попытку позже |
Без программирования
- Плагин загрузки для форумов добавляет кнопку загрузки в phpBB, MyBB, SMF и XenForo.
- Конфигурация ShareX автоматически загружает каждый скриншот в Windows.
Вопросы об API
API ImgShareHub бесплатный?
Да. В настройках аккаунта можно создать до 5 ключей. Каждый ключ может загружать 100 изображений в час.
Каков максимальный размер файла?
Файлы, отправленные прямо в запросе, могут весить до 4 МБ. Для изображений побольше, до 32 МБ, отправьте публичный URL — ImgShareHub скачает изображение сам.
Где появляются изображения, загруженные через API?
В панели управления аккаунта, которому принадлежит ключ, рядом с изображениями, загруженными через сайт.
Могут ли загруженные изображения удаляться автоматически?
Да. Задайте для expiresIn одно из значений: 1h (1 час), 1d (1 день), 1w (1 неделя), 1m (1 месяц), 6m (6 месяцев). Изображения с истёкшим сроком сразу перестают загружаться.