API概要
シンプルなREST APIでセキュアなファイルプレビューリンクをプログラム的に生成します。
クイックスタート
PreviewFile.devは、URLからプレビューリンクを生成するシンプルなREST APIを提供します。1回のAPI呼び出しでセキュアで時間制限付きのプレビューリンクを作成できます。
110+サポートファイル形式: PDF、Office文書、画像、動画、コードファイルなどをプレビュー。完全なリストはサポート形式をご覧ください。
POST /api/u
URLからプレビューリンクを作成:
curl -X POST https://previewfile.dev/api/u \
-H "Content-Type: application/json" \
-H "x-api-key: $API_KEY" \
-d '{
"url": "https://example.com/document.pdf",
"ttlMinutes": 120,
"watermark": "Confidential",
"noDownload": true,
"oneTime": false
}'レスポンス:
{
"success": true,
"data": {
"shortUrl": "a1b2c3d4",
"previewUrl": "https://previewfile.dev/p/a1b2c3d4",
"expireAt": "2025-10-02T15:30:00Z",
"status": "READY",
"ttlMinutes": 120,
"watermark": "Confidential",
"noDownload": true,
"oneTime": false
}
}APIはセキュリティと可読性のためにnanoid(8)で短いリンクを自動生成します。
APIリファレンス
認証
x-api-keyヘッダーにAPIキーを含める:
x-api-key: YOUR_API_KEY安定版 OpenAPI(/api/v1)
長期的な統合にはバージョン付きエンドポイントの利用を推奨します:
- OpenAPI schema:
GET /api/v1/openapi.json - ファイルアップロード(multipart):
POST /api/v1/upload - プレビューメタデータ取得:
GET /api/v1/previews/{shortUrl} - ファイルアクセス URL 取得(直リンクまたは S3 presigned):
GET /api/v1/previews/{shortUrl}/file-url
アップロード例
curl -X POST https://previewfile.dev/api/v1/upload \
-H "x-api-key: $API_KEY" \
-F "file=@./document.pdf" \
-F "ttlMinutes=60" \
-F "watermark=Confidential" \
-F "noDownload=true" \
-F "oneTime=false"ファイルアクセス URL の取得
curl -X GET https://previewfile.dev/api/v1/previews/a1b2c3d4/file-url \
-H "x-api-key: $API_KEY"リクエストパラメータ
| フィールド | タイプ | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
url | string | はい | - | プレビューする元のURL |
ttlMinutes | number | いいえ | 60 | リンクの有効時間(分)(5-1440) |
watermark | string | いいえ | null | ウォーターマークテキスト(最大120文字) |
noDownload | boolean | いいえ | false | ダウンロード機能を無効化 |
oneTime | boolean | いいえ | false | 初回表示後に期限切れ |
レスポンス
成功レスポンス(200):
{
"success": true,
"data": {
"shortUrl": "a1b2c3d4",
"previewUrl": "https://previewfile.dev/p/a1b2c3d4",
"expireAt": "2025-10-02T15:30:00Z",
"status": "READY",
"ttlMinutes": 120,
"watermark": "Confidential",
"noDownload": true,
"oneTime": false
}
}レスポンスフィールド:
| フィールド | タイプ | 説明 |
|---|---|---|
shortUrl | string | 8文字の短縮URL識別子 |
previewUrl | string | 共有用の完全なプレビューURL |
expireAt | string | ISO 8601期限タイムスタンプ |
status | string | プレビューステータス:READY、PENDINGまたはEXPIRED |
ttlMinutes | number | リンク有効期間 |
watermark | string | null | 設定されている場合のウォーターマークテキスト |
noDownload | boolean | ダウンロード制限ステータス |
oneTime | boolean | 一回限りアクセス制限 |
エラーレスポンス(4xx/5xx):
{
"success": false,
"error": "エラーメッセージ"
}使用例
cURL
curl -X POST https://previewfile.dev/api/u \
-H "Content-Type: application/json" \
-H "x-api-key: $API_KEY" \
-d '{
"url": "https://example.com/document.pdf",
"ttlMinutes": 120,
"watermark": "Confidential",
"noDownload": true,
"oneTime": false
}'Node.js (Fetch)
const response = await fetch('https://previewfile.dev/api/u', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
},
body: JSON.stringify({
url: 'https://example.com/document.pdf',
ttlMinutes: 120,
watermark: 'Confidential',
noDownload: true,
oneTime: false
})
});
const data = await response.json();
console.log(data.data.previewUrl);Python (Requests)
import requests
response = requests.post(
'https://previewfile.dev/api/u',
headers={
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
},
json={
'url': 'https://example.com/document.pdf',
'ttlMinutes': 120,
'watermark': 'Confidential',
'noDownload': True,
'oneTime': False
}
)
data = response.json()
print(data['data']['previewUrl'])機能
- 110+ファイル形式: PDF、Office文書、画像、動画、コードなどのネイティブブラウザプレビュー(完全リストを参照)
- 短縮URL: セキュリティのためにnanoidで自動生成される8文字識別子
- 時間制限: 5分から24時間まで有効期限を設定
- ウォーターマーク: プレビューにカスタムテキストオーバーレイを追加
- ダウンロード制御: ファイルダウンロードをオプションで無効化
- 一回限りリンク: 初回アクセス後にリンクを期限切れにする
- 元URL非表示: 受信者は元のファイルURLを表示されない