Aller au contenu

API Projects

Toutes les routes Projects requièrent Authorization: Bearer <user-token>.

Base URL : https://api.pionne.app

{
"id": "prj_a1b2c3",
"name": "Acme iOS",
"platform": "ios",
"bundle_id": "com.acme.app",
"token_preview": "pio_live_abcd...",
"notify_on_first_seen": true,
"notify_on_regression": true,
"notify_on_threshold": 100,
"events_count_30d": 1245,
"created_at": "2026-04-01T10:00:00Z"
}

bundle_id peut être null tant que le premier event n’est pas arrivé (cf. Bundle ID pinning).

Liste les projets de l’user.

{
"data": [
{ "id": "prj_a1b2c3", "name": "Acme iOS", "platform": "ios", ... }
]
}
{
"name": "Acme iOS",
"platform": "ios",
"notify_on_first_seen": true,
"notify_on_regression": true,
"notify_on_threshold": 100
}
{
"id": "prj_a1b2c3",
"name": "Acme iOS",
"platform": "ios",
"bundle_id": null,
"token": "pio_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

Met à jour les champs configurables.

{
"name": "Acme iOS Prod",
"bundle_id": "com.acme.app",
"notify_on_threshold": 500
}

Le bundle_id est le rempart anti-token-theft : changer ou vider ce champ affaiblit la sécurité du projet, donc l’API exige le code de suppression du compte (le PIN à 4–8 chiffres défini dans Compte → Sécurité). Joins-le au body :

{
"bundle_id": "com.acme.app.beta",
"deletion_code": "1234"
}

Réponses possibles :

  • 200 — modifié.
  • 409 deletion_code_not_set — l’utilisateur n’a pas configuré de PIN.
  • 422 deletion_code_invalid — code absent ou incorrect.

Tous les autres champs (name, notify_*, paused_until…) sont modifiables sans code.

Le projet à jour.

Supprime le projet et tous ses events. Action irréversible.

{ "deletion_code": "1234" }

Le code de suppression est obligatoire (mêmes erreurs que pour la modification du bundle_id ci-dessus).

Régénère le token. L’ancien token est invalide instantanément — tous les events qui arrivent avec retournent 401.

{
"token": "pio_live_yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
}

Stats agrégées sur les 30 derniers jours.

{
"events_total": 1245,
"issues_open": 12,
"issues_resolved": 4,
"events_per_day": [
{ "date": "2026-05-04", "count": 42 },
{ "date": "2026-05-03", "count": 51 }
],
"top_issues": [
{ "id": "iss_xxx", "title": "TypeError ...", "events_count": 320 }
]
}