API Account Meta
Utilisateur courant, switch d'équipe, mises à jour de profil, gestion de tokens — endpoints spécifiques au compte.
L'API Account Meta fournit les données de base de compte et d'équipe dont chaque frontend a besoin au bootstrap — équipe courante, balance de crédits, KPIs de dashboard et (admin only) rapports de coûts API internes. Tous les endpoints sont authentifiés Sanctum et team-scoped.
Endpoints
| Méthode | Endpoint | Description | Crédits |
|---|---|---|---|
| GET | /v1/team |
Équipe courante de l'utilisateur authentifié — nom, slug, owner, member-count, plan | — |
| GET | /v1/credits |
Balance de crédits courante {balance, period_start, period_end, plan} |
— |
| GET | /v1/credits/history |
Ledger de crédits paginé (?per_page=50) |
— |
| GET | /v1/dashboard |
Payload de dashboard agrégé — KPIs, recent activity, quick actions | — |
| GET | /v1/admin/api-costs |
Coûts des providers externes par endpoint — admin only | — |
/v1/team
Renvoie l'équipe courante. Le team-switch s'effectue côté frontend via cookie de session — l'API elle-même lit toujours l'équipe sélectionnée à partir de $request->user()->currentTeam().
curl "$BASE/team" -H "Authorization: Bearer $TOKEN"
{
"data": {
"id": 3,
"name": "Acme GmbH",
"slug": "acme-gmbh",
"owner_id": 12,
"member_count": 4,
"plan": "pro",
"created_at": "2025-11-04T10:22:13Z"
}
}
/v1/credits
Affiche la balance de crédits incl. la période de facturation. L'historique détaillé des transactions avec patterns de spending passe par l'endpoint Credits dédié — voir API Crédits.
curl "$BASE/credits" -H "Authorization: Bearer $TOKEN"
{
"data": {
"balance": 4823,
"plan": "pro",
"period_start": "2026-04-01T00:00:00Z",
"period_end": "2026-04-30T23:59:59Z",
"auto_topup": false
}
}
GET /v1/credits/history pagine les events de consommation individuels avec endpoint, credits_used, created_at.
/v1/dashboard
Payload de bootstrap agrégé pour l'UI dashboard. Contient :
headline_kpis— score AVI, count de top-10 keywords, nouveaux backlinks, score Site Auditrecent_activity— les 10 derniers events au niveau équipe (article generated, audit completed, ...)quick_actions— tâches high-priority suggérées par l'Action Center
Un seul roundtrip plutôt que 5 appels séparés — d'où l'endpoint dédié.
curl "$BASE/dashboard" -H "Authorization: Bearer $TOKEN" | jq .data.headline_kpis
/v1/admin/api-costs
Admin only — fournit la table de cost-tracking des providers externes (OpenAI, Anthropic, ScraperAPI, DataForSEO, Resend ...). Les utilisateurs sans rôle admin reçoivent 403 Forbidden.
curl "$BASE/admin/api-costs?from=2026-04-01&to=2026-04-30" \
-H "Authorization: Bearer $TOKEN"
Réponse :
{
"data": [
{ "provider": "anthropic", "model": "claude-opus-4-7",
"calls": 1842, "input_tokens": 4_120_000, "output_tokens": 980_000,
"usd_cost": 184.32 },
{ "provider": "scraperapi",
"calls": 9211, "usd_cost": 27.63 }
],
"totals": { "usd_cost": 312.84, "credits_billed": 12_400 }
}
Gestion des tokens
Les tokens API sont créés dans l'UI via /settings/api-tokens — l'interface HTTP correspondante vit dans le module Auth (login/logout/token-issue). Détails : API Auth.
Règle empirique :
- Personal Access Token — créé manuellement dans l'UI, longue durée de vie, scope = équipe courante.
- OAuth Token — pour les intégrations tierces, TTL plus courte, refresh flow.
Les tokens ne sont pas rotés via les endpoints Account Meta — utilise les endpoints Auth pour cela.
Pièges
currentTeam()est piloté par cookie. Si un utilisateur appartient à plusieurs équipes, switche d'abord côté frontend (/teams/switch) avant de lire/v1/team./dashboardn'est pas caché. En cas de polling fréquent, mets en place un cache client propre avec ~30 s de TTL./admin/api-costsest brut. Les colonnes sont les entrées de coût de provider internes — la conversion en crédits passe séparément par la couche billing.- Les limites de plan ne fuitent pas via
/team. Lis les détails de quota (max-projects, max-articles) via l'endpoint plan dans le module Auth.
Voir aussi : API Auth · API Crédits · API Projets.