Account-Meta-API
Aktueller User, Team-Switch, Profile-Updates, Token-Management — Account-spezifische Endpoints.
Die Account-Meta-API liefert die Account- und Team-Stammdaten, die jedes Frontend beim Bootstrap braucht — aktuelles Team, Credits-Stand, Dashboard-KPIs und (admin-only) interne API-Cost-Reports. Alle Endpoints sind Sanctum-authentifiziert und team-scoped.
Endpoints
| Method | Endpoint | Beschreibung | Credits |
|---|---|---|---|
| GET | /v1/team |
Aktuelles Team des authentifizierten Users — Name, Slug, Owner, Member-Count, Plan | — |
| GET | /v1/credits |
Aktueller Credits-Stand {balance, period_start, period_end, plan} |
— |
| GET | /v1/credits/history |
Paginierter Credit-Ledger (?per_page=50) |
— |
| GET | /v1/dashboard |
Aggregiertes Dashboard-Payload — KPIs, Recent Activity, Quick-Actions | — |
| GET | /v1/admin/api-costs |
Externe Provider-Kosten pro Endpoint — Admin only | — |
/v1/team
Liefert das aktuelle Team. Team-Switch erfolgt im Frontend ueber Session-Cookie — die API selbst liest immer das aktuell ausgewaehlte Team aus $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
Zeigt den Credits-Stand inkl. Abrechnungsperiode. Detaillierte Transaktions-Historie mit Spending-Patterns gibt es ueber den dedizierten Credits-Endpunkt — siehe Credits-API.
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 paginiert die einzelnen Verbrauchs-Events mit endpoint, credits_used, created_at.
/v1/dashboard
Aggregierter Bootstrap-Payload fuer das Dashboard-UI. Enthaelt:
headline_kpis— AVI-Score, Top-10-Keywords-Count, neue Backlinks, Site-Audit-Scorerecent_activity— letzte 10 Events team-weit (Article generated, Audit completed, ...)quick_actions— vom Action-Center vorgeschlagene High-Priority-Tasks
Ein einziger Roundtrip statt 5 separater Calls — deshalb der dedizierte Endpoint.
curl "$BASE/dashboard" -H "Authorization: Bearer $TOKEN" | jq .data.headline_kpis
/v1/admin/api-costs
Admin only — liefert die Cost-Tracking-Tabelle der externen Provider (OpenAI, Anthropic, ScraperAPI, DataForSEO, Resend ...). User ohne Admin-Rolle erhalten 403 Forbidden.
curl "$BASE/admin/api-costs?from=2026-04-01&to=2026-04-30" \
-H "Authorization: Bearer $TOKEN"
Response:
{
"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 }
}
Token-Management
API-Tokens werden im UI ueber /settings/api-tokens erzeugt — die HTTP-Schnittstelle dazu lebt im Auth-Modul (Login/Logout/Token-Issue). Details: Auth-API.
Faustregel:
- Personal Access Token — manuell im UI erzeugt, lange Lebensdauer, Scope = aktuelles Team.
- OAuth-Token — fuer Drittanbieter-Integrationen, kuerzere TTL, Refresh-Flow.
Tokens werden nicht ueber die Account-Meta-Endpoints rotiert — dafuer Auth-Endpoints nutzen.
Pitfalls
currentTeam()ist Cookie-gesteuert. Wenn ein User in mehreren Teams ist, switche im Frontend zuerst (/teams/switch), bevor du/v1/teamlesen./dashboardist nicht gecacht. Bei haeufigem Polling eigenen Client-Cache mit ~30 s TTL einsetzen./admin/api-costsist roh. Die Spalten sind die internen Provider-Cost-Eintraege — Credits-Umrechnung passiert separat im Billing-Layer.- Plan-Limits leakt nicht ueber
/team. Quota-Details (Max-Projects, Max-Articles) lesen ueber den Plan-Endpoint im Auth-Modul.
Verwandt: Auth-API · Credits-API · Projekte-API.