FastPaste API
FastPaste REST API v1
Erste Schritte
Die FastPaste API ermöglicht das programmgesteuerte Erstellen, Abrufen und Löschen von Pastes.
Authentifizierung
Alle API-Anfragen erfordern den X-API-Key-Header:
Base URL
Antwortformat
Alle Antworten sind im JSON-Format:
POST /api/v1/paste
Erstellt einen neuen Paste.
Text-Paste (JSON)
| Parameter | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
content | string | Ja | Paste-Inhalt (min. 3, max. 4.00 MB) |
title | string | Nein | Paste-Titel |
description | string | Nein | Beschreibung (max. 500 Zeichen) |
expiry | string | Nein | Dauer: 10m, 30m, 1h, 3h, 6h, 12h, 1d, 2d, 3d, 1w, 2w, 1m, never (Standard: 1d) |
password | string | Nein | Passwortschutz |
burn | boolean | Nein | Einmal ansehen und löschen. Bei true wird der Paste nach der ersten Ansicht automatisch gelöscht (Standard: false). |
encrypt | boolean | Nein | Ende-zu-Ende-Verschlüsselung. Bei true muss der Inhalt ein clientseitig verschlüsselter "fpe1:..."-String sein (siehe E2E-Abschnitt). Standard: false. |
key | string | Nein | Base64url-Entschlüsselungsschlüssel. Optional; wird nur verwendet, um #Schlüssel an den zurückgegebenen Link anzuhängen, und wird nie auf dem Server gespeichert. Leer lassen, um den Schlüssel vollständig clientseitig zu halten. |
downloadable | boolean | Nein | Macht einen E2E-verschlüsselten Paste herunterladbar (Standard: false). Sollte zusammen mit encrypt=true verwendet werden; bei unverschlüsselten Pastes hat es keine Wirkung und die Antwort enthält eine Warnung (unverschlüsselte Pastes sind ohnehin immer herunterladbar). |
language | string | Nein | Sprache für die Syntaxhervorhebung (z. B. python, javascript). Wird bei Weglassen automatisch erkannt; bei E2E zum Hervorheben nach der Entschlüsselung gespeichert. |
public | boolean | Nein | Wenn true, wird der Paste im öffentlichen Archiv und in der Sitemap gelistet. Standard ist false. Wird ignoriert, wenn Passwort, Burn-after-Read oder Verschlüsselung verwendet wird. |
slug | string | Nein | Benutzerdefinierte Kurzadresse (z. B. „meine-notizen" → /view/meine-notizen). Wenn vergeben, wird eine ähnliche zugewiesen. |
Datei-Upload (multipart/form-data)
| Parameter | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
file | file | Ja | Hochzuladende Datei (max. 10.00 MB) |
description | string | Nein | Dateibeschreibung |
expiry | string | Nein | Ablaufzeit |
password | string | Nein | Passwortschutz |
burn | boolean | Nein | Einmal ansehen und löschen. Bei true wird der Paste nach der ersten Ansicht automatisch gelöscht (Standard: false). |
encrypt | boolean | Nein | Ende-zu-Ende-Verschlüsselung. Bei true muss der Inhalt ein clientseitig verschlüsselter "fpe1:..."-String sein (siehe E2E-Abschnitt). Standard: false. |
key | string | Nein | Base64url-Entschlüsselungsschlüssel. Optional; wird nur verwendet, um #Schlüssel an den zurückgegebenen Link anzuhängen, und wird nie auf dem Server gespeichert. Leer lassen, um den Schlüssel vollständig clientseitig zu halten. |
downloadable | boolean | Nein | Macht einen E2E-verschlüsselten Paste herunterladbar (Standard: false). Sollte zusammen mit encrypt=true verwendet werden; bei unverschlüsselten Pastes hat es keine Wirkung und die Antwort enthält eine Warnung (unverschlüsselte Pastes sind ohnehin immer herunterladbar). |
Ende-zu-Ende-Verschlüsselung (E2E)
Verschlüsseln Sie den Inhalt auf Ihrer Seite mit AES-GCM (256-Bit) und senden Sie den Chiffretext als content. Der Server speichert nur die verschlüsselten Daten und sieht den Klartext nie. Es wird dasselbe Format wie in der Weboberfläche verwendet.
Chiffretext-Format: fpe1:<base64(iv)>:<base64(Chiffretext)> — wobei iv ein zufälliger 12-Byte-Wert ist und der Chiffretext das GCM-Tag enthält.
GET /api/v1/paste/{id}
Ruft Details und Inhalt eines Pastes ab.
PUT /api/v1/paste/{id}
Aktualisiert eine vorhandene Paste (nur die dieser API-Schlüssel gehören). Senden Sie nur die zu ändernden Felder: content (nur Text), title, description, expiry, burn, password, language, downloadable. Bei "fpe1:..."-Inhalt encrypt und key angeben.
Beispielanfrage (cURL)GET /api/v1/pastes
Listet die mit diesem API-Schlüssel erstellten Pastes auf (neueste zuerst). Paginierung: page und limit (1–100).
Beispielanfrage (cURL)GET /api/v1/paste/{id}/raw
Gibt den Paste-Inhalt als Klartext zurück. Geeignet für Skripte und Automatisierung.
BeispielAntwort: Content-Type: text/plain
DELETE /api/v1/paste/{id}
Löscht einen Paste. Nur Pastes, die mit demselben API-Schlüssel erstellt wurden, können gelöscht werden.
BeispielPOST /api/v1/cli
Schnelles Erstellen von Pastes über die Kommandozeile (curl). Senden Sie den Inhalt als rohen Anfragetext von stdin oder als Formularfeld (content/paste/f:1). Die Standardantwort ist eine Klartext-URL.
Parameter
| Parameter | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
(gövde) | raw / form | Ja | Paste-Inhalt. Für rohen Text wird text/plain empfohlen (damit = und & erhalten bleiben). |
expiry | string | Nein | Dauer: 10m, 30m, 1h, 3h, 6h, 12h, 1d, 2d, 3d, 1w, 2w, 1m, never (Standard: 1d) |
title | string | Nein | Paste-Titel |
lang | string | Nein | Sprache für die Syntaxhervorhebung (z. B. python, javascript). Wird bei Weglassen automatisch erkannt; bei E2E zum Hervorheben nach der Entschlüsselung gespeichert. |
burn | boolean | Nein | Einmal ansehen und löschen. Bei true wird der Paste nach der ersten Ansicht automatisch gelöscht (Standard: false). |
Accept: application/json veya ?json=1 ile JSON döner. GET /api/v1/cli kullanım örneklerini gösterir.
Erlaubte Dateierweiterungen
.txt
.log
.json
.xml
.yaml
.yml
.ini
.cfg
.conf
.md
.csv
.sql
.js
.ts
.html
.htm
.css
.py
.java
.go
.rs
.c
.cpp
.h
.hpp
.lua
.rb
.jsx
.tsx
.vue
.svelte
.scss
.sass
.less
.toml
.gitignore
.dockerfile
.makefile
.bat
.ps1
.r
.swift
.kt
.kts
.scala
.pl
.pm
.tcl
.awk
.sed
.diff
.patch
.tf
.hcl
.proto
.graphql
.tex
.bib
.rst
.adoc
.org
.wiki
.properties
.gradle
.cmake
.mak
Ratenlimits
Für jeden API-Schlüssel können separate Ratenlimits festgelegt werden:
| Limittyp | Beschreibung |
|---|---|
| Stündliches Limit | Maximale Anfragen pro Stunde (0 = unbegrenzt) |
| Tägliches Limit | Maximale Anfragen pro Tag |
| Monatliches Limit | Maximale Anfragen pro Monat |
Bei Überschreitung des Limits wird 429 Too Many Requests zurückgegeben.
Fehlercodes
| Code | Bedeutung |
|---|---|
400 | Ungültige Anfrage (fehlender/falscher Parameter) |
401 | API-Schlüssel fehlt |
403 | Ungültiger/inaktiver API-Schlüssel oder Zugang verweigert |
404 | Paste nicht gefunden oder abgelaufen |
405 | HTTP-Methode nicht erlaubt |
413 | Dateigröße zu groß |
429 | Ratenlimit überschritten |
500 | Serverfehler |
503 | API deaktiviert |
Webhook-Benachrichtigungen
Pro API-Schlüssel kann eine eigene Webhook-URL konfiguriert werden. Bei einem neuen Paste wird eine POST-Anfrage gesendet:
API-Schlüssel erhalten
Kontaktieren Sie den Administrator, um einen API-Schlüssel zu erhalten oder Ihr Limit zu erhöhen.
Administrator kontaktieren