Tu primera llamada a la API en 5 minutos
Actualizado Aug 2026 · API v3La vía más rápida de entrada es un personal access token — sin OAuth, sin registrar ninguna app. Lee y escribe tus propios datos de pon, que es justo lo que necesitas para scripts, Home Assistant y cosas de homelab.
Consigue pon en tu iPhone
Tu cuenta y tus listas viven en la app — descarga pon del App Store y regístrate allí.
Inicia sesión en my.pon.app
Usa tu cuenta de pon. Tu correo debe estar confirmado — si no, la activación responde
403 EMAIL_UNVERIFIED.Activa el modo desarrollador
my → Para desarrolladores. Aceptas las condiciones de la API una sola vez.
Crea un token
Elige los scopes que necesites. El secreto
pon_pat_…se muestra una sola vez — guárdalo como una contraseña. Caducidad: 90 días por defecto, hasta 365, o nunca.Llama a la API
Eso es todo — Bearer a secas, sin bailes de firmas:
# 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"])¿Quieres probar antes de escribir código? La referencia de la API tiene un diálogo Authorize — pega tu token y cada endpoint se vuelve clicable.
Referencia → Authorize → BearerAñade un artículo
POST /v3/lists/{list-id}/items — el lado de escritura
funciona igual:
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"},
)Cada respuesta usa el mismo sobre: { "data": …, "meta": … } en caso de
éxito, { "errors": [ { "code", "message" } ] } en caso de fallo.
No hagas polling para detectar cambios.
Registra un webhook en su lugar — pon te llama cuando una lista cambia. Hacer polling cada 5 minutos ya cuenta como uso intensivo en el indicador de fair use.Próximos pasos
- Autenticación — cuándo basta con un token y cuándo quieres OAuth.
- Webhooks — reacciona a los cambios de las listas sin hacer polling.
- Límites y fair use — qué es generoso y qué es un tope.