Skip to main content
PlugKit bills on connected accounts, plus the handful of platform calls that cost real money upstream. Everything else — publishing, inbox, campaigns, analytics, webhooks, MCP — is included.

Plans

Every account starts on a 7-day trial. A card is registered up front, nothing is charged during it.

Creator is a hard wall

On Creator, the 6th account isn’t billed as an extra — it is refused, with a 402 naming the limit and pointing at Pro. That’s deliberate: silently charging someone who connected one account too many is worse than telling them.

Pro overflows, in graduated bands

Past 30 accounts, extra accounts are billed by band: Bands are graduated, like tax brackets: each account is billed at the rate of the band it falls in, not the whole set at the rate you reached. A flat scheme would create a cliff where connecting one more account lowers your bill — and anyone would connect a dummy account to save money.

Pay-per-call platforms

Some platforms bill per API call. PlugKit passes those through at cost, in US dollars, with no markup and no currency conversion: Today this applies to X only. The mechanism is general — any platform that starts billing per call joins the same table.

Nothing runs until you say so

Background work on a metered account is off by default. Two independent switches, per account:
Until they’re on, nothing polls and the account costs nothing. It isn’t the call you asked for that blows up an invoice — it’s the loop running while nobody’s watching. Turning a switch on requires acknowledgeCost: true. Without it the call is refused, and the refusal carries the rate card and the cap in force so you can show them before asking again. The acceptance is stamped on the account (billing.costAcknowledgedAt), because “who authorized this, and when” is the question that comes up the day an invoice is questioned. Enabling also checks, right then, that the account can be billed — a card that has been charged at least once, and a subscription in good standing. You find out at the moment you decide, not three days later through empty charts. Turning a switch off requires nothing at all. Stopping a spend is never put behind a confirmation.

Spend cap

Every account has one from the start: $20 a month, applied until you set your own.
At 80% you get a usage.threshold_reached webhook — once per month, before anything stops, carrying what will pause and what will keep running. At 100%, background polling stops — but publishing and sending are never blocked. Failing a scheduled post to save half a cent does far more damage than a small overshoot: someone planned that message. GET /v1/billing/subscription returns the cap in force and cap_is_default, which tells you whether it’s yours or ours.
There is deliberately no “unlimited”. Sending "capUsd": null returns you to the default rather than removing the ceiling; to spend more, set a higher number — and that number is still a ceiling. A single X account polled every hour can run to $360 a month, and the only thing standing between a customer and that invoice should not be a checkbox ticked one evening.

Watching the spend

Response (trimmed)
Responses that engaged a billable call also carry the cost in an x-plugkit-cost-usd header.
This endpoint exists because PlugKit’s main interface is an agent. A cost that only shows up on the invoice is a cost nobody could weigh at the moment it was incurred — an assistant can read this before starting a loop, and stop when little budget is left.

Changing plan

Returns a Whop checkout URL. Subscriptions and payments are handled by Whop; the variable part (extra accounts, per-call usage) is charged at the end of the month against the payment method on file.