openapi: 3.2.0 info: description: 'The Sybilion API powers the Sybilion Developers Portal: forecasts, drivers, catalog, account and usage. Authenticate every request with `Authorization: Bearer ` using either an API key created in the Developers Portal or an Auth0 access token from your dashboard session. ' title: Sybilion Me API version: 0.1.0 servers: - url: / tags: - name: Me paths: /api/v1/me: get: description: 'Returns the account snapshot for the current user: credit balance, active credit tranches, auto-recharge settings, and current pricing tier. All monetary fields are integer EUR cents (1 EUR = 100 cents). ' responses: '200': content: application/json: schema: $ref: '#/components/schemas/MeResponse' description: Account snapshot for the authenticated user. '401': description: Missing or invalid bearer token. security: - bearerAuth: [] summary: Account snapshot — balance, tier, and credit tranches tags: - Me components: schemas: AutoRechargeState: example: enabled: true below_eur_cents: 500 target_eur_cents: 5000 monthly_cap_cents: 20000 meter_cents: 3500 has_stripe_customer: true properties: below_eur_cents: description: When the available balance drops below this many EUR cents, a recharge is triggered. format: int64 type: integer enabled: description: Whether auto-recharge is active for this account. type: boolean has_stripe_customer: description: Whether a Stripe customer record exists (required for auto-recharge to run). type: boolean meter_cents: description: EUR cents charged via auto-recharge in the current UTC calendar month. format: int64 type: integer meter_month: description: UTC month start for `meter_cents`; null if no auto-recharge has run this month. format: date type: - string - 'null' monthly_cap_cents: description: Maximum EUR cents that may be charged via auto-recharge per UTC calendar month. 0 = no cap. format: int64 type: integer target_eur_cents: description: Balance target after a successful recharge, in EUR cents. format: int64 type: integer required: - enabled - below_eur_cents - target_eur_cents - monthly_cap_cents - meter_cents - has_stripe_customer type: object EuroTranche: description: 'A time-limited credit allocation. Multiple tranches can be active simultaneously; the system consumes the one expiring soonest first. ' example: id: b2c3d4e5-f6a7-8901-bcde-f12345678901 source: stripe initial_eur_cents: 5000 remaining_eur_cents: 4750 created_at: '2026-05-01T09:00:00Z' expires_at: '2027-05-01T09:00:00Z' properties: created_at: format: date-time type: string expires_at: format: date-time type: string id: format: uuid type: string initial_eur_cents: description: Original size of this tranche in EUR cents. format: int64 type: integer remaining_eur_cents: description: Unconsumed balance remaining in this tranche, in EUR cents. format: int64 type: integer source: description: Origin of the tranche — one of `signup_trial`, `stripe`, `partner`, `legacy`. Other labels may appear for custom grants. type: string required: - id - source - initial_eur_cents - remaining_eur_cents - expires_at - created_at type: object MeResponse: description: 'Authenticated user snapshot. All monetary fields are integer EUR cents (1 EUR = 100 cents). ' example: user_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 balance_eur_cents: 4750 available_eur_cents: 4250 api_usage_tier: 1 lifetime_paid_cents: 10000 payment_count: 2 has_ever_paid: true role: user euro_tranches: - id: b2c3d4e5-f6a7-8901-bcde-f12345678901 source: stripe initial_eur_cents: 5000 remaining_eur_cents: 4750 created_at: '2026-05-01T09:00:00Z' expires_at: '2027-05-01T09:00:00Z' properties: api_usage_tier: description: Current pricing tier level. Higher levels unlock better rate limits and job concurrency. type: integer auto_recharge: $ref: '#/components/schemas/AutoRechargeState' available_eur_cents: description: Spendable balance in EUR cents — `balance_eur_cents` minus any credits held for in-flight async jobs. format: int64 type: integer balance_eur_cents: description: Total credit balance in EUR cents, before deducting active holds. format: int64 type: integer euro_tranches: description: Active credit grants (non-empty, unexpired), consumed in `expires_at` ascending order. items: $ref: '#/components/schemas/EuroTranche' type: array has_ever_paid: description: True once the account has completed at least one successful Stripe payment. type: boolean lifetime_paid_cents: description: Cumulative EUR cents charged across all Stripe payments, all time. format: int64 type: integer payment_count: description: Total number of successful Stripe payments on this account. type: integer role: description: Account role. `admin` accounts can sign in to the staff back-office; regular accounts are `user`. enum: - user - admin type: string signup_trial: description: Present when a free trial tranche was granted at signup. Omitted for accounts with no trial. properties: expires_at: format: date-time type: string granted_at: format: date-time type: string initial_eur_cents: format: int64 type: integer remaining_eur_cents: format: int64 type: integer type: - object - 'null' user_id: format: uuid type: string required: - user_id - balance_eur_cents - available_eur_cents - api_usage_tier - lifetime_paid_cents - payment_count - has_ever_paid - role - euro_tranches type: object securitySchemes: bearerAuth: scheme: bearer type: http