Ü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-datafü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_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSchlü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.
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"{
"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:
| Tarif | Max. Dateigröße | Speicher |
|---|---|---|
| Pro | 10 GB | 100 GB |
| Business | 50 GB | 1 TB |
Rate-Limits
Rate-Limits schützen den Dienst vor überbordendem Datenverkehr. Ein Überschreiten des Limits liefert 429 Too Many Requests.
| Bereich | Limit | Zeitfenster | Subjekt |
|---|---|---|---|
| Upload-Init | 30 | 1 min | pro API-Schlüssel |
| Download | 60 | 1 min | pro IP |
| Anmeldung | 10 | 15 min | pro IP |
| Registrierung | 5 | 1h | pro IP |
Fehler
Fehlerantworten verwenden standardmäßige HTTP-Statuscodes und einen einheitlichen JSON-Body.
{ "error": "Invalid or missing API key" }| Status | Bedeutung |
|---|---|
| 400 | Der Anfrage-Body war fehlerhaft oder hat die Validierung nicht bestanden. |
| 401 | Fehlender oder ungültiger API-Schlüssel. |
| 403 | Dem Schlüssel fehlt ein erforderlicher Scope (z. B. files:write). |
| 404 | Die Ressource existiert nicht oder gehört nicht dem Schlüsselinhaber. |
| 413 | Die Datei überschreitet das Dateigrößenlimit des Kontotarifs. |
| 429 | Rate-Limit überschritten. Verlangsamen und erneut versuchen. |
| 500 | Interner 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=50Konto
/api/v1/accountGibt Kontoinformationen, Tarif, Speichernutzung und Dateianzahl zurück.Scope: kein Scope über einen gültigen Schlüssel hinaus erforderlich.
Upload
/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.| Feld | Typ | Beschreibung |
|---|---|---|
| filename | string · required | Dateiname, einschließlich Erweiterung (max. 255 Zeichen). |
| size | integer · required | Gesamtdateigröße in Bytes. |
| contentType | string · required | MIME-Typ (max. 200 Zeichen). |
Scope: upload. Gibt 413 zurück, wenn size das Tariflimit des Kontos überschreitet.
Dateien
/api/v1/filesListet dem Schlüssel gehörende Dateien auf. Unterstützt page, limit (max. 100), status./api/v1/files/:idRuft eine einzelne Datei anhand der ID ab./api/v1/files/:idAktualisiert displayName, description, tags oder visibility./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.
Erstellen Sie ein Support-Ticket und beschreiben Sie den Anwendungsfall.