Get Account Usage Summary for Authenticated User for each feature
Scope
Use this API when you need remaining capacity, which billing mode is active, and how much of this month’s usage has already been billed — for example dashboards, pre-flight "can I run this check?" UX, or low-balance alerts.
Do not use it for per-check history, date-range reporting, or as a substitute for the check APIs themselves.
What it returns
A precomputed summary of how the authenticated account is billed for one feature, plus remaining capacity across these modes:
| Mode | Meaning |
|---|---|
| postpay | Invoice later. Usage is not prepaid. |
| subscription | Recurring allocated checks (currently populated in depth for tin_check). |
| Pay-as-you-go | Wallet / pay-as-you-go spend. |
| credit_packs | Prepaid check packs (self-serve and sales-led). |
Checks are deducted in this order (also returned as data.billing_precedence):
- postpay
- subscription
- Pay-as-you-go
- credit pack
If several modes are enabled: true, the first one in that list is the one that will be charged next.
Request
| Query param | Required | Notes |
|---|---|---|
feature | Yes | Feature slug, exact match. Example: tin_check, tax_transcript |
Common feature slugs
tin_check, tax_transcript, tax_transcript_individual, transcript_eservice, boi_reporting, bulk_tin_check, vendor-onboarding, watchlist_screening, public-records-search, individual-tax-assessment-report, income-verification, business-tax-assessment-report, business-verification, vendor-onboarding-essentials, tax_exempt, sos_search, name_lookup, us_address_verification, us_address_verification_v2, watchlist_ofac, death_master_file, i9_verification, fatca_giin_search
If you pass an unknown slug, the 400 invalid_feature body includes supported_features — use that list rather than hard-coding every KYB country.
Success response (200):
{
"success": true,
"success_message": "Retrieved data successfully",
"data": { }
}{
"last_updated_at": "2026-08-13T11:00:00+00:00",
"latest_usage_at": "2026-08-13T10:42:11+00:00",
"feature": "tin_check",
"user": "[email protected]",
"billing_precedence": ["postpay", "subscription", "Pay-as-you-go", "credit_pack"],
"wallet_balance": {
"amount": 125.50,
"currency": "USD"
},
"entitlements": {
"subscription": {
"enabled": true,
"total_allocated": 12000,
"total_used": 4300,
"total_expired": 0,
"total_remaining": 7700,
"monthly_allocated": 1000,
"monthly_used": 240,
"monthly_remaining": 760,
"current_month_billing_cycle": {
"start_date": "2026-08-01T00:00:00+00:00",
"end_date": "2026-08-31T23:59:59+00:00"
},
"renewal_date": "2026-08-31T23:59:59+00:00"
},
"Pay-as-you-go": {
"enabled": false,
"current_month": "2026-08",
"checks_used": 0
},
"credit_packs": {
"enabled": true,
"total_allocated": 500,
"total_used": 120,
"credits_expired": 0,
"total_remaining": 380,
"packs": [
{
"allocated": 500,
"checks_used": 120,
"remaining": 380,
"valid_till": "2027-02-03T14:00:00+00:00",
"digital_buy": true,
"free_checks": false
}
]
},
"postpay": {
"enabled": false,
"current_month": "2026-08",
"checks_used": 0
}
}
}Field notes:
| Field | How to use it |
|---|---|
last_updated_at | When this snapshot was built. Expect lag of up to ~30 minutes. |
latest_usage_at | Last debit on the account (any feature), not necessarily this feature. Nullable if the account has never been billed. |
wallet_balance.amount | Remaining wallet funds for the account, in USD — not per feature. |
entitlements.*.enabled | Whether that billing mode currently has capacity / is active. |
subscription.monthly_* | Current subscription period. monthly_remaining can be negative if overage is unbilled. Meaningful today mainly for tin_check. |
Pay-as-you-go.checks_used | USD spent this calendar month on this feature via wallet (amount + tax), not a check count. |
postpay.checks_used | Check count billed this calendar month on postpay. |
credit_packs.total_remaining | Remaining prepaid checks across packs (lifetime remaining, not this month only). |
packs[].digital_buy | true = purchased in-product; false = typically sales-led. |
packs[].free_checks | Complimentary / free-tier pack. |
packs[].valid_till | Pack expiry. ISO-8601 or null. |
Note: Do not add remaining checks across modes. Follow billing_precedence and use the first enabled mode.
Errors:
{
"success": false,
"errors": [
{
"code": "invalid_feature",
"message": "The specified feature 'tincheck' is not supported.",
"supported_features": ["tin_check", "giin_search", "..."]
}
],
"data": null
}{
"detail": ["Invalid token header. No credentials provided."]
}| HTTP | errors[].code | When |
|---|---|---|
| 400 | missing_required_parameter | feature omitted. Body includes supported_features. |
| 400 | invalid_feature | Slug is not a known feature. Body includes supported_features. |
| 400 | no_usage_summary | No snapshot for this user + feature + current month. Typical when the account has no credits for that feature yet. Message asks to contact [email protected]. |
| 403 | -- | Invalid or missing token (detail array, not the errors envelope). |
| 500 | internal_server_error | Unexpected server failure. |
| 429 | -- | Rate limiting |
Retry 500 with backoff. Do not retry 400 for the same feature without changing the request. On 403, refresh the token once, then re-authenticate if refresh fails.
Freshness and rate of calling
The payload is not realtime. Summaries are rebuilt on a ~30 minute cycle and served from cache for the same window.
- Polling faster than every 30 minutes will not make remaining counts more current.
- Cache the response locally keyed by feature + calendar month (
YYYY-MM). current_month/ billing cycle is the calendar month in UTC, e.g."2026-08". There is no from / to filter.
Integration checklist
- Authenticate with JWT (or OAuth) and send
Authorization: Bearer …. - Call with an exact feature slug; keep a local map of the features your product uses.
- Treat
success === trueas the only success path; always inspecterrors[].codeon failure. - Use
billing_precedence+entitlements.*.enabledto decide which remaining number to use. - Do not mix units: subscription and credit packs are check counts; Pay-as-you-go
checks_usedandwallet_balanceare USD. - Call once per feature; fan out in parallel if you need several features, and cache.
- If you get
no_usage_summary, the account likely has no entitlement for that feature yet — surface a “contact support / subscribe” state rather than retrying.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
