開発者向け・無料API
無料の画像ホスティングAPI
アプリ、ボット、スクリプトから画像をアップロードできます。1回のリクエストで直接リンク、HTML、BBCode、Markdownが返されます。
APIキーを取得認証
ダッシュボード → 設定 → APIキーでキーを作成し、すべてのリクエストに付けて送信します:
ヘッダー
Authorization: Bearer YOUR_API_KEYキーはサーバー側で管理してください。キーを知っている人は誰でも、あなたのアカウントに画像をアップロードしたり、削除したりできます。
画像をアップロード
POST /api/v1/upload
| フィールド | 説明 |
|---|---|
| image | 画像ファイル(multipart)、最大4 MB |
| url | 代わりに取得する公開画像のURL、最大32 MB |
| name | 任意のタイトル。画像ページで使用されます |
| expiresIn | 任意の自動削除:1h (1時間), 1d (1日), 1w (1週間), 1m (1か月), 6m (6か月) |
curl:ファイルをアップロード
curl -X POST https://imgsharehub.com/api/v1/upload \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "[email protected]" \
-F "name=Login error"curl: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"])レスポンス(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": "[](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"制限とエラー
各キーでは1時間あたり100枚の画像アップロードと、その他のリクエストを1時間あたり1,000回まで行えます。すべてのレスポンスに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に関する質問
ImgShareHub APIは無料ですか?
はい。アカウント設定からキーを最大5個まで作成できます。各キーで1時間あたり100枚の画像をアップロードできます。
ファイルサイズの上限は?
リクエストで直接送信するファイルは最大4 MBです。32 MBまでの大きな画像は、公開画像のURLを送信すればImgShareHubがダウンロードします。
APIでアップロードした画像はどこに表示されますか?
キーを所有するアカウントのダッシュボードに、Webサイトでアップロードした画像と一緒に表示されます。
アップロードした画像を自動で削除できますか?
はい。expiresInに次のいずれかを指定してください:1h (1時間), 1d (1日), 1w (1週間), 1m (1か月), 6m (6か月)。有効期限が切れた画像はすぐに表示されなくなります。