developers  · docsCompte
Obtenir ton token
Docs · Quickstart

Ton premier appel API en 5 minutes

Mis à jour Aug 2026 · API v3

Le chemin le plus rapide, c’est un personal access token — pas d’OAuth, pas d’enregistrement d’app. Il lit et écrit tes propres données pon, exactement ce qu’il faut pour des scripts, Home Assistant et les bidouilles homelab.

  1. Installe pon sur ton iPhone

    Ton compte et tes listes vivent dans l’app — télécharge pon sur l’App Store et inscris-toi là.

    App Store

  2. Connecte-toi sur my.pon.app

    Utilise ton compte pon. Ton e-mail doit être confirmé — sinon l’activation répond 403 EMAIL_UNVERIFIED.

  3. Active le mode développeur

    my → Pour les développeurs. Tu acceptes les conditions de l’API une seule fois.

  4. Crée un token

    Choisis les scopes dont tu as besoin. Le secret pon_pat_… ne s’affiche qu’une seule fois — garde-le comme un mot de passe. Expiration : 90 jours par défaut, jusqu’à 365, ou jamais.

  5. Appelle l’API

    C’est tout — un simple Bearer, aucune cérémonie de signature :

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

Envie d’essayer avant d’écrire du code ? La référence API propose un dialogue Authorize — colle ton token et chaque endpoint devient cliquable.

Référence → Authorize → Bearer

Ajouter un article

POST /v3/lists/{list-id}/items — l’écriture fonctionne exactement pareil :

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

Chaque réponse utilise la même enveloppe : { "data": …, "meta": … } en cas de succès, { "errors": [ { "code", "message" } ] } en cas d’échec.

Ne fais pas de polling pour détecter les changements.

Enregistre plutôt un webhook — pon t’appelle quand une liste change. Un polling toutes les 5 minutes compte déjà comme usage intensif sur la jauge fair-use.

Étapes suivantes