GET /api/v1/me
Read-only snapshot of the authenticated user. Use this to display balance, current pricing tier, and trial status. All monetary fields are integer EUR cents (100 cents = €1.00). Manage account settings such as auto top-up in the Developers Portal — they are exposed read-only here for reference.
Call the endpoint
curl -sS -H "Authorization: Bearer $SYBILION_API_TOKEN" \
https://api.sybilion.dev/api/v1/meimport os
from sybilion import Client
client = Client(token=os.environ["SYBILION_API_TOKEN"])
me = client.me()
trial_left = me.signup_trial.remaining_eur_cents if me.signup_trial else 0
print(
"tier:", me.api_usage_tier,
"balance:", me.available_eur_cents,
"trial_left:", trial_left,
)package main
import (
"context"
"fmt"
"log"
"os"
"go.sybilion.dev/sybilion"
)
func main() {
c := sybilion.New(sybilion.Options{
Token: os.Getenv("SYBILION_API_TOKEN"),
})
me, err := c.Me(context.Background())
if err != nil {
log.Fatal(err)
}
fmt.Printf("tier=%d balance=%d\n",
me.GetApiUsageTier(), me.GetAvailableEurCents())
}library(sybilion)
cl <- sybilion_client(token = Sys.getenv("SYBILION_API_TOKEN"))
me <- cl$raw$ApiV1MeGet()$content
trial_left <- if (!is.null(me$signup_trial)) me$signup_trial$remaining_eur_cents else 0
cat("tier:", me$api_usage_tier, "balance:", me$available_eur_cents,
"trial_left:", trial_left, "\n")import com.sybilion.Client;
import com.sybilion.Options;
Client c = new Client(Options.builder().token(System.getenv("SYBILION_API_TOKEN")).build());
var me = c.defaultApi().apiV1MeGet();
System.out.printf("tier=%d balance=%d%n", me.getApiUsageTier(), me.getAvailableEurCents());Response
{
"user_id": "1f2a8b3e-4c5d-46d7-9a01-2b3c4d5e6f70",
"balance_eur_cents": 1234,
"available_eur_cents": 1134,
"api_usage_tier": 1,
"lifetime_paid_cents": 5000,
"payment_count": 1,
"has_ever_paid": true,
"euro_tranches": [
{
"id": "9c8d7e6f-1a2b-3c4d-5e6f-7a8b9c0d1e2f",
"source": "stripe",
"initial_eur_cents": 5000,
"remaining_eur_cents": 3865,
"expires_at": "2027-04-30T10:05:00Z",
"created_at": "2026-04-30T10:05:00Z"
}
],
"signup_trial": {
"granted_at": "2026-04-15T10:00:00Z",
"initial_eur_cents": 100,
"remaining_eur_cents": 0,
"expires_at": "2026-04-30T10:00:00Z"
},
"auto_recharge": {
"enabled": false,
"below_eur_cents": 0,
"target_eur_cents": 0,
"monthly_cap_cents": 0,
"meter_cents": 0,
"has_stripe_customer": true,
"meter_month": null
}
}Field reference
Top-level
| Field | Meaning |
|---|---|
user_id | Stable UUID for the caller. |
balance_eur_cents | Ledger balance in EUR cents (top-ups, charges, refunds, grants). |
available_eur_cents | balance_eur_cents minus active holds for in-flight async jobs, in EUR cents. |
api_usage_tier | Your current pricing tier level. Drives rate-limit and concurrency caps — see Tiers. |
lifetime_paid_cents | Your all-time top-up total in EUR cents. |
payment_count | Number of successful top-ups on your account. |
has_ever_paid | true once your first top-up settles. |
When async forecast jobs are running, holds reserve part of the balance until each job settles or fails; then available_eur_cents moves back toward balance_eur_cents.
euro_tranches[]
Active grants that still have a positive balance and have not expired (remaining_eur_cents > 0 AND expires_at > now()). Tranches are consumed in expires_at ASC order.
| Field | Meaning |
|---|---|
id | UUID of the grant. |
source | One of signup_trial, stripe, partner, legacy. Other labels may appear for custom grants. |
initial_eur_cents | Amount initially granted in the tranche, in EUR cents. |
remaining_eur_cents | Amount left after charges and holds, in EUR cents. |
expires_at | RFC3339 timestamp. Always present — every tranche has an expiry (top-ups are typically valid for 1 year). |
created_at | RFC3339 timestamp the grant was inserted. |
signup_trial
Present only when the caller received a free trial grant on first authentication; the field is omitted otherwise.
| Field | Meaning |
|---|---|
granted_at | RFC3339 timestamp the trial was granted. |
initial_eur_cents | Amount granted at signup, in EUR cents. |
remaining_eur_cents | Trial amount left, in EUR cents (drops to 0 after expiry sweep). |
expires_at | RFC3339 timestamp or omitted. |
auto_recharge
Read-only snapshot of auto top-up settings (enabled boolean plus the configured trigger / target / monthly cap). The exact field set may evolve. Configure auto top-up from the Developers Portal — there is no public API or SDK to change it.
Common errors
| Code | Cause | What to do |
|---|---|---|
401 | Missing or invalid bearer token. | Check the API key and the Authorization: Bearer header. |