REST-API

Kostenlose API zur Passwortgenerierung. Keine Anmeldung erforderlich. Rate limit: 60 req / min / IP

Endpunkt

GET https://pwgen.de/api/generate

Query-Parameter

ParameterTypStandardBeschreibung
typestringclassicPassworttyp: classic | passphrase | pattern | pin | pronounceable | token
presetstringBenanntes Rezept für ein Framework-Secret, etwa laravel-app-key. Bestimmt das Ergebnis allein; alle anderen Parameter werden ignoriert. Vorlagen-Presets wie wordpress-salts liefern in password einen mehrzeiligen Block.
patternstringStrukturvorlage, erforderlich bei type=pattern. Max. 256 Zeichen, max. 4096 Zeichen Ausgabe.
lengthinteger16Zeichenlänge (1–512). Für classic, pin, pronounceable und token.
wordCountinteger4Wortanzahl (2–20). Für passphrase.
separatorstring-Worttrenner. Für passphrase.
wordliststringenVollständige Diceware-Wortliste: de | en. Für passphrase.
includeUpperbooleantrueGroßbuchstaben (A–Z) einbeziehen. Nur classic.
includeLowerbooleantrueKleinbuchstaben (a–z) einbeziehen. Nur classic.
includeDigitsbooleantrueZiffern (0–9) einbeziehen. Nur classic.
includeSymbolsbooleanfalseSonderzeichen (!@#…) einbeziehen. Nur classic.
excludeAmbiguousbooleanfalseMehrdeutige Zeichen (0, O, l, I, 1) ausschließen. Nur classic.
symbolSetstring!@#…Eigene Sonderzeichen (max. 50). Nur classic.
tokenFormatstringbase62Token-Format: base62 | base58 | hex | nanoid. Nur token.
minEntropynumber0Mindestentropie in Bit. Bei Unterschreitung: ENTROPY_TOO_LOW.

Muster-Syntax

Ein Muster beschreibt die Struktur eines Werts. Jedes Zeichen, das weder Klasse noch Sonderzeichen ist, gilt als Literal; „\d" ergibt ein wörtliches „d".

l u d s aKlein-, Großbuchstaben, Ziffern, Sonderzeichen, alphanumerisch
h HHex klein / groß
c vKonsonanten / Vokale
wein Wort aus der Diceware-Liste
[A-Z0-9]expliziter Zeichenvorrat
{4} {8,12}Wiederholung, fest oder gleichverteilter Bereich
( ) ( )~Gruppe, optional gemischt

Ein Bereich wie a-z ist nur innerhalb einer Klasse zulässig (Ziffern, a-z oder A-Z). Für einen wörtlichen Bindestrich „\-" schreiben.

Antwort

Alle Antworten sind application/json. Passwörter werden serverseitig weder gespeichert noch protokolliert.

{
  "password": "aX3!mQ9kRv2nLp8w",
  "entropy": 104.8,
  "strength": "very-strong",
  "charsetSize": 90,
  "crackTime": "longer than the age of the universe"
}
strength
very-weak · weak · fair · strong · very-strong
entropy
Shannon-Entropie in Bit
crackTime
Bei 10¹² Versuchen/Sek. (Offline-Angriff)

Beispiele

Klassisches Passwort (Standard)

curl "https://pwgen.de/api/generate"

Starkes klassisches Passwort

curl "https://pwgen.de/api/generate?type=classic&length=24&includeSymbols=true"

Passphrase (5 Wörter)

curl "https://pwgen.de/api/generate?type=passphrase&wordCount=5&separator=-&wordlist=de"

6-stellige PIN

curl "https://pwgen.de/api/generate?type=pin&length=6"

API-Token (hex, 32 Zeichen)

curl "https://pwgen.de/api/generate?type=token&length=32&tokenFormat=hex"

Laravel APP_KEY per Preset

curl "https://pwgen.de/api/generate?preset=laravel-app-key"

WordPress-Salts für die wp-config.php

curl -s "https://pwgen.de/api/generate?preset=wordpress-salts" | jq -r .password

Lizenzschlüssel per Muster

curl "https://pwgen.de/api/generate?type=pattern&pattern=([A-Z0-9]{5}-){3}[A-Z0-9]{5}"

Nutzungsgrenze

Pro IP sind 60 Anfragen pro Minute erlaubt. Die folgenden Header werden bei jeder GET-Antwort mitgeliefert:

X-RateLimit-LimitMaximale Anfragen pro Zeitfenster
X-RateLimit-RemainingVerbleibende Anfragen im Zeitfenster
X-RateLimit-ResetUnix-Zeitpunkt zum Zurücksetzen des Fensters
Retry-AfterWartezeit in Sekunden nach einer 429-Antwort

Bei überschrittener Grenze lautet die Antwort 429 RATE_LIMITED .

Stabile Fehlercodes

Fehler verwenden einen sprachneutralen JSON-Umschlag: { "error": { "code": "…" } }. Verlasse dich nicht auf Antworttexte.

INVALID_QUERYEin Query-Parameter ist ungültig oder außerhalb seines erlaubten Bereichs.
INVALID_OPTIONSDie gewählten Optionen können kein Passwort erzeugen.
ENTROPY_TOO_LOWDie angeforderte Mindestentropie kann nicht erreicht werden.
INVALID_PATTERNDas Muster ist fehlerhaft, fehlt oder überschreitet eine Grenze.
UNKNOWN_PRESETDas angeforderte Preset existiert nicht.
RATE_LIMITEDDie Rate-Grenze pro IP wurde überschritten.
METHOD_NOT_ALLOWEDUnterstützt werden nur GET und OPTIONS.
INTERNAL_ERROREine erforderliche Serverressource ist nicht verfügbar.