Skip to main content
GET
/
v2
/
billing
/
notifications
/
recent
List recent billing notification events
curl --request GET \
  --url https://api.topograph.co/v2/billing/notifications/recent \
  --header 'x-api-key: <api-key>'
[
  {
    "id": "e8f4c2a1-3b7d-4e9f-8a1c-6b5d3e2a9f01",
    "kind": "low_balance",
    "identifier": "warning",
    "accountId": "acc_01H8XYZ...",
    "dedupKey": "low_balance:warning:acc_01H8XYZ:2026-04-22",
    "firedAt": "2026-04-22T08:12:34.567Z",
    "payload": {
      "tierCents": 100000,
      "balanceCents": 85000
    },
    "emailSent": true,
    "webhookSent": true,
    "workspaceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
]

Authorizations

x-api-key
string
header
required

Query Parameters

limit
number

Max events to return (1–200, default 50).

Response

200 - application/json
id
string
required

Event ID.

Example:

"e8f4c2a1-3b7d-4e9f-8a1c-6b5d3e2a9f01"

kind
enum<string>
required

Notification kind.

Available options:
low_balance,
high_usage,
auto_topup
Example:

"low_balance"

identifier
string
required

Tier name (warning / critical / depleted) for low_balance and high_usage, or outcome (succeeded / failed) for auto_topup.

Example:

"warning"

accountId
string
required

Account the event belongs to.

Example:

"acc_01H8XYZ..."

dedupKey
string
required

Dedup key used to enforce one-fire-per-threshold-per-period.

Example:

"low_balance:warning:acc_01H8XYZ:2026-04-22"

firedAt
string<date-time>
required

When the event fired.

Example:

"2026-04-22T08:12:34.567Z"

payload
object
required

Kind-specific payload (threshold cents, period info, auto-topup details, etc.).

Example:
{
"tierCents": 100000,
"balanceCents": 85000
}
emailSent
boolean
required

Whether an email was dispatched.

Example:

true

webhookSent
boolean
required

Whether a webhook was dispatched.

Example:

true

workspaceId
string | null

Workspace the event was scoped to, or null for account-level events.

Example:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"