API v1

Uploadex-API- Referenz.

Eine REST-API zum Hochladen von Dateien, Auflisten und Verwalten von Metadaten. JSON über HTTPS mit Bearer-Token-Authentifizierung.

Überblick

Mit der Uploadex-API können Sie programmatisch Dateien hochladen, auflisten und Metadaten im Namen des Inhabers des API-Schlüssels aktualisieren. Jeder Endpunkt ist eine REST-Ressource: JSON (oder Multipart für Binär-Uploads) rein, JSON raus, ausschließlich HTTPS.

  • Basis-URL https://uploadex.net/api/v1
  • Authentifizierung Bearer-Tokens im Authorization-Header
  • Transport Nur HTTPS · TLS 1.2 oder 1.3
  • Kodierung UTF-8-JSON · multipart/form-data für Uploads
  • Datumsangaben ISO 8601 in UTC · 2026-04-21T08:12:04Z

Authentifizierung

Jede Anfrage muss einen Authorization-Header mit einem Bearer-Token enthalten. Schlüssel erstellen und rotieren Sie in Ihrem Entwickler-Dashboard.

Authorization: Bearer ux_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Schlüssel beginnen mit ux_live_. Sie werden bei der Erstellung genau einmal angezeigt – speichern Sie sie in einem Secret-Manager. Schlüssel können auf bestimmte Aktionen beschränkt werden (files:read, files:write, upload oder *) und so eingestellt werden, dass sie zu einem künftigen Datum ablaufen.

Der API-Zugriff erfordert einen Tarif mit aktiviertem API-Zugriff. Wenn das Konto auf einen Tarif ohne API-Zugriff herabgestuft wird, funktionieren bestehende Schlüssel nicht mehr, bis das Konto wieder hochgestuft wird. Widerrufen Sie durchgesickerte Schlüssel sofort über das Entwickler-Dashboard.

Schnellstart

Rufen Sie Ihre Kontoinformationen ab, um zu bestätigen, dass der Schlüssel funktioniert.

# Get your account info
curl https://uploadex.net/api/v1/account \
  -H "Authorization: Bearer $UX_API_KEY"
Antwort · 200 OK
{
  "data": {
    "id":               "clxxxxxxxxxxxxxxxxxxxxxx",
    "email":            "[email protected]",
    "name":             "Your Name",
    "plan":             "PRO",
    "balance":          0,
    "totalEarnings":    0,
    "storageUsed":      52428800,
    "storageLimit":     53687091200,
    "storageFormatted": "50 MB / 50 GB",
    "fileCount":        3,
    "createdAt":        "2026-04-01T09:21:00.000Z"
  }
}

Tarif-Limits

Upload- und Speicher-Limits sind tarifabhängig und können sich ändern, wenn das Konto hoch- oder herabgestuft wird. Limits für Tarife mit API-Zugriff:

TarifMax. DateigrößeSpeicher
Pro10 GB100 GB
Business50 GB1 TB

Rate-Limits

Rate-Limits schützen den Dienst vor überbordendem Datenverkehr. Ein Überschreiten des Limits liefert 429 Too Many Requests.

BereichLimitZeitfensterSubjekt
Upload-Init301 minpro API-Schlüssel
Download601 minpro IP
Anmeldung1015 minpro IP
Registrierung51hpro IP

Fehler

Fehlerantworten verwenden standardmäßige HTTP-Statuscodes und einen einheitlichen JSON-Body.

{ "error": "Invalid or missing API key" }
StatusBedeutung
400Der Anfrage-Body war fehlerhaft oder hat die Validierung nicht bestanden.
401Fehlender oder ungültiger API-Schlüssel.
403Dem Schlüssel fehlt ein erforderlicher Scope (z. B. files:write).
404Die Ressource existiert nicht oder gehört nicht dem Schlüsselinhaber.
413Die Datei überschreitet das Dateigrößenlimit des Kontotarifs.
429Rate-Limit überschritten. Verlangsamen und erneut versuchen.
500Interner Fehler. Prüfen Sie die Statusseite, bevor Sie es erneut versuchen.

Paginierung

Listen-Endpunkte verwenden seitenbasierte Paginierung. Übergeben Sie page (ab 1) und limit (max. 100) als Query-Parameter.

GET /api/v1/files?page=1&limit=50

Konto

GET/api/v1/accountGibt Kontoinformationen, Tarif, Speichernutzung und Dateianzahl zurück.

Scope: kein Scope über einen gültigen Schlüssel hinaus erforderlich.

Upload

POST/api/v1/uploadInitiiert einen Multipart-Upload. Gibt vorsignierte URLs zurück, die der Client verwendet, um Chunks per PUT in den R2-Objektspeicher zu übertragen.
FeldTypBeschreibung
filenamestring · requiredDateiname, einschließlich Erweiterung (max. 255 Zeichen).
sizeinteger · requiredGesamtdateigröße in Bytes.
contentTypestring · requiredMIME-Typ (max. 200 Zeichen).

Scope: upload. Gibt 413 zurück, wenn size das Tariflimit des Kontos überschreitet.

Dateien

GET/api/v1/filesListet dem Schlüssel gehörende Dateien auf. Unterstützt page, limit (max. 100), status.
GET/api/v1/files/:idRuft eine einzelne Datei anhand der ID ab.
PATCH/api/v1/files/:idAktualisiert displayName, description, tags oder visibility.
DELETE/api/v1/files/:idLöscht die Datei und gibt das Speicherkontingent frei.
{
  "data": {
    "id":            "clxxxxxxxxxxxxxxxxxxxxxx",
    "slug":          "9nK2xA",
    "filename":      "demo.mp4",
    "size":          881975296,
    "sizeFormatted": "841.1 MB",
    "mimeType":      "video/mp4",
    "status":        "READY",
    "scanStatus":    "CLEAN",
    "downloads":     128,
    "views":         412,
    "tags":          ["demo"],
    "visibility":    "PUBLIC",
    "adsEnabled":    true,
    "createdAt":     "2026-04-21T08:12:04.000Z",
    "updatedAt":     "2026-04-21T08:12:04.000Z"
  }
}

Scopes: GET erfordert files:read; PATCH/DELETE erfordern files:write.

Sie brauchen einen Endpunkt, der hier fehlt?

Erstellen Sie ein Support-Ticket und beschreiben Sie den Anwendungsfall.

Support kontaktieren