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

Melden Sie sich an, um ein Token zu erstellen

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.

Kopfzeile
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

ERHALTEN /v1/user
Aktuellen Benutzer abrufen

Gibt das Konto des Token-Inhabers, den aktiven Plan und die aktuelle Speichernutzung zurück.

Anfrage
curl https://api.fast2share.com/v1/user \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Antwort
{
  "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
  }
}
ERHALTEN /v1/files
Dateien auflisten

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=.

Anfrage
curl "https://api.fast2share.com/v1/files?before=0&q=report" \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Antwort
{
  "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
}
ERHALTEN /v1/Ordner
Ordner auflisten

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.

Anfrage
curl https://api.fast2share.com/v1/folders \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Antwort
{
  "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" }
  ]
}
POST /v1/Ordner
Erstellen Sie einen Ordner

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.

Anfrage
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}'
Antwort
{
  "id": 12,
  "name": "Invoices",
  "parent_id": null,
  "created_at": "2026-07-31T08:20:00+00:00"
}
POST /v1/uploads
Erstellen Sie einen Upload

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.

Anfrage
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…"}'
Antwort
{
  "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…"
}
⚠ Teilen Sie Ihren Upload auf – erforderlich für Dateien über ca. 100 MB. Der Speicher Der Server befindet sich hinter einem CDN, das jede einzelne Anfrage ablehnt, deren Text größer ist ~100 MB mit 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();
POST /v1/uploads/{uuid}/confirm
Bestätigen Sie die Deduplizierung

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.

Anfrage
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…"}'
Antwort
{
  "uuid": "3f1c…-…-…",
  "status": "completed",
  "deduped": true,
  "size": 184320,
  "sha256": "9f86d0…",
  "share_url": "https://…/f/3f1c…"
}
ERHALTEN /v1/files/{uuid}
Dateiinformationen abrufen

Gibt Metadaten für eine einzelne Datei zurück, deren Eigentümer Sie sind.

Anfrage
curl https://api.fast2share.com/v1/files/3f1c…-…-… \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Antwort
{
  "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
}
ERHALTEN /v1/files/{uuid}/status
Überprüfen Sie den Upload-Status

Leichte Prüfung für den Status eines Uploads: pending, completed oder failed. Sobald es abgeschlossen ist, wird auch das zurückgegeben share_url.

Anfrage
curl https://api.fast2share.com/v1/files/3f1c…-…-…/status \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Antwort
{
  "uuid": "3f1c…-…-…",
  "status": "completed",
  "size": 184320,
  "share_url": "https://…/f/3f1c…"
}
ERHALTEN /v1/files/{uuid}/download
Erhalten Sie einen direkten Download-Link

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).

Anfrage
curl https://api.fast2share.com/v1/files/3f1c…-…-…/download \
  -H "Authorization: Bearer f2s_YOUR_TOKEN"
Antwort
{
  "uuid": "3f1c…-…-…",
  "name": "report.pdf",
  "size": 184320,
  "download_url": "https://…/d/9xA2…",
  "expires_in": 300
}
POST /v1/files/{uuid}/rename
Benennen Sie eine Datei um

Ä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.

Anfrage
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"}'
Antwort
{
  "uuid": "3f1c…-…-…",
  "name": "invoice-july.pdf",
  "size": 184320,
  "status": "completed",
  "share_url": "https://…/f/3f1c…"
}
POST /v1/files/{uuid}/move
Verschieben Sie eine Datei

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.

Anfrage
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}'
Antwort
{
  "uuid": "3f1c…-…-…",
  "name": "invoice-july.pdf",
  "status": "completed",
  "share_url": "https://…/f/3f1c…",
  "folder_id": 12
}
POST /v1/files/{uuid}/copy
Kopieren Sie eine freigegebene Datei

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).

Anfrage
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}'
Antwort
{
  "uuid": "8b2e…-…-…",
  "name": "report.pdf",
  "size": 184320,
  "status": "completed",
  "share_url": "https://…/f/8b2e…",
  "copied": true
}
POST /v1/files/{uuid}/delete
Eine Datei löschen

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.

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