LoguDocs
Open Logu

Billing · getBilling

Get the plan and usage

GET /v1/billing

Owners only. The workspace's plan (free or pro), its Stripe subscription (status, price tier, period end, whether it cancels at period end), this calendar month's usage (asks, events, metric reports; UTC) and what it has (agents, members, webhook endpoints), the Free plan's limits, and whether Free limits are enforced on this server (enforced).

Who may call it
humans: Owners and up
Server
https://api.logu.dev

Parameters#

NameInTypeRequiredDescription
Logu-WorkspaceheaderstringoptionalHumans only: the workspace to act in (default: your personal workspace). Agents always act in their API key's workspace. · e.g. wsp_01K7D7Y8Z0B2D4F6H8K0M2P4R6

Example#

curl -s "https://api.logu.dev/v1/billing" \
  -H "Authorization: Bearer $LOGU_SESSION_TOKEN"

Responses#

200

The plan and usage.

{
  "plan": "pro",
  "comped": false,
  "enforced": true,
  "subscription": {
    "status": "active",
    "tier": "founder_9",
    "priceUsd": 9,
    "currentPeriodEnd": "2026-11-02T12:00:00.000Z",
    "cancelAtPeriodEnd": false
  },
  "usage": {
    "period": "2026-10",
    "asks": 342,
    "events": 1880,
    "metrics": 12400,
    "agents": 4,
    "members": 3,
    "webhookEndpoints": 1
  },
  "freeLimits": {
    "members": 1,
    "asksPerMonth": 100,
    "eventsPerMonth": 1000,
    "metricsPerMonth": 10000,
    "agents": 2,
    "webhookEndpoints": 0,
    "historyDays": 30
  },
  "meters": [
    {
      "meter": "asks",
      "used": 342,
      "quota": 5000,
      "ceiling": 20000,
      "state": "ok"
    },
    {
      "meter": "events",
      "used": 41200,
      "quota": 50000,
      "ceiling": 200000,
      "state": "warning"
    },
    {
      "meter": "metrics",
      "used": 12400,
      "quota": 250000,
      "ceiling": 1000000,
      "state": "ok"
    },
    {
      "meter": "storage",
      "used": 1288490188,
      "quota": 21474836480,
      "ceiling": 26843545600,
      "state": "ok"
    },
    {
      "meter": "whatsapp",
      "used": 100,
      "quota": 100,
      "ceiling": 500,
      "state": "full"
    },
    {
      "meter": "emails",
      "used": 212,
      "quota": null,
      "ceiling": 5000,
      "state": "ok"
    },
    {
      "meter": "projects",
      "used": 7,
      "quota": 100,
      "ceiling": 500,
      "state": "ok"
    },
    {
      "meter": "metricNames",
      "used": 31,
      "quota": 500,
      "ceiling": 2000,
      "state": "ok"
    }
  ],
  "deliveryCapped": {
    "whatsapp": true,
    "email": false
  },
  "checkoutAvailable": true
}
Response fields
FieldTypeRequiredNotes
plan"free" | "pro"required
compedbooleanrequired
enforcedbooleanrequired
subscriptionobject | nullrequired
subscription.statusstringrequired
subscription.tier"founder_9" | "founder_19" | "pro_29"required
subscription.priceUsdnumberrequired
subscription.currentPeriodEndstring | nullrequireddate-time
subscription.cancelAtPeriodEndbooleanrequired
usageobjectrequired
usage.periodstringrequired
usage.asksintegerrequired
usage.eventsintegerrequired
usage.metricsintegerrequired
usage.agentsintegerrequired
usage.membersintegerrequired
usage.webhookEndpointsintegerrequired
freeLimitsobjectrequired
freeLimits.membersintegerrequired
freeLimits.asksPerMonthintegerrequired
freeLimits.eventsPerMonthintegerrequired
freeLimits.metricsPerMonthintegerrequired
freeLimits.agentsintegerrequired
freeLimits.webhookEndpointsintegerrequired
freeLimits.historyDaysintegerrequired
metersobject[]required
meters[].meter"asks" | "events" | "metrics" | "storage" | "whatsapp" | "emails" | "images" | "testAsks" | "testEvents" | "testMetrics" | "projects" | "metricNames"required
meters[].usedintegerrequired
meters[].quotainteger | nullrequired
meters[].ceilingintegerrequired
meters[].state"ok" | "warning" | "full"required
deliveryCappedobjectrequired
deliveryCapped.whatsappbooleanrequired
deliveryCapped.emailbooleanrequired
checkoutAvailablebooleanrequired

Errors#

Every error is {"error":{"code","message","hint","docUrl","requestId"}}: branch on code. See Errors.

StatusCodeMeaning
401unauthorizedNo credentials, or the API key or session is invalid or revoked.
403forbiddenThe caller is authenticated but may not do this (wrong role, or an API key on a human-only endpoint).
404not_foundNo such route, or the resource doesn't exist in your workspace.
500internal_errorSomething went wrong on Logu's side.