API-Dokumentation
Nutzen Sie die PasteBox-API, um Pastes programmatisch zu erstellen und abzurufen.
Basis-URL
https://pastebox.io/api/paste.php
Authentifizierung
API-Schlüssel (empfohlen für Skripte)
Registrierte Benutzer können API-Schlüssel in Ihrem Profil → API-Schlüssel erstellen. Ein Schlüssel authentifiziert die Anfrage in Ihrem Namen, ganz ohne Sitzungs-Cookie oder CSRF-Token. Senden Sie ihn im Authorization-Header (oder im X-API-Key-Header):
Authorization: Bearer pb_your_api_key
Schlüssel gelten pro Konto, und für jeden Schlüssel gilt ein eigenes Anfragelimit. Sie können einen Schlüssel jederzeit pausieren oder löschen; ein Administrator kann einzelne Schlüssel oder die gesamte API deaktivieren.
Browser-Sitzung (CSRF-Token)
Anfragen aus einer angemeldeten Browser-Sitzung verwenden stattdessen ein CSRF-Token, das aus dem -Tag auf jeder Seite gelesen und als Header gesendet wird:
X-CSRF-Token: your_csrf_token
Lesende Endpunkte (Abrufen eines Pastes und seines Rohinhalts) erfordern weder Schlüssel noch Konto. Rufen Sie zum Beispiel einen beliebigen öffentlichen Paste als reinen Text ab:
curl -s -H "Authorization: Bearer pb_your_api_key" \
-d '{"content":"hello","syntax":"text"}' \
https://pastebox.io/api/paste.php?action=create
Paste erstellen
/api/paste.php?action=create
Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| content | string | Ja | Der Inhalt des Pastes |
| title | string | Nein | Paste-Titel (Standard: "Untitled") |
| syntax | string | Nein | Slug der Syntaxsprache (Standard: "plaintext") |
| expiration | string | Nein | Ablauf: 5min, 10min, 1hour, 1day, 1week, 2weeks, 1month, 6months, 1year, never |
| visibility | string | Nein | public, unlisted oder private (Standard: "public") |
| slug | string | Nein | Benutzerdefinierter URL-Slug (nur für angemeldete Benutzer und nur, wenn der Admin benutzerdefinierte URLs aktiviert hat): 3–64 Zeichen, Kleinbuchstaben/Ziffern/Bindestriche. Wird bei Gästen, bei deaktivierter Funktion oder wenn er vergeben/ungültig ist ignoriert; stattdessen wird ein zufälliger Slug verwendet. |
| password | string | Nein | Passwort zum Schutz des Pastes |
| burn_after_read | boolean | Nein | Paste nach dem ersten Aufruf löschen |
| encrypt | boolean | Nein | Serverseitige Verschlüsselung aktivieren |
Beispielanfrage
curl -X POST https://pastebox.io/api/paste.php?action=create \
-H "Content-Type: application/json" \
-H "X-CSRF-Token: YOUR_TOKEN" \
-d '{
"content": "console.log(\"Hello World\");",
"title": "Hello World",
"syntax": "javascript",
"expiration": "1week",
"visibility": "public"
}'
Beispielantwort
{
"success": true,
"message": "Paste created successfully.",
"url": "https://pastebox.io/paste/abc123",
"slug": "abc123"
}
Rohinhalt eines Pastes abrufen
/api/paste.php?action=raw&slug={slug}
Gibt den reinen Textinhalt eines Pastes zurück. Übergeben Sie bei passwortgeschützten Pastes das Passwort als Query-Parameter.
Beispiel
curl https://pastebox.io/api/paste.php?action=raw&slug=abc123
Paste herunterladen
/api/paste.php?action=download&slug={slug}
Lädt den Paste als Datei mit der passenden Dateiendung für die Syntaxsprache herunter.
Paste löschen
/api/paste.php?action=delete
Löscht einen Paste. Nur für den Eigentümer des Pastes oder Administratoren verfügbar.
Beispielanfrage
curl -X POST https://pastebox.io/api/paste.php?action=delete \
-H "Content-Type: application/json" \
-H "X-CSRF-Token: YOUR_TOKEN" \
-d '{"slug": "abc123"}'
Anfragelimits
- Anfragen mit API-Schlüssel: 1000 pro Stunde und Schlüssel (vom Website-Administrator festgelegt; bei Überschreitung wird ein 429 zurückgegeben).
- Paste-Erstellung als Gast (ohne Schlüssel/Sitzung): 10 Pastes pro Stunde und IP. Für angemeldete Benutzer gilt beim Erstellen kein IP-basiertes Anfragelimit.
- Entsperrversuche per Passwort: 10 pro 10 Minuten und Paste.
- Meldungen: 5 pro Stunde und IP.
- Für lesende Endpunkte (Ansicht / Roh / Download) gilt kein Anfragelimit.
Wird ein Limit überschritten, wird die Anfrage abgelehnt; warten Sie, bevor Sie es erneut versuchen.
Fehlerantworten
Alle Fehlerantworten haben dieses Format:
{
"success": false,
"message": "Error description here."
}