Dein erster API-Call in 5 Minuten
Aktualisiert Aug 2026 · API v3Der schnellste Weg rein ist ein Personal Access Token — kein OAuth, keine App-Registrierung. Er liest und schreibt deine eigenen pon-Daten, und genau das brauchst du für Skripte, Home Assistant und Homelab-Basteleien.
Hol dir pon aufs iPhone
Konto und Listen leben in der App — lade pon aus dem App Store und registriere dich dort.
Melde dich auf my.pon.app an
Nimm deinen pon-Account. Deine E-Mail-Adresse muss bestätigt sein — sonst antwortet die Freischaltung mit
403 EMAIL_UNVERIFIED.Aktiviere den Entwicklermodus
my → Für Entwickler. Du akzeptierst die API-Bedingungen einmalig.
Erstelle einen Token
Wähl die Scopes, die du brauchst. Das Secret
pon_pat_…wird einmal angezeigt — bewahr es auf wie ein Passwort. Ablauf: standardmäßig 90 Tage, bis zu 365, oder nie.Ruf die API auf
Das war’s — schlichtes Bearer, kein Signatur-Tanz:
# list your lists
curl https://api.pon.app/v3/lists \
-H "Authorization: Bearer pon_pat_XXXX"const res = await fetch("https://api.pon.app/v3/lists", {
headers: { Authorization: "Bearer pon_pat_XXXX" },
});
const { data } = await res.json();
console.log(data);import requests
res = requests.get(
"https://api.pon.app/v3/lists",
headers={"Authorization": "Bearer pon_pat_XXXX"},
)
print(res.json()["data"])Erst ausprobieren, dann Code schreiben? Die API-Referenz hat einen Authorize-Dialog — Token einfügen, und jeder Endpunkt wird klickbar.
Referenz → Authorize → BearerEinen Artikel hinzufügen
POST /v3/lists/{list-id}/items — die Schreibseite
funktioniert genauso:
curl -X POST https://api.pon.app/v3/lists/LIST_ID/items \
-H "Authorization: Bearer pon_pat_XXXX" \
-H "Content-Type: application/json" \
-d '{ "name": "Oat milk" }'await fetch(`https://api.pon.app/v3/lists/${listId}/items`, {
method: "POST",
headers: {
Authorization: "Bearer pon_pat_XXXX",
"Content-Type": "application/json",
},
body: JSON.stringify({ name: "Oat milk" }),
});requests.post(
f"https://api.pon.app/v3/lists/{list_id}/items",
headers={"Authorization": "Bearer pon_pat_XXXX"},
json={"name": "Oat milk"},
)Jede Antwort nutzt denselben Umschlag: { "data": …, "meta": … } bei
Erfolg, { "errors": [ { "code", "message" } ] } im Fehlerfall.
Frag Änderungen nicht per Polling ab.
Registriere stattdessen einen Webhook — pon ruft dich an, wenn sich eine Liste ändert. Alle 5 Minuten zu pollen gilt auf der Fair-Use-Anzeige schon als starke Nutzung.Nächste Schritte
- Authentifizierung — wann ein Token reicht, und wann du OAuth willst.
- Webhooks — auf Listenänderungen reagieren, ohne zu pollen.
- Limits & Fair Use — was großzügig ist, und was eine harte Grenze.