developers  · docsAccount
Haal je token
Docs · Quickstart

Je eerste API-call in 5 minuten

Bijgewerkt Aug 2026 · API v3

De snelste weg naar binnen is een personal access token — geen OAuth, geen app-registratie. Het leest en schrijft je eigen pon-data, precies goed voor scripts, Home Assistant en homelab-projecten.

  1. Haal pon op je iPhone

    Je account en je lijsten leven in de app — download pon uit de App Store en registreer je daar.

    App Store

  2. Log in op my.pon.app

    Gebruik je pon-account. Je e-mailadres moet bevestigd zijn — anders antwoordt de activering met 403 EMAIL_UNVERIFIED.

  3. Zet de ontwikkelaarsmodus aan

    my → Voor ontwikkelaars. Je accepteert de API-voorwaarden één keer.

  4. Maak een token aan

    Kies de scopes die je nodig hebt. Het geheim pon_pat_… wordt één keer getoond — bewaar het als een wachtwoord. Vervaldatum: standaard 90 dagen, maximaal 365, of nooit.

  5. Roep de API aan

    Dat is alles — gewoon Bearer, geen signing-gedoe:

# 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"])

Wil je het proberen voordat je code schrijft? De API Reference heeft een Authorize-dialoog — plak je token erin en elk endpoint wordt klikbaar.

Reference → Authorize → Bearer

Een artikel toevoegen

POST /v3/lists/{list-id}/items — schrijven werkt op precies dezelfde manier:

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"},
)

Elke response gebruikt dezelfde envelop: { "data": …, "meta": … } bij succes, { "errors": [ { "code", "message" } ] } bij een fout.

Ga niet pollen op veranderingen.

Registreer in plaats daarvan een webhook — pon roept jou aan wanneer een lijst verandert. Elke 5 minuten pollen telt op de fair-use-meter al als zwaar gebruik.

Volgende stappen