Skip to main content

Usage & Credits

Informer meters platform activity against a tenant-wide credit pool. Every billable action — AI calls, agent runs, app/job compute, and storage — consumes credits drawn from that pool. Credits are purchased through Subscriptions; this section covers how usage is governed, enforced, and reported.

Core concepts

Credit pool

The credit pool is the tenant's balance of spendable credits, synced from the License Manager and cached locally in AiEntitlementCache. The normalized pool exposed in API responses looks like:

{
"included": 50000,
"used": 12340,
"remaining": 37660,
"overageRate": 1.0,
"legacyDollars": 0,
"paygRate": null
}

Resource types

Every metered activity is attributed to a canonical resource type. Types are defined in code (not editable) and metered in one of two modes:

ModeMeaningExamples
eventAccumulates per occurrence; credits computed locally at capture timeai, agent_run, app_compute, job_compute
gaugePoint-in-time measurement reported directly to the License Manager (cloud only)app_storage, workspace_storage, file_storage, es_index_count

See Usage Reporting → Resource Types for the full registry.

Usage profiles

A usage profile governs who can use what, and how much:

  • allowedModelTiers — which AI model tiers the profile may use (everyday, advanced, strategic)
  • creditCapPerMonth — a per-actor monthly credit ceiling (null = unlimited, 0 = hard stop, positive = capped)

Profiles are assigned to teams (and agents). A user's effective profile is resolved from their team memberships — when a user belongs to multiple teams, the profiles are merged into the most permissive result (union of tiers, highest cap). When no team assignment exists, the tenant's default profile applies.

Entity budgets

An optional entity budget caps monthly credit spend for a specific app or dataset, independent of the per-actor profile cap.

Enforcement flow

Before a metered AI operation runs, the enforcer evaluates the request in order. The first failing check throws 402 Payment Required with a machine-readable code:

OrderCheckDenial code
1Entitlement present (License Manager JWT cached)NOT_CONFIGURED
2Requested model tier allowed by effective profileTIER_NOT_ALLOWED
3Actor's month-to-date usage below creditCapPerMonthCREDIT_LIMIT
4Entity (app/dataset) budget not exhaustedBUDGET_EXHAUSTED
5Credit pool has balance (slush → auto-replenish → grace window → cutoff)HARD_CUTOFF
{
"statusCode": 402,
"error": "Payment Required",
"message": "Monthly credit limit reached",
"code": "CREDIT_LIMIT",
"profileRemaining": 0,
"poolRemaining": 37660
}

BYOK

When a tenant supplies its own provider API keys (BYOK), AI calls do not draw from the credit pool: the profile cap, entity budget, and pool-balance checks are skipped for ai usage. Tier and entitlement checks still apply, and non-AI resource types (compute, agent runs, storage) still consume credits.

Permissions

PermissionGrants
tenant.superuserRead usage profiles, resource types, and entity budgets
usage.writeCreate/update/delete profiles; set entity budgets
billing.manageUsage reporting (/api/usage*) and subscription management

In this section

  • Usage Profiles — define and assign profiles that govern tier access and credit caps
  • Entity Budgets — cap per-app / per-dataset monthly spend
  • Usage Reporting — credit usage summaries, monthly trends, and top consumers