Dokumentasi API

Otomatiskan unggahan dan kelola file Anda secara terprogram melalui JSON REST API sederhana. Semua permintaan dan tanggapan adalah application/json. URL dasarnya adalah:

https://api.fast2share.com

Masuk untuk membuat token

Otentikasi

Buat token di panel Anda di bawah Pengaturan → Token API. Kirimkan pada setiap permintaan di Authorization tajuk. Token ditampilkan satu kali saat pembuatan — simpanlah dengan aman. Setiap token bertindak atas nama akun Anda dan hanya melihat file Anda sendiri.

Tajuk
Authorization: Bearer f2s_YOUR_TOKEN

Kesalahan

Kesalahan menggunakan kode status HTTP standar dan mengembalikan isi JSON dengan error pesan. Kode umum: 401 (token hilang/tidak valid), 403 (batas kuota atau paket), 404 (berkas tidak ditemukan), 409 (konflik — misalnya file sudah ada di akun Anda, lihat POST /v1/uploads), 422 (badan permintaan buruk), 503 (tidak ada server penyimpanan yang tersedia).

{
  "error": "Invalid or revoked API token."
}

Titik akhir

MENDAPATKAN /v1/pengguna
Dapatkan pengguna saat ini

Mengembalikan akun pemilik token, paket aktif, dan penggunaan penyimpanan saat ini.

Meminta
curl https://api.fast2share.com/v1/user \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Tanggapan
{
  "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
  }
}
MENDAPATKAN /v1/files
Daftar file

Cantumkan file Anda yang sudah selesai, yang terbaru terlebih dahulu. Halaman kursor: meneruskan yang dikembalikan next_before sebagai ?before= untuk halaman berikutnya. Filter berdasarkan nama dengan ?q=.

Meminta
curl "https://api.fast2share.com/v1/files?before=0&q=report" \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Tanggapan
{
  "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
}
MENDAPATKAN /v1/folder
Daftar folder

Setiap folder di akun Anda, folder tingkat atas terlebih dahulu. Gunakan id sebagai folder_id saat memindahkan atau menyalin file.

Meminta
curl https://api.fast2share.com/v1/folders \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Tanggapan
{
  "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" }
  ]
}
POS /v1/folder
Buat folder

Membuat folder. name diperlukan dan harus unik di akun Anda (tidak peka huruf besar-kecil) — jawaban yang bentrok 409. Lulus parent_id untuk menyarangkannya: folder pergi kedalaman satu tingkat saja, dan induk menampung paling banyak satu sub-folder, sehingga induk yang bersarang (atau sudah memiliki anak) akan menjawab 422.

Meminta
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}'
Tanggapan
{
  "id": 12,
  "name": "Invoices",
  "parent_id": null,
  "created_at": "2026-07-31T08:20:00+00:00"
}
POS /v1/unggah
Buat unggahan

Panduan pengunggahan — pengunggahan dilakukan dalam dua langkah karena byte hilang langsung ke server penyimpanan (melalui resume ini protokol); mereka tidak pernah melewati API ini. Panggilan ini memvalidasi paket/kuota Anda dan mengembalikan titik akhir tus ditambah tanda tangan upload_token.

1. POST /v1/uploads dengan nama file dan ukuran → kembali upload_url, upload_token Dan uuid (titik akhir ini).
2. Lakukan upload ke upload_url, menambahkan metadata token <upload_token>. Setiap klien tus berfungsi (mis. tus-js-client, tusc). Kirim byte dalam potongan (disarankan 8 MB): satu permintaan tus yang memuat seluruh file ditolak 413 oleh CDN penyimpanan setelah isi melebihi ~100 MB.
3. Jajak Pendapat GET /v1/files/{uuid}/status sampai dilaporkan completed, lalu gunakan yang dikembalikan share_url.

Lewati transfer dengan dedup (opsional). Jika byte yang sama telah disimpan, file dapat langsung dibuat — tidak ada yang diunggah:
fingerprint = SHA-256 dari 8 MB pertama digabungkan dengan 8 MB terakhir (terbaca ≤16 MB; jika file berukuran ≤8 MB, itu hanyalah SHA-256 dari keseluruhan file, dan antara 8 dan 16 MB, kedua rentang tersebut mencakupnya satu kali, tanpa tumpang tindih). Selalu kirimkan ini bila Anda ingin dedup - ini adalah cara API mengetahui bahwa Anda benar-benar menyimpan file tersebut, sehingga byte yang dimiliki oleh akun lain tidak pernah dibagikan pada checksum kosong.
sha256 = file lengkap SHA-256, hex. Kirimkan bersama dengan sidik jari dan jawabannya langsung: jika akun Anda sudah memiliki file itu tidak ada yang tercipta dan Anda dapatkan 409 dengan {"status":"exists","uuid":…,"share_url":…} menunjuk pada salinan Anda yang ada; jika akun lain memiliki byte tersebut, byte tersebut langsung dibagikan kepada Anda: {"status":"completed","deduped":true,"share_url":…} — selesai, tidak ada yang diunggah.
• Untuk file besar yang di-hash dengan malas: kirim hanya file tersebut fingerprint. Balasan dari {"status":"need_hash"} berarti ada kemungkinan kecocokan - hash penuh file dan panggilan POST /v1/uploads/{uuid}/confirm. Balasan lainnya adalah tiket biasa; unggah seperti biasa.
Hilangkan kedua bidang untuk selalu mengunggah.

Meminta
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…"}'
Tanggapan
{
  "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…"
}
⚠ Potong unggahan Anda — diperlukan untuk file berukuran lebih dari ~100 MB. Penyimpanan server berada di belakang CDN yang menolak permintaan apa pun yang melebihi isi ~100 MB dengan 413 Request Entity Too Large. Sebuah hal PATCH yang membawa utuh karena itu file gagal pada file besar. Simpan setiap potongan kecil - 8 MB adalah default yang bagus — yang juga membuat upload dapat dilanjutkan setelah koneksi terputus.

Kesalahan umum: tus-js-client defaultnya adalah chunkSize: Infinity (satu permintaan untuk seluruh file), jadi unggah lebih dari ~100 MB gagal dengan 413. Anda harus tetapkan secara eksplisit 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();
POS /v1/uploads/{uuid}/konfirmasi
Konfirmasikan pengurangan

Langkah kedua dari fingerprint flow: panggil ini hanya setelahnya POST /v1/uploads menjawab {"status":"need_hash"}, dengan file lengkap sha256. Sidik jari dan ukurannya adalah yang Anda kirimkan saat unggahan dibuat — tidak dibaca ulang dari permintaan ini. Tiga hasil yang sama seperti di atas: sudah ada di akun Anda → 409 exists (tidak ada yang disimpan); dimiliki di tempat lain → segera selesai (deduped); jika tidak, sidik jarinya hanya bertabrakan dan Anda mendapatkan hasil normal upload_url / upload_token tiket — unggah seperti pada langkah 2 di atas.

Meminta
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…"}'
Tanggapan
{
  "uuid": "3f1c…-…-…",
  "status": "completed",
  "deduped": true,
  "size": 184320,
  "sha256": "9f86d0…",
  "share_url": "https://…/f/3f1c…"
}
MENDAPATKAN /v1/files/{uuid}
Dapatkan informasi file

Mengembalikan metadata untuk satu file yang Anda miliki.

Meminta
curl https://api.fast2share.com/v1/files/3f1c…-…-… \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Tanggapan
{
  "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
}
MENDAPATKAN /v1/files/{uuid}/status
Periksa status unggahan

Pemeriksaan ringan untuk status unggahan: pending, completed atau failed. Setelah selesai itu juga mengembalikan share_url.

Meminta
curl https://api.fast2share.com/v1/files/3f1c…-…-…/status \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Tanggapan
{
  "uuid": "3f1c…-…-…",
  "status": "completed",
  "size": 184320,
  "share_url": "https://…/f/3f1c…"
}
MENDAPATKAN /v1/files/{uuid}/download
Dapatkan tautan unduhan langsung

Membuat URL unduhan langsung yang siap digunakan untuk file yang Anda miliki. Tautan langsung mengalirkan byte tidak diperlukan sesi browser (gunakan dari skrip/ikal) dan kedaluwarsa setelah ~5 menit. Membutuhkan langganan Premium aktif (admin selalu mengizinkan).

Meminta
curl https://api.fast2share.com/v1/files/3f1c…-…-…/download \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Tanggapan
{
  "uuid": "3f1c…-…-…",
  "name": "report.pdf",
  "size": 184320,
  "download_url": "https://…/d/9xA2…",
  "expires_in": 300
}
POS /v1/files/{uuid}/ganti nama
Ganti nama file

Mengubah nama tampilan file yang Anda miliki. Tautan berbagi (uuid) tidak berubah, jadi tautan yang Anda bagikan tetap berfungsi — hanya nama yang ditampilkan di halaman berbagi dan dikirim bersama unduhan yang berubah. Pemisah jalur dan karakter kontrol dihilangkan; nama dibatasi hingga 512 karakter.

Meminta
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"}'
Tanggapan
{
  "uuid": "3f1c…-…-…",
  "name": "invoice-july.pdf",
  "size": 184320,
  "status": "completed",
  "share_url": "https://…/f/3f1c…"
}
POS /v1/files/{uuid}/move
Pindahkan file

File file yang Anda miliki ke dalam salah satu folder Anda. Mengirim {"folder_id": 0} (atau hilangkan) untuk memindahkannya kembali ke root. Folder tersebut harus menjadi milik Anda, jika tidak 404.

Meminta
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}'
Tanggapan
{
  "uuid": "3f1c…-…-…",
  "name": "invoice-july.pdf",
  "status": "completed",
  "share_url": "https://…/f/3f1c…",
  "folder_id": 12
}
POS /v1/files/{uuid}/copy
Salin file bersama

Menempatkan file orang lain dibagikan kepada Anda ke akun Anda sendiri, dengan tautan berbagi Anda sendiri — di sini {uuid} adalah sumber siput berbagi file, bukan milik Anda. Tidak ada byte yang ditransfer: penyalinan mengarah ke objek tersimpan yang sama, sehingga selesai secara instan dan mengurangi kuota penyimpanan Anda seperti file lainnya.

Sumbernya harus bersifat publik, sudah selesai, dan pemiliknya harus mengizinkan penyalinan — jika tidak, Anda akan mendapatkannya 403. 409 berarti itu sudah menjadi file Anda (atau sudah ada di akun Anda), dan 403 juga mencakup "penyimpanan yang tersisa tidak cukup". Bidang isi opsional: folder_id, is_public (defaultnya benar) dan free_download (defaultnya salah).

Meminta
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}'
Tanggapan
{
  "uuid": "8b2e…-…-…",
  "name": "report.pdf",
  "size": 184320,
  "status": "completed",
  "share_url": "https://…/f/8b2e…",
  "copied": true
}
POS /v1/files/{uuid}/hapus
Hapus file

Menghapus sementara file milik Anda; itu segera berhenti diunduh dan byte-bytenya diambil kembali segera setelahnya.

Meminta
curl -X POST https://api.fast2share.com/v1/files/3f1c…-…-…/delete \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Tanggapan
{ "ok": true, "uuid": "3f1c…-…-…" }