PreviewFile IconPreviewFile.dev

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"

リクエストパラメータ

フィールドタイプ必須デフォルト説明
urlstringはい-プレビューする元のURL
ttlMinutesnumberいいえ60リンクの有効時間(分)(5-1440)
watermarkstringいいえnullウォーターマークテキスト(最大120文字)
noDownloadbooleanいいえfalseダウンロード機能を無効化
oneTimebooleanいいえ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
  }
}

レスポンスフィールド:

フィールドタイプ説明
shortUrlstring8文字の短縮URL識別子
previewUrlstring共有用の完全なプレビューURL
expireAtstringISO 8601期限タイムスタンプ
statusstringプレビューステータス:READY、PENDINGまたはEXPIRED
ttlMinutesnumberリンク有効期間
watermarkstring | null設定されている場合のウォーターマークテキスト
noDownloadbooleanダウンロード制限ステータス
oneTimeboolean一回限りアクセス制限

エラーレスポンス(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を表示されない

On this page