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
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.
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
Mengembalikan akun pemilik token, paket aktif, dan penggunaan penyimpanan saat ini.
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
}
}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=.
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
}Menemukan file Anda berdasarkan nama. ?q= diperlukan dan cocok dengan nama file mana pun, tanpa membedakan huruf besar dan kecil. Penomoran halaman kursor sama dengan daftar (?before=), dan pencarian mencakup setiap folder kecuali Anda melingkupinya ?folder_id= (0 = file yang berada di root).
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
}Setiap folder di akun Anda, folder tingkat atas terlebih dahulu. Gunakan id sebagai folder_id saat memindahkan atau menyalin file.
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" }
]
}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.
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"
}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.
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. 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();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.
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…"
}Mengembalikan metadata untuk satu file yang Anda miliki.
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
}Pemeriksaan ringan untuk status unggahan: pending, completed atau failed. Setelah selesai itu juga mengembalikan 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…"
}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).
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
}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.
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…"
}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.
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
}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).
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
}Menghapus sementara file milik Anda; itu segera berhenti diunduh dan byte-bytenya diambil kembali segera setelahnya.
curl -X POST https://api.fast2share.com/v1/files/3f1c…-…-…/delete \ -H "Authorization: Bearer f2s_YOUR_TOKEN"
{ "ok": true, "uuid": "3f1c…-…-…" }