Pricing and credits
Pricing and credits
Your organization shares one credit balance across its members and API clients.
How pricing works
Benchmark records an accepted price for each operation and uses one prepaid wallet. Stripe collects subscription and top-up payments; spending credits does not create a second Stripe usage charge. New workspaces have zero credits until a verified paid invoice funds the wallet.
The public API’s V1 version is separate from billing metadata. The prices and rules below describe the prepaid system; this page does not announce production activation.
Plans
| Hobby | Pro | Growth | Scale | |
|---|---|---|---|---|
| Monthly price | Yearly only | $29/month | $79/month | $249/month |
| Yearly price | $10/month, $120/year | $24/month, $290/year; save $58 | $66/month, $790/year; save $158 | $208/month, $2,490/year; save $498 |
| Included credits | 1,000/month, billed yearly | 3,000/month | 9,000/month | 30,000/month |
| Research access | Saved research only | Saved and new research | Saved and new research | Saved and new research |
| API and MCP | Read-only API and MCP | Full API and MCP (CLI coming soon) | Full API and MCP (CLI coming soon) | Full API and MCP (CLI coming soon) |
| Team members | 1 member | Unlimited members | Unlimited members | Unlimited members |
| Support | Email support | Email support | Priority email support | Priority email support |
| Private request retention | — | — | — | Ask about private request retention |
Yearly prices show a rounded monthly amount and the exact yearly bill. Priority email support means we review your email ahead of standard support. It does not promise a response time.
Enterprise is an add-on for Pro, Growth, or Scale at $500/month or $5,000/year ($417/month shown for yearly billing; save $1,000/year). It adds SAML SSO and SCIM directory sync. Contact us for a custom plan.
Hobby can read every stored Basic and Enriched view at the published operation prices. Adding a teammate requires Pro or above. New paid work through MCP requires a current subscription. An enabled MCP connection can still retrieve the result of work accepted before the subscription ended.
Your current paid plan remains usable through its shown paid-through date if you cancel renewal. At that date, new paid reads and refreshes stop, even if you still have purchased credits. Credits you bought remain on the workspace and become usable again after a verified paid plan starts, subject to that plan’s permissions. Work accepted before the paid-through date can finish.
Plan changes are being updated. When a quoted higher-tier change is offered, its confirmation must show the amount due, the new billing date, remaining credits from the current month, and any separate money credit from fully prepaid future months. Current-month plan credits keep their original expiry; new plan credits start only after payment is verified. A lower-tier or monthly/ yearly change is intended for the current paid period’s end. Until these flows are enabled on your workspace, contact support instead of canceling solely to change plans.
Removing the Enterprise add-on takes effect immediately. SSO and directory sync configuration stops, existing connections stay in place, and unused add-on time is not refunded.
Cancellation and workspace deletion
An administrator can cancel renewal through Settings → Billing → Manage. Paid access continues through the shown paid-through date. Contact support@benchmark.app if you cannot complete cancellation.
Immediate workspace deletion is a separate choice. The confirmation shows verified current-term payment, the paid-through date, and remaining days. Deleting ends access without a routine prorated subscription refund, subject to applicable law and signed agreements. Purchased top-up value is not included in that acknowledgment. Purchased value, accepted work, unresolved payments, or other billing issues require resolution before self-service deletion. Contact support for those cases. See the Terms of Service for the complete rule.
Yearly billing
For Pro, Growth, Scale, and Enterprise, yearly billing costs the same as 10 monthly payments, so you get 2 months free. Hobby is yearly only. A yearly plan is paid up front, and its plan credits become available one month at a time.
How credits work
What does a credit buy? Credits pay for saved research you read and new research you request. The price depends on the work. Reading a saved Basic post takes 1 credit. Asking Benchmark to refresh a Basic post takes 5. Every plan uses the same prices.
Need more credits? Buy extra credits on an active plan. Extra credits do not expire. Plan credits refresh every month and expire at the end of that month. Extra credits cost $10 per 1,000 credits on every plan.
If work fails, you pay 0 credits. Checking a request’s status is free.
| What you do | Credits |
|---|---|
| Read a saved Basic post or link | 1 |
| Read a saved profile | 3 |
| Read one saved profile-history page (up to 10 posts) | 1 |
| Read a saved Enriched post or link | 3 |
| Refresh a Basic post, profile or link | 5 |
| Refresh profile history | 5 plus 1 for each full group of 10 posts returned |
| Refresh an Enriched link | 10 |
| Refresh an Enriched post | 20 plus any photo or video charge |
| Check status or results, or failed work | 0 |
A TikTok photo post adds 1 credit per started group of five photos. Video adds 1 credit per started 200 seconds. A 10-minute video adds 3 credits, so that Enriched post costs 23.
Operation prices
One credit equals one US cent of prepaid use.
| Operation | Credits |
|---|---|
| Stored Basic post or link | 1 |
| Stored profile | 3 |
| Stored profile-history page (up to 10 posts) | 1 |
| Stored Enriched post or link | 3 |
| Basic post, profile or link refresh | 5 |
| Profile-history refresh | 5 plus 1 per full group of 10 posts returned |
| Enriched link refresh | 10 |
| Enriched post refresh | 20 + applicable media surcharge |
| Existing collection status/results and billing management | 0 |
An Enriched refresh includes Basic acquisition. It does not add a separate Basic refresh charge. A separately requested stored read is a new operation; polling the original collection is free. Failed or never-started operations cost zero. A source confirmed private or not found costs zero, even when its collection completes with an unavailable result. A valid empty history refresh costs five.
Photo enrichment
TikTok photo/carousel enrichment adds one credit per started group of five unique original photos:
20 + ceil(photos / 5).
| Original photos | Total credits |
|---|---|
| 1–5 | 21 |
| 6–10 | 22 |
| 11–15 | 23 |
| 16 | 24 |
Other image formats have no photo surcharge. Thumbnails, video frames and copies are not extra original photos. Missing required photos must not silently produce a cheaper successful analysis.
Video enrichment
Combine unique source-video durations before rounding once:
20 + ceil(combined milliseconds / 200000).
| Combined video duration | Additional credits | Total credits |
|---|---|---|
| 1 minute | 1 | 21 |
| Five 1-minute videos | 2 | 22 |
| 10 minutes | 3 | 23 |
| 1 hour | 18 | 38 |
| 4 hours | 72 | 92 |
The duration charge applies when an existing transcript is used or the video is not downloaded. Audio derived from a video and video frames do not add another duration charge. Unknown duration is not treated as zero. The approved tariff charges GIF and title/thumbnail-only duration; the accepted operation settings determine the duration charge.
Profile history
A stored profile costs three credits. Each separate stored-history request costs one credit and
returns up to ten saved posts. The first history request has no cursor; pass meta.nextCursor
unchanged to request the next page. Stop when it is null. There is no new outside request, refresh,
per-post surcharge or customer-selected page size. A shorter final page is still one credit.
A valid empty page retains the same one-credit request price; an invalid cursor or failed read is
not charged. Repeating a successful stored read is another charged request.
For example, a profile plus 25 saved posts costs six credits: three for the profile and one each for pages of ten, ten and five posts.
A history refresh keeps its existing price: 5 + floor(unique posts acquired / 10). The charge
uses the full verified acquisition count saved to Benchmark, not just the ten posts in the first
response. Nine acquired posts cost five credits; eleven or nineteen cost six; 150 cost twenty.
The refresh collection delivers its first stored page once with no additional read charge.
Following its cursor through the stored-history endpoint costs one credit per page. A later poll
after successful collection delivery returns COLLECTION_ALREADY_DELIVERED, not another data copy.
Plan and purchased credits
The billing page shows the subscription price and included credits. Plan credits refresh every month on monthly and yearly plans; unused credits expire at the end of that month. A yearly plan is paid up front, and its twelve months of credits become available one at a time. Purchased credits never expire; cancellation does not erase them. Manual top-ups remain within the supported $5–$1,000 range.
Only a verified paid invoice issues subscription or purchased credits. Payment failure or required payment authentication does not issue credits. Tax does not increase the credit quantity. A payment refund reverses credits from that purchase; already-spent value can leave a deficit that must be resolved before new paid work. A disputed payment can restrict further spending.
Money credit from a qualifying plan change is separate from usage credits. For example, $20 of money credit may pay part of a later $29 subscription invoice; it does not add 2,000 usage credits. Only the verified paid invoice issues the new plan’s normal credits. A top-up paid with money credit issues purchased credits only after its invoice is verified paid. Customer plan-change confirmation and credit-funded purchase remain gated while rollout checks continue.
Reservations, limits and receipts
Benchmark reserves credits before work, making them unavailable to competing requests. Once source quantities are known, an admitted Enriched post continues processing even if its final price exceeds the reservation. On success, Benchmark returns the result, uses any remaining available credits, and records any unpaid amount as credits owed. Other operations settle within their funded hold and release excess reservations. For example, a 150-post history request reserves twenty credits; eleven returned posts settle six and release fourteen.
For example, if you have 20 credits and a completed Enriched post costs 25, you receive the result and owe 5 credits. You cannot start another paid request until the debt is cleared and you have enough credits for its starting price. A verified 10-credit top-up repays the 5 owed first, leaving 5 available. New plan credits also repay debt first. Repayment is not a second usage charge.
Failure releases credits to their original plan or purchased pool. Plan credits keep their original expiry; releasing them after expiry does not turn them into permanent purchased credits. A hold admitted before period expiry may finish within the collection’s bounded lifetime.
Refresh requests accept an optional UUID idempotencyKey. The CLI forwards it through
--idempotency-key. Reusing a key with the same request reuses the accepted operation; conflicting
input is rejected. Repeated successful stored reads have no implicit billing idempotency and remain
separate charged requests.
There is no per-request credit ceiling or workspace default maximum. Requests over 100 credits can
proceed when funded and within the monthly spending limit (Billing → Spending limit). The removed
maxCredits input and --max-credits flag are rejected.
The existing spending limit remains unchanged. Benchmark checks available funds and the limit transactionally at admission. Successful Enriched post completion may exceed its initial commitment; the full final charge counts against subsequent admissions. Usage belongs to the request’s UTC acceptance month; existing holds remain unavailable across renewal or month boundaries. A refund does not create extra spending capacity in a later month. Lowering a spending limit blocks new commitments without revoking already funded work solely because the limit changed.
Receipts distinguish reserved credits from final charges and show the accepted tariff version, quantities and price breakdown. Later price changes do not reprice an accepted operation. Wallet views separate available, reserved, plan, purchased, used (UTC acceptance month) and owed amounts. Billing exports are scoped to your organization. An estimate is not a final charge.
Read-only plan refusals
Every new refresh request on an active Hobby plan returns 403 PLAN_UPGRADE_REQUIRED with an upgradeUrl to
the workspace billing page. Polling, collection results, and stored reads remain available while
the plan is current. A request accepted before a plan change can still be redeemed through REST, MCP or the CLI. A matching
idempotencyKey replays that accepted request. Hobby MCP sessions list no mutation operations.
Credit and spending limit errors
Starting new paid work requires sufficient available credits and no credits owed. Already admitted Enriched post work can finish with debt; its completed result remains available through collection redemption.
New reads and refreshes also require a current subscription. Access ends at the verified paid
period end, even if a cancellation update arrives later. Purchased credits stay on the workspace
while the subscription is inactive and become spendable again after a verified renewal or upgrade;
unused monthly plan credits expire on their original dates. Work accepted before the end can
finish and its status or result can still be retrieved. An inactive plan returns
403 SUBSCRIPTION_INACTIVE for new paid work.
409 BILLING_PAUSED means billing is being reconciled or a payment issue needs resolution.
New paid work is paused across API, CLI and MCP while this condition remains; work already
accepted can finish. Check Billing or contact support. The response does not expose private
payment details.
402 INSUFFICIENT_CREDITS means the request cannot be funded. Add credits or resolve a payment
restriction before retrying. 402 USAGE_CAPPED means the organization spending limit prevents
admission.
503 BILLING_DETAILS_UNAVAILABLE means authoritative billing details could not be established;
unknown duration or missing billing configuration cannot authorize new paid work.