Get the wallet
https://api.mentio.dev/v1/billing/walletRead 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>RequiredAn API key (mk_live_...) from the dashboard or an OAuth access token. See Authentication.
Response
balanceCentsintegerRequiredLedger balance: every credit minus every settled debit.
pendingCentsintegerRequiredMentions and comments billed since the last daily settlement, priced but not yet debited.
effectiveBalanceCentsintegerRequiredbalanceCents minus pendingCents: what the stop sweep and the keyword gate look at.
burnPerDayCentsintegerRequiredAverage daily debit over the last 7 days (or since the workspace was created).
daysLeftintegernullableRequiredeffectiveBalanceCents divided by burnPerDayCents; null when nothing is burning.
0 to ∞stoppedbooleanRequiredThe wallet paused tracking; a top-up that covers a day of every keyword resumes it.
lowBalancebooleanRequiredRunning, and the effective balance is at or under 20 percent of the last credit: the same rule as the low-balance email.
activeKeywordsintegerRequiredUnmuted keywords.
0 to ∞autoMutedKeywordsintegerRequiredKeywords the wallet paused; a top-up resumes them.
0 to ∞nextDayCentsintegerRequiredWhat one more day of the running keywords costs; tracking stops when the effective balance drops under it.
resumeCostCentsintegerRequiredWhat one day of every keyword (running and paused) costs; a stopped workspace resumes once the effective balance covers it.
signupCreditobjectnullableRequiredThe welcome credit this workspace received, or null (a second workspace of the same user gets none).
+-Show 2 propertiesHide 2 properties
amountCentsintegerRequiredInteger USD cents.
grantedAtstringRequiredISO 8601 timestamp, UTC.
lastTopUpAtstringnullableRequiredNewest paid top-up; null before the first.
billingConfiguredbooleanRequiredFalse when this deployment has no Polar credentials: the top-up button is hidden.
minTopUpCentsintegerRequiredSmallest top-up the checkout accepts.
maxTopUpCentsintegerRequiredLargest single top-up.
defaultTopUpCentsintegerRequiredAmount prefilled in the checkout.
currencystringRequiredEvery amount on this page is in USD cents.
USDautoRechargeobjectRequiredAutomatic top-up: off unless set in the dashboard.
+-Show 8 propertiesHide 8 properties
availablebooleanRequiredThis deployment can charge saved cards; false hides the setting.
enabledbooleanRequiredCharge the saved card automatically when the balance runs low.
thresholdCentsintegerRequiredCharge when the effective balance drops under this.
amountCentsintegerRequiredHow much to add per automatic charge (same bounds as a manual top-up).
weeklyLimitCentsintegernullableRequiredMost the saved card may be charged automatically over any 7 days, before tax; null = no limit.
spentThisWeekCentsintegerRequiredWhat counts against the weekly limit over the last 7 days, before tax: automatic charges made plus any still settling.
lastRunAtstringnullableRequiredNewest successful automatic charge.
lastErrorstringnullableRequiredWhy the last automatic charge failed; null after a success.
+-Show 1 propertyHide 1 property
errorobjectRequiredThe error.
+-Show 4 propertiesHide 4 properties
codestringRequiredStable 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 valuesHide 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_errormessagestringRequiredHuman-readable detail; may change between releases.
requestIdstringOptionalThe id of this request (also the X-Request-Id response header); quote it to support.
retryAfterSecondsintegerOptionalFor rate_limited and other retryable errors: how long to wait before retrying (mirrors the Retry-After header).