APIドキュメント
シンプルな JSON REST API を介してプログラムでファイルのアップロードと管理を自動化します。
すべてのリクエストとレスポンスは、 application/json。ベース URL は次のとおりです。
https://api.fast2share.com
認証
パネルでトークンを作成します。
設定→APIトークン。のリクエストごとに送信します。
Authorization ヘッダ。トークンは作成時に一度表示されます - 保存します
安全に。各トークンはあなたのアカウントに代わって機能し、あなた自身のファイルのみを参照します。
Authorization: Bearer f2s_YOUR_TOKEN
エラー
エラーでは標準の HTTP ステータス コードが使用され、次のような JSON 本文が返されます。
error メッセージ。一般的なコード: 401 (トークンが欠落している/無効です)、
403 (割り当てまたはプランの制限)、 404 (ファイルが見つかりません)、
409 (競合 — 例: ファイルはすでにアカウント内にあります。を参照してください。
POST /v1/uploads), 422 (不正なリクエスト本文)、
503 (使用可能なストレージサーバーはありません)。
{
"error": "Invalid or revoked API token."
}エンドポイント
トークン所有者のアカウント、アクティブなプラン、および現在のストレージ使用量を返します。
curl https://api.fast2share.com/v1/user \ -H "Authorization: Bearer f2s_YOUR_TOKEN"
{
"id": 42,
"email": "[email protected]",
"display_name": "You",
"plan": {
"name": "premium-monthly",
"max_file_size": 5368709120,
"storage_quota": 107374182400
},
"usage": {
"used_bytes": 2147483648,
"file_count": 12,
"remaining_bytes": 105226698752
}
}完成したファイルを最新のものから順にリストします。カーソルでページ分割: 返されたものを渡します next_before として ?before= 次のページのために。名前でフィルタリングします ?q=.
curl "https://api.fast2share.com/v1/files?before=0&q=report" \ -H "Authorization: Bearer f2s_YOUR_TOKEN"
{
"data": [
{
"uuid": "3f1c…-…-…",
"name": "report.pdf",
"size": 184320,
"mime": "application/pdf",
"sha256": "9f86d0…",
"status": "completed",
"downloads": 3,
"share_url": "https://…/f/3f1c…",
"created_at": "2026-07-01T10:00:00+00:00",
"expires_at": null
}
],
"next_before": 1057
}ファイルを名前で検索します。 ?q= は必須であり、大文字と小文字を区別せずにファイル名の任意の場所に一致します。リストと同じカーソルのページネーション (?before=)、範囲を指定しない限り、検索はすべてのフォルダーにまたがります。 ?folder_id= (0 = ルートにあるファイル)。
curl "https://api.fast2share.com/v1/files/search?q=invoice" \ -H "Authorization: Bearer f2s_YOUR_TOKEN"
{
"query": "invoice",
"data": [
{
"uuid": "3f1c…-…-…",
"name": "invoice-2026-07.pdf",
"size": 184320,
"mime": "application/pdf",
"status": "completed",
"share_url": "https://…/f/3f1c…",
"created_at": "2026-07-01T10:00:00+00:00"
}
],
"next_before": null
}アカウント上のすべてのフォルダー、最初に最上位フォルダー。を使用します。 id として folder_id ファイルを移動またはコピーするとき。
curl https://api.fast2share.com/v1/folders \ -H "Authorization: Bearer f2s_YOUR_TOKEN"
{
"data": [
{ "id": 12, "name": "Invoices", "parent_id": null, "created_at": "2026-06-02T09:12:00+00:00" },
{ "id": 19, "name": "2026", "parent_id": 12, "created_at": "2026-06-02T09:13:00+00:00" }
]
}フォルダーを作成します。 name は必須であり、アカウント上で一意である必要があります (大文字と小文字は区別されません) - 衝突の答え 409。合格 parent_id ネストするには: フォルダーを移動します 深さは 1 レベルのみ、親は最大でも 1 つのサブフォルダーを保持するため、それ自体がネストされている (またはすでに子を持つ) 親が応答します。 422.
curl -X POST https://api.fast2share.com/v1/folders \
-H "Authorization: Bearer f2s_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Invoices","parent_id":null}'{
"id": 12,
"name": "Invoices",
"parent_id": null,
"created_at": "2026-07-31T08:20:00+00:00"
}アップロードのチュートリアル — アップロードは 2 つのステップです バイトが行くから ストレージサーバーに直接接続する (再開可能ファイル経由 タス プロトコル);この API を通過することはありません。この呼び出しは、プラン/クォータを検証し、tus エンドポイントと署名付きのエンドポイントを返します。 upload_token.
1. POST /v1/uploads ファイル名とサイズを指定して → を返す upload_url, upload_token そして uuid (このエンドポイント)。
2. へのタスアップロードを実行します。 upload_url、メタデータを追加します token <upload_token>。どの tus クライアントでも動作します (例: tus-js-client, tusc). バイトをチャンクで送信する (8 MB 推奨): ファイル全体を含む 1 つの tus リクエストは拒否されます。 413 本文が約 100 MB を超えると、ストレージ CDN によって保護されます。
3. 投票 GET /v1/files/{uuid}/status 報告されるまで completed、返されたものを使用します share_url.
重複排除を使用して転送をスキップします (オプション)。 同じバイトがすでに保存されている場合、ファイルは即座に作成できます。何もアップロードされません。
• fingerprint = 最初の 8 MB の SHA-256 と最後の 8 MB を連結したもの(読み取り値は ≤16 MB です。ファイルが 8 MB 未満の場合は、単にファイル全体の SHA-256 であり、8 ~ 16 MB の間は 2 つの範囲が重複することなく 1 回カバーされます)。 いつもこれを送る 重複排除が必要な場合 — これにより、API はユーザーが実際にファイルを保持していることを認識するため、別のアカウントが所有するバイトがベア チェックサムで共有されることはありません。
• sha256 = フルファイル SHA-256、16 進数。指紋と一緒に送信すると、すぐに答えが得られます。 あなたのアカウントにはすでにそのファイルがあります 何も作成されずに得られるもの 409 と {"status":"exists","uuid":…,"share_url":…} 既存のコピーを指します。別のアカウントがバイトを所有している場合、そのバイトは即座にあなたと共有されます。 {"status":"completed","deduped":true,"share_url":…} — 完了しました。何もアップロードされていません。
• 大きなファイルの場合は、代わりに遅延ハッシュします。 fingerprint。の返事 {"status":"need_hash"} 一致する可能性があることを意味します - ファイルをフルハッシュして呼び出します POST /v1/uploads/{uuid}/confirm。それ以外の応答は通常のチケットです。いつものようにアップロードします。
常にアップロードするには両方のフィールドを省略します。
curl -X POST https://api.fast2share.com/v1/uploads \
-H "Authorization: Bearer f2s_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"filename":"report.pdf","size":184320,"type":"application/pdf","fingerprint":"5b41e3…","sha256":"9f86d0…"}'{
"uuid": "3f1c…-…-…",
"status": "pending",
"upload_url": "https://storage1.example.com/files/",
"upload_token": "eyJ1d….<sig>",
"protocol": "tus",
"metadata_key": "token"
}
// deduped instead — the bytes were already stored, nothing to upload:
{
"uuid": "3f1c…-…-…",
"status": "completed",
"deduped": true,
"size": 184320,
"sha256": "9f86d0…",
"share_url": "https://…/f/3f1c…"
}413 Request Entity Too Large。タス
PATCH それは 全体 したがって、ファイルが大きい場合は失敗します。キープする
各チャンクは小さい — 8 MB これは適切なデフォルトです。これにより、アップロードも行われます
接続が切断された後に再開可能。
よくある間違い:
tus-js-client デフォルトは
chunkSize: Infinity (ファイル全体に対して 1 つのリクエスト)ため、最大 100 MB を超えるアップロードになります
で失敗する 413。あなた しなければならない 明示的に設定する chunkSize:
import * as tus from "tus-js-client";
// upload_url + upload_token come from POST /v1/uploads
const upload = new tus.Upload(file, {
endpoint: upload_url,
chunkSize: 8 * 1024 * 1024, // 8 MB — REQUIRED, keep well under 100 MB
metadata: { token: upload_token },
onError: (err) => console.error(err),
onSuccess: () => console.log("done — poll /v1/files/{uuid}/status"),
});
upload.start();の第 2 ステップ fingerprint フロー: これを呼び出すのは後でのみです POST /v1/uploads 答えた {"status":"need_hash"}、フルファイル付き sha256。フィンガープリントとサイズは、アップロードの作成時に送信したものです。このリクエストからは再読み取りされません。上記と同じ 3 つの結果: すでにアカウント内にあります → 409 exists (何も保存されていません);別の場所で所有 → すぐに完了 (deduped);それ以外の場合は、指紋が単に衝突しただけで、通常の結果が得られます。 upload_url / upload_token チケット — 上記のステップ 2 と同様にアップロードします。
curl -X POST https://api.fast2share.com/v1/uploads/3f1c…-…-…/confirm \
-H "Authorization: Bearer f2s_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"sha256":"9f86d0…"}'{
"uuid": "3f1c…-…-…",
"status": "completed",
"deduped": true,
"size": 184320,
"sha256": "9f86d0…",
"share_url": "https://…/f/3f1c…"
}所有する単一ファイルのメタデータを返します。
curl https://api.fast2share.com/v1/files/3f1c…-…-… \ -H "Authorization: Bearer f2s_YOUR_TOKEN"
{
"uuid": "3f1c…-…-…",
"name": "report.pdf",
"size": 184320,
"mime": "application/pdf",
"sha256": "9f86d0…",
"status": "completed",
"downloads": 3,
"share_url": "https://…/f/3f1c…",
"created_at": "2026-07-01T10:00:00+00:00",
"expires_at": null
}アップロードの状態を調べる軽量のプローブ: pending, completed または failed。完了すると、 share_url.
curl https://api.fast2share.com/v1/files/3f1c…-…-…/status \ -H "Authorization: Bearer f2s_YOUR_TOKEN"
{
"uuid": "3f1c…-…-…",
"status": "completed",
"size": 184320,
"share_url": "https://…/f/3f1c…"
}所有するファイルのすぐに使用できる直接ダウンロード URL を作成します。リンクはバイトをすぐにストリーミングします。 ブラウザセッションは必要ありません (スクリプト/カールから使用します) 最大 5 分後に期限切れになります。アクティブな Premium サブスクリプションが必要です (管理者は常に許可されています)。
curl https://api.fast2share.com/v1/files/3f1c…-…-…/download \ -H "Authorization: Bearer f2s_YOUR_TOKEN"
{
"uuid": "3f1c…-…-…",
"name": "report.pdf",
"size": 184320,
"download_url": "https://…/d/9xA2…",
"expires_in": 300
}所有するファイルの表示名を変更します。共有リンク (uuid) は変更されないため、既に配布したリンクは引き続き機能します。変更されるのは、共有ページに表示され、ダウンロード時に送信される名前だけです。パス区切り文字と制御文字は削除されます。名前の最大文字数は 512 文字です。
curl -X POST https://api.fast2share.com/v1/files/3f1c…-…-…/rename \
-H "Authorization: Bearer f2s_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"invoice-july.pdf"}'{
"uuid": "3f1c…-…-…",
"name": "invoice-july.pdf",
"size": 184320,
"status": "completed",
"share_url": "https://…/f/3f1c…"
}自分が所有するファイルを自分のフォルダの 1 つにファイルします。送信 {"folder_id": 0} (または省略して) ルートに戻します。フォルダーは自分のものである必要があります。そうでない場合は、 404.
curl -X POST https://api.fast2share.com/v1/files/3f1c…-…-…/move \
-H "Authorization: Bearer f2s_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"folder_id":12}'{
"uuid": "3f1c…-…-…",
"name": "invoice-july.pdf",
"status": "completed",
"share_url": "https://…/f/3f1c…",
"folder_id": 12
}ファイルを置きます 他の誰か あなた自身の共有リンクを使用して、あなた自身のアカウントに共有します — こちら {uuid} です ソース ファイルの共有スラッグであり、あなたのものではありません。 バイトは転送されません: コピーは同じ保存されたオブジェクトを指すため、即座に完了し、他のファイルと同様にストレージ クォータに対してカウントされます。
ソースは公開され、完成している必要があり、その所有者がコピーを許可する必要があります。そうしないと、 403. 409 それはすでにあなたのファイルである(またはすでにあなたのアカウントにある)ことを意味します、そして 403 「十分なストレージが残っていない」場合にも対応します。オプションの本文フィールド: folder_id, is_public (デフォルトは true) および free_download (デフォルトは false)。
curl -X POST https://api.fast2share.com/v1/files/3f1c…-…-…/copy \
-H "Authorization: Bearer f2s_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"folder_id":12,"is_public":true}'{
"uuid": "8b2e…-…-…",
"name": "report.pdf",
"size": 184320,
"status": "completed",
"share_url": "https://…/f/8b2e…",
"copied": true
}自分が所有するファイルをソフト削除します。すぐにダウンロードできなくなり、そのバイトはすぐに回収されます。
curl -X POST https://api.fast2share.com/v1/files/3f1c…-…-…/delete \ -H "Authorization: Bearer f2s_YOUR_TOKEN"
{ "ok": true, "uuid": "3f1c…-…-…" }