Get the wallet

gethttps://api.mentio.dev/v1/billing/wallet

Read the prepaid balance in full; GET /v1/usage is the short form.

It adds what a day costs, what a resume needs, the welcome credit, the newest top-up, top-up bounds and auto-recharge settings.

Authentication

AuthorizationBearer <token>Required

An API key (mk_live_...) from the dashboard or an OAuth access token. See Authentication.

Response

200Balance, burn, and whether tracking is paused
balanceCentsintegerRequired

Ledger balance: every credit minus every settled debit.

pendingCentsintegerRequired

Mentions and comments billed since the last daily settlement, priced but not yet debited.

effectiveBalanceCentsintegerRequired

balanceCents minus pendingCents: what the stop sweep and the keyword gate look at.

burnPerDayCentsintegerRequired

Average daily debit over the last 7 days (or since the workspace was created).

daysLeftintegernullableRequired

effectiveBalanceCents divided by burnPerDayCents; null when nothing is burning.

0 to ∞
stoppedbooleanRequired

The wallet paused tracking; a top-up that covers a day of every keyword resumes it.

lowBalancebooleanRequired

Running, and the effective balance is at or under 20 percent of the last credit: the same rule as the low-balance email.

activeKeywordsintegerRequired

Unmuted keywords.

0 to ∞
autoMutedKeywordsintegerRequired

Keywords the wallet paused; a top-up resumes them.

0 to ∞
nextDayCentsintegerRequired

What one more day of the running keywords costs; tracking stops when the effective balance drops under it.

resumeCostCentsintegerRequired

What one day of every keyword (running and paused) costs; a stopped workspace resumes once the effective balance covers it.

signupCreditobjectnullableRequired

The welcome credit this workspace received, or null (a second workspace of the same user gets none).

+Show 2 properties
amountCentsintegerRequired

Integer USD cents.

grantedAtstringRequired

ISO 8601 timestamp, UTC.

lastTopUpAtstringnullableRequired

Newest paid top-up; null before the first.

billingConfiguredbooleanRequired

False when this deployment has no Polar credentials: the top-up button is hidden.

minTopUpCentsintegerRequired

Smallest top-up the checkout accepts.

maxTopUpCentsintegerRequired

Largest single top-up.

defaultTopUpCentsintegerRequired

Amount prefilled in the checkout.

currencystringRequired

Every amount on this page is in USD cents.

One ofUSD
autoRechargeobjectRequired

Automatic top-up: off unless set in the dashboard.

+Show 8 properties
availablebooleanRequired

This deployment can charge saved cards; false hides the setting.

enabledbooleanRequired

Charge the saved card automatically when the balance runs low.

thresholdCentsintegerRequired

Charge when the effective balance drops under this.

amountCentsintegerRequired

How much to add per automatic charge (same bounds as a manual top-up).

weeklyLimitCentsintegernullableRequired

Most the saved card may be charged automatically over any 7 days, before tax; null = no limit.

spentThisWeekCentsintegerRequired

What counts against the weekly limit over the last 7 days, before tax: automatic charges made plus any still settling.

lastRunAtstringnullableRequired

Newest successful automatic charge.

lastErrorstringnullableRequired

Why the last automatic charge failed; null after a success.

401Missing or invalid credentials
+Show 1 property
errorobjectRequired

The error.

+Show 4 properties
codestringRequired

Stable machine-readable code; branch on this, never on the message. Codes are additive: a client should treat one it does not know as a generic failure of the same status.

+Show 46 enum values
unauthorizedforbiddenread_only_keyvalidation_errornot_foundinvalid_cursorpayload_too_largeidempotency_key_in_useidempotency_key_reusedrate_limitedduplicate_keywordinsufficient_balancekeyword_limit_reachedbilling_not_configuredorder_not_creditedschedule_requiredunknown_channelnot_a_digesthourly_email_unsupportedslack_not_connectedslack_not_configuredtelegram_not_configuredfeed_unreadablefeed_login_requiredfeed_login_expiredfeed_limit_reachedfeed_auth_not_configuredemail_not_configuredinvalid_assigneeclassification_pendinginvalid_memberalready_memberlast_ownerduplicate_segmentfilter_too_complexduplicate_viewduplicate_groupdefault_groupdefault_group_contextgroup_changedinvalid_signaturewebhook_not_configuredinvalid_tokenprotected_userupstream_unavailableinternal_error
messagestringRequired

Human-readable detail; may change between releases.

requestIdstringOptional

The id of this request (also the X-Request-Id response header); quote it to support.

retryAfterSecondsintegerOptional

For rate_limited and other retryable errors: how long to wait before retrying (mirrors the Retry-After header).