</> API ドキュメント

imgx のREST APIを使って、アプリケーションにファイル共有機能を統合できます。
画像・動画・ZIPに対応。全エンドポイントでCORS対応済み。認証にはAPIキーを使用します。

認証

APIキーはHTTPヘッダーまたはPOSTパラメータで送信します。APIキーは管理者に発行を依頼してください。

# ヘッダー方式(推奨) X-API-Key: your_api_key_here # パラメータ方式 api_key=your_api_key_here

1. ファイルのアップロード

POST /api/upload.php

1つまたは複数のファイルをアップロードします。画像・動画・ZIPに対応。
ZIPファイルは40MBまで、その他は50MBまで。

パラメータ (multipart/form-data)

名前必須説明
files[]はいアップロードするファイル(複数可)。file でも可。
api_key任意APIキー。省略時はゲストアップロード。
visibility任意public(公開)または unlisted(限定)。デフォルト: public

対応ファイル形式

種類対応形式サイズ上限
画像JPEG, PNG, GIF, WebP, AVIF50 MB
動画MP4, WebM, MOV50 MB
ZIPZIP40 MB

使用例 (curl)

# 画像をアップロード curl -X POST http://imgx.site/api/upload.php \ -H "X-API-Key: your_api_key" \ -F "files[]=@/path/to/image.jpg" \ -F "visibility=public" # ZIPファイルをアップロード curl -X POST http://imgx.site/api/upload.php \ -H "X-API-Key: your_api_key" \ -F "files[]=@/path/to/archive.zip" # 複数ファイルを同時アップロード curl -X POST http://imgx.site/api/upload.php \ -H "X-API-Key: your_api_key" \ -F "files[]=@image1.jpg" \ -F "files[]=@image2.png"

使用例 (JavaScript)

const fd = new FormData(); fd.append('files[]', fileInput.files[0]); fd.append('visibility', 'public'); const response = await fetch('http://imgx.site/api/upload.php', { method: 'POST', headers: { 'X-API-Key': 'YOUR_KEY' }, body: fd }); const data = await response.json(); console.log(data);

使用例 (Python)

import requests url = "http://imgx.site/api/upload.php" headers = {"X-API-Key": "YOUR_KEY"} files = {"files[]": open("image.jpg", "rb")} data = {"visibility": "public"} r = requests.post(url, headers=headers, files=files, data=data) print(r.json())

レスポンス例

{ "success": true, "results": [ { "id": "a1b2c3d", "ext": "jpg", "url": "http://imgx.site/i/a1b2c3d.jpg", "page_url": "http://imgx.site/p/a1b2c3d", "image_url": "http://imgx.site/i/a1b2c3d.jpg", "delete_url": "http://imgx.site/delete/a1b2c3d/abc123...", "expires_at": null } ] }

2. ファイル情報の取得

GET /api/info.php?id={file_id}

アップロード済みファイルのメタデータを取得します。認証不要。

パラメータ

名前必須説明
idはいファイルID(7文字の英数字)

レスポンス例

{ "id": "a1b2c3d", "image_url": "http://imgx.site/i/a1b2c3d.jpg", "page_url": "http://imgx.site/p/a1b2c3d", "size": 1048576, "mime": "image/jpeg", "ext": "jpg", "created_at": 1708200000, "views": 42, "visibility": "public", "expires_at": null, "owner": { "username": "user1", "display_name": "ユーザー1", "profile_url": "/u/user1" } }

3. ファイルの削除

DELETE /api/delete.php?id={id}&token={token}

IDと削除トークンを使用してファイルを完全に削除します。削除トークンはアップロード時のレスポンスに含まれます。

パラメータ

名前必須説明
idはいファイルID
tokenはい削除トークン(32文字の16進数)

4. レート制限

IPアドレスごとに1時間あたり160回のアップロードに制限されています。制限を超えるとHTTP 500エラーが返されます。

5. ステータスコード

200成功
400不正なリクエスト(パラメータ不足・ファイルなし)
403アクセス拒否(IPバン・ユーザーバン・無効なトークン)
404ファイルが見つかりません
405メソッド不許可
500サーバーエラー(レート制限超過含む)

6. エラーレスポンス

{ "success": false, "error": "エラーメッセージ" }