API-Dokumentation
Automatisieren Sie Uploads und verwalten Sie Ihre Dateien programmgesteuert über eine einfache JSON-REST-API.
Alle Anfragen und Antworten sind application/json. Die Basis-URL lautet:
https://api.fast2share.com
Authentifizierung
Erstellen Sie in Ihrem Panel unten ein Token
Einstellungen → API-Tokens. Senden Sie es bei jeder Anfrage im
Authorization Kopfzeile. Token werden bei der Erstellung einmal angezeigt – speichern Sie sie
sicher. Jeder Token fungiert im Namen Ihres Kontos und sieht immer nur Ihre eigenen Dateien.
Authorization: Bearer f2s_YOUR_TOKEN
Fehler
Fehler verwenden Standard-HTTP-Statuscodes und geben einen JSON-Body mit einem zurück
error Nachricht. Allgemeine Codes: 401 (fehlendes/ungültiges Token),
403 (Kontingent- oder Planlimit), 404 (Datei nicht gefunden),
409 (Konflikt – z. B. die Datei befindet sich bereits in Ihrem Konto, siehe
POST /v1/uploads), 422 (schlechter Anfragetext),
503 (kein Speicherserver verfügbar).
{
"error": "Invalid or revoked API token."
}Endpunkte
Gibt das Konto des Token-Inhabers, den aktiven Plan und die aktuelle Speichernutzung zurück.
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
}
}Listet Ihre abgeschlossenen Dateien auf, die neuesten zuerst. Cursor-paginiert: Übergeben Sie die Rückgabe next_before als ?before= für die nächste Seite. Nach Namen filtern mit ?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
}Findet Ihre Dateien nach Namen. ?q= ist erforderlich und passt überall im Dateinamen, ohne Berücksichtigung der Groß- und Kleinschreibung. Gleiche Cursor-Paginierung wie in der Auflistung (?before=), und die Suche erstreckt sich über jeden Ordner, es sei denn, Sie grenzen den Bereich ein ?folder_id= (0 = Dateien im Stammverzeichnis).
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
}Jeder Ordner in Ihrem Konto, die Ordner der obersten Ebene zuerst. Benutzen Sie die id als die folder_id beim Verschieben oder Kopieren einer Datei.
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" }
]
}Erstellt einen Ordner. name ist erforderlich und muss in Ihrem Konto eindeutig sein (Groß-/Kleinschreibung wird nicht beachtet) – es kommt zu Konflikten 409. Passieren parent_id um es zu verschachteln: Ordner gehen nur eine Ebene tiefund ein übergeordneter Ordner enthält höchstens einen Unterordner, sodass ein übergeordneter Ordner, der selbst verschachtelt ist (oder bereits einen untergeordneten Ordner hat), antwortet 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"
}Anleitung zum Hochladen: Das Hochladen erfolgt in zwei Schritten weil Bytes gehen direkt auf den Speicherserver (über den Lebenslauf tus Protokoll); Sie passieren diese API nie. Dieser Aufruf validiert Ihren Plan/Ihr Kontingent und gibt einen tus-Endpunkt plus eine signierte zurück upload_token.
1. POST /v1/uploads mit dem Dateinamen und der Größe → kehrt zurück upload_url, upload_token Und uuid (dieser Endpunkt).
2. Führen Sie einen Tus-Upload durch upload_url, Hinzufügen der Metadaten token <upload_token>. Jeder tus-Client funktioniert (z.B. tus-js-client, tusc). Senden Sie die Bytes in Blöcken (8 MB empfohlen): Eine einzelne tus-Anfrage, die die gesamte Datei enthält, wird mit abgelehnt 413 durch das Speicher-CDN, sobald der Körper etwa 100 MB überschreitet.
3. Umfrage GET /v1/files/{uuid}/status bis es sich meldet completed, dann verwenden Sie die zurückgegebene share_url.
Überspringen Sie die Übertragung mit Dedup (optional). Wenn die gleichen Bytes bereits gespeichert sind, kann die Datei sofort erstellt werden – es wird nichts hochgeladen:
• fingerprint = SHA-256 der ersten 8 MB, verkettet mit den letzten 8 MB (liest ≤16 MB; wenn die Datei ≤8 MB ist, ist es einfach der SHA-256 der gesamten Datei, und zwischen 8 und 16 MB decken die beiden Bereiche sie einmal ab, ohne sich zu überschneiden). Senden Sie dies immer Wenn Sie eine Deduplizierung wünschen, weiß die API dadurch, dass Sie die Datei wirklich besitzen, sodass Bytes, die einem anderen Konto gehören, niemals auf einer bloßen Prüfsumme geteilt werden.
• sha256 = vollständige Datei SHA-256, hexadezimal. Senden Sie es zusammen mit dem Fingerabdruck und Sie erhalten sofort die Antwort: Wenn Ihr Konto verfügt bereits über diese Datei nichts wird erschaffen und du bekommst 409 mit {"status":"exists","uuid":…,"share_url":…} Zeigen Sie auf Ihre vorhandene Kopie. Wenn ein anderes Konto die Bytes besitzt, werden sie sofort mit Ihnen geteilt: {"status":"completed","deduped":true,"share_url":…} — erledigt, nichts hochgeladen.
• Für große Dateien stattdessen träge hashen: Senden Sie nur die fingerprint. Eine Antwort von {"status":"need_hash"} bedeutet, dass eine mögliche Übereinstimmung vorliegt – vollständiges Hashen der Datei und Aufruf POST /v1/uploads/{uuid}/confirm. Jede andere Antwort ist ein normales Ticket; wie gewohnt hochladen.
Lassen Sie beide Felder weg, um immer hochzuladen.
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. Ein Tus
PATCH das trägt die ganz file schlägt daher bei großen Dateien fehl. Behalten
jedes Stück klein – 8 MB ist eine gute Vorgabe – die auch den Upload ermöglicht
kann nach einem Verbindungsabbruch wieder aufgenommen werden.
Häufiger Fehler:
tus-js-client Standardmäßig ist
chunkSize: Infinity (eine Anfrage für die gesamte Datei), also Uploads über ca. 100 MB
scheitern mit 413. Du muss Legen Sie ein explizites fest 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();Zweiter Schritt des fingerprint flow: Rufen Sie dies erst danach auf POST /v1/uploads beantwortet {"status":"need_hash"}, mit der vollständigen Datei sha256. Der Fingerabdruck und die Größe sind diejenigen, die Sie beim Erstellen des Uploads gesendet haben – sie werden bei dieser Anfrage nicht erneut gelesen. Die gleichen drei Ergebnisse wie oben: bereits in Ihrem Konto → 409 exists (nichts gespeichert); woanders besessen → wird sofort abgeschlossen (deduped); Andernfalls kollidierte der Fingerabdruck lediglich und Sie erhalten das Normale upload_url / upload_token Ticket – Hochladen wie in Schritt 2 oben.
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…"
}Gibt Metadaten für eine einzelne Datei zurück, deren Eigentümer Sie sind.
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
}Leichte Prüfung für den Status eines Uploads: pending, completed oder failed. Sobald es abgeschlossen ist, wird auch das zurückgegeben 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…"
}Erstellt eine gebrauchsfertige Direkt-Download-URL für eine Datei, die Sie besitzen. Der Link streamt die Bytes sofort mit keine Browsersitzung erforderlich (verwenden Sie es aus einem Skript/Curl) und läuft nach ca. 5 Minuten ab. Erfordert ein aktives Premium-Abonnement (Administratoren immer erlaubt).
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
}Ändert den Anzeigenamen einer Datei, deren Eigentümer Sie sind. Der Teilen-Link (uuid) ändert sich nicht, sodass die von Ihnen bereits verteilten Links weiterhin funktionieren – nur der Name, der auf der Freigabeseite angezeigt und mit dem Download gesendet wird, ändert sich. Pfadtrennzeichen und Steuerzeichen werden entfernt; Der Name ist auf 512 Zeichen begrenzt.
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…"
}Legt eine Datei, deren Eigentümer Sie sind, in einem Ihrer Ordner ab. Schicken {"folder_id": 0} (oder lassen Sie es weg), um es zurück zum Stammverzeichnis zu verschieben. Andernfalls muss der Ordner Ihnen gehören 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
}Legt eine Datei ab jemand anderes mit Ihnen in Ihrem eigenen Konto geteilt, mit Ihrem eigenen Freigabelink – hier {uuid} ist das Quelle Der Freigabe-Slug der Datei, nicht einer von Ihnen. Es werden keine Bytes übertragen: Die Kopie verweist auf dasselbe gespeicherte Objekt, sodass sie sofort abgeschlossen wird und wie jede andere Datei auf Ihr Speicherkontingent angerechnet wird.
Die Quelle muss öffentlich und fertig sein und ihr Besitzer muss das Kopieren erlauben – andernfalls erhalten Sie 403. 409 bedeutet, dass es bereits Ihre Datei ist (oder bereits in Ihrem Konto) und 403 deckt auch „nicht genügend Speicherplatz übrig“ ab. Optionale Textfelder: folder_id, is_public (Standard true) und free_download (Standard: falsch).
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
}Löscht eine Datei, deren Eigentümer Sie sind, vorläufig. Es kann sofort nicht mehr heruntergeladen werden und seine Bytes werden kurz darauf wiederhergestellt.
curl -X POST https://api.fast2share.com/v1/files/3f1c…-…-…/delete \ -H "Authorization: Bearer f2s_YOUR_TOKEN"
{ "ok": true, "uuid": "3f1c…-…-…" }