developers  · docsCuenta
Consigue tu token
Docs · Quickstart

Tu primera llamada a la API en 5 minutos

Actualizado Aug 2026 · API v3

La 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.

  1. Consigue pon en tu iPhone

    Tu cuenta y tus listas viven en la app — descarga pon del App Store y regístrate allí.

    App Store

  2. 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.

  3. Activa el modo desarrollador

    my → Para desarrolladores. Aceptas las condiciones de la API una sola vez.

  4. 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.

  5. 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 → Bearer

Añ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