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."
}

エンドポイント

得る /v1/ユーザー
現在のユーザーを取得する

トークン所有者のアカウント、アクティブなプラン、および現在のストレージ使用量を返します。

リクエスト
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
  }
}
得る /v1/ファイル
ファイルのリストを表示する

完成したファイルを最新のものから順にリストします。カーソルでページ分割: 返されたものを渡します 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
}
得る /v1/フォルダー
フォルダーの一覧表示

アカウント上のすべてのフォルダー、最初に最上位フォルダー。を使用します。 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" }
  ]
}
役職 /v1/フォルダー
フォルダーを作成する

フォルダーを作成します。 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"
}
役職 /v1/アップロード
アップロードを作成する

アップロードのチュートリアル — アップロードは 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…"
}
⚠ アップロードをチャンク化します — 100 MB を超えるファイルの場合に必要です。 ストレージ サーバーは、本文が次の値を超える単一のリクエストを拒否する CDN の背後にあります。 ~100MB413 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();
役職 /v1/uploads/{uuid}/confirm
重複排除を確認する

の第 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…"
}
得る /v1/files/{uuid}
ファイル情報を取得する

所有する単一ファイルのメタデータを返します。

リクエスト
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
}
得る /v1/files/{uuid}/ステータス
アップロードステータスを確認する

アップロードの状態を調べる軽量のプローブ: 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…"
}
得る /v1/files/{uuid}/download
直接ダウンロード リンクを取得する

所有するファイルのすぐに使用できる直接ダウンロード 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
}
役職 /v1/files/{uuid}/名前変更
ファイルの名前を変更する

所有するファイルの表示名を変更します。共有リンク (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…"
}
役職 /v1/files/{uuid}/move
ファイルを移動する

自分が所有するファイルを自分のフォルダの 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
}
役職 /v1/files/{uuid}/コピー
共有ファイルをコピーする

ファイルを置きます 他の誰か あなた自身の共有リンクを使用して、あなた自身のアカウントに共有します — こちら {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
}
役職 /v1/files/{uuid}/delete
ファイルを削除する

自分が所有するファイルをソフト削除します。すぐにダウンロードできなくなり、そのバイトはすぐに回収されます。

リクエスト
curl -X POST https://api.fast2share.com/v1/files/3f1c…-…-…/delete \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
応答
{ "ok": true, "uuid": "3f1c…-…-…" }