{"ok":true,"route":"/api/billing/checkout","contract":{"id":"bumpgrade-self-serve-pricing-v1","status":"live","issue":316,"updatedAt":"2026-05-28","checkoutRoute":"/api/billing/checkout","successRoute":"/pricing/success","pricingSourceDataRoute":"/pricing/source-data","stripeMode":"live","publicPlans":[{"slug":"experiment","name":"Experiment","status":"self_serve","monthlyAmountCents":9700,"billingInterval":"month","productId":"product-bumpgrade-experiment","priceId":"price-bumpgrade-experiment-monthly-usd"},{"slug":"grow","name":"Grow","status":"self_serve","monthlyAmountCents":19700,"billingInterval":"month","productId":"product-bumpgrade-grow","priceId":"price-bumpgrade-grow-monthly-usd"},{"slug":"enterprise","name":"Enterprise","status":"contact","monthlyAmountCents":null,"billingInterval":"contact","productId":null,"priceId":null}],"setupAddon":{"slug":"white-glove-setup","name":"White glove","label":"Optional setup","description":"Paired with humans to help you set up and scale with confidence.","unitAmountCents":100000,"currency":"usd","productId":"product-bumpgrade-white-glove-setup","priceId":"price-bumpgrade-white-glove-setup-usd"},"freeBuildMode":{"id":"free-build-before-go-live","status":"signed-in-free-build-live","issue":466,"updatedAt":"2026-05-28","headline":"Build first. Pay when you are ready to go live.","summary":"Free Build separates private launch setup from buyer-facing go-live actions, so publishers do not need a paid plan while they are still getting ready.","freeBuildCapabilities":[{"id":"free-build-private-launch-paths","title":"Private launch paths","status":"before-payment","summary":"Create and edit launch pages, opt-in paths, checkout handoffs, thank-you pages, and reusable launch structure privately before payment.","allowedBeforePayment":true,"requiresPaidGoLive":false},{"id":"free-build-offers-products-audience","title":"Offer, product, and audience setup","status":"before-payment","summary":"Shape offers, products, lead capture, audience notes, and launch context while buyer-facing actions stay off.","allowedBeforePayment":true,"requiresPaidGoLive":false},{"id":"free-build-ai-launch-context","title":"AI launch context","status":"before-payment","summary":"Let agents inspect the private build state through public-safe records that separate free building from live selling.","allowedBeforePayment":true,"requiresPaidGoLive":false},{"id":"free-build-anonymous-playground","title":"Logged-out structured playground","status":"before-payment","summary":"Save structured offer, audience, product, opt-in, checkout, delivery, follow-up, and migration-starting-point notes in one browser before signup.","allowedBeforePayment":true,"requiresPaidGoLive":false}],"paidGoLiveGates":[{"id":"go-live-public-publishing","title":"Public publishing","summary":"Turning private work into public buyer-facing routes requires a paid or explicitly approved go-live state.","requires":["Paid plan entitlement","Fresh workspace revision","Confirmed publish action"]},{"id":"go-live-live-checkout","title":"Live checkout and payment collection","summary":"Charging buyers, collecting tax-relevant payment state, and changing billing records stay behind paid plan and confirmed checkout rules.","requires":["Paid plan entitlement","Stripe readiness","Confirmed billing-impacting action"]},{"id":"go-live-email-sends","title":"Buyer and subscriber sends","summary":"Sending email to subscribers, customers, affiliates, or launch audiences requires sender readiness, consent checks, and paid go-live authority.","requires":["Paid plan entitlement","Sender readiness","Consent and suppression checks"]},{"id":"go-live-domain-fulfillment","title":"Domains and fulfillment","summary":"Custom domains, fulfillment delivery, protected content access, and public customer paths require paid ownership and current entitlement checks.","requires":["Paid plan entitlement","Verified ownership","Current entitlement checks"]}],"currentAvailability":{"signedInFreeWorkspaceLive":true,"anonymousPlaygroundLive":true,"anonymousSaveRateLimitLive":true,"anonymousScheduledCleanupLive":true,"paidGoLiveRequired":true},"signedInWorkspace":{"status":"live","issue":473,"route":"/api/account/publisher/free-build-workspace","accountSetupRoute":"/account/setup","planStatus":"free_build","summary":"Verified signed-in users can create a private Free Build workspace before payment; public go-live actions still require a paid plan."},"anonymousPlayground":{"status":"live","route":"/playground","sourceDataRoute":"/playground/source-data","saveApiRoute":"/api/playground/anonymous-workspace","claimApiRoute":"/api/playground/claim","cleanupApiRoute":"/api/playground/cleanup","persistenceModel":"Logged-out visitors can save structured launch context through browser-scoped recovery. The cookie stores a recovery token only; D1 stores a token hash, draft fields, expiry, and claim status. Owner cleanup and scheduled Cloudflare cleanup can expire old recovery, clear anonymous draft fields, and preserve claimed private records.","privacyBoundary":"Anonymous work does not expose private customer data, cleanup actors, expired draft content, create billing records, send email, publish buyer-facing routes, reserve domains, or grant product access.","structuredBuilderFieldsLive":true,"saveRateLimit":{"scope":"browser_recovery_workspace","windowSeconds":600,"maxSavesPerWindow":12,"appliesAfterFirstSave":true,"firstSaveCreatesRecovery":true,"responseCodeWhenLimited":429,"responseCode":"ANONYMOUS_PLAYGROUND_SAVE_RATE_LIMITED","rawIpStored":false,"rawUserAgentStored":false,"recoveryTokenHashExposed":false,"publicPublishingEnabled":false,"liveCheckoutEnabled":false,"subscriberSendsEnabled":false,"customDomainsEnabled":false,"fulfillmentEnabled":false},"claimMergePolicy":{"mode":"additive_private_draft","emailVerifiedAccountRequired":true,"createsFreeBuildWorkspaceWhenMissing":true,"reusesExistingFreeBuildWorkspaceWhenPresent":true,"createsAdditionalPrivateDraftFunnel":true,"createsPrivateClaimRecords":true,"overwritesExistingFreeBuildWorkspace":false,"overwritesExistingDrafts":false,"overwritesAnonymousDraftFields":false,"publicSourceDataExposesPrivateDraftContent":false,"paidGoLiveRequired":true,"idempotencyScope":"anonymous_workspace_id_and_user_id"},"claimMapsStructuredFieldsToPrivateDraftBlocks":true,"cleanupControlsLive":true,"scheduledCleanup":{"live":true,"cron":"17 9 * * *","label":"Daily anonymous playground cleanup at 09:17 UTC","actor":"cloudflare_cron","clearsAnonymousDraftFields":true,"preservesClaimedPrivateRecords":true}}},"provisioning":"Successful Stripe Checkout Sessions are verified server-side on /pricing/success and create active publisher plan entitlements keyed by buyer email.","webhookCaveat":"Cloudflare currently has live Stripe secret material configured, but live webhook signing secret setup is still a separate operational step."},"plans":[{"slug":"experiment","name":"Experiment","label":"Start today","headline":"One launch workspace for the first serious offer.","monthlyAmountCents":9700,"billingInterval":"month","status":"self_serve","productId":"product-bumpgrade-experiment","priceId":"price-bumpgrade-experiment-monthly-usd","cta":"Start Experiment","description":"For publishers validating a funnel, checkout, product, and audience loop without stitching together five tools.","bestFor":"Solo publishers and small teams launching one offer at a time.","included":["1 Bumpgrade publisher workspace","Landing pages, funnel steps, checkout handoff, products, and audience capture","Bumpgrade subdomain reservation after payment","Basic launch analytics and AI-ready launch context","AI coach context for launch planning and review"]},{"slug":"grow","name":"Grow","label":"Most complete","headline":"More launch surface for publishers ready to scale.","monthlyAmountCents":19700,"billingInterval":"month","status":"self_serve","productId":"product-bumpgrade-grow","priceId":"price-bumpgrade-grow-monthly-usd","cta":"Start Grow","description":"For publishers who need richer automation, custom domain setup, affiliate tracking, and optimization reports.","bestFor":"Operators growing multiple offers, partners, or repeated launches.","included":["Everything in Experiment","Custom-domain onboarding for domains you already own","Affiliate/referral tracking and partner reporting","Advanced analytics, experiments, and launch alerts","Higher plan limits through configurable plan access"]},{"slug":"enterprise","name":"Enterprise","label":"Custom","headline":"SSO, custom development, and launch systems for teams.","monthlyAmountCents":null,"billingInterval":"contact","status":"contact","productId":null,"priceId":null,"cta":"Contact us","description":"For teams that need SSO, custom development, dedicated implementation help, or unusual billing and data boundaries.","bestFor":"Agencies, publishers with internal teams, and operators with special requirements.","included":["Everything in Grow","SSO planning","Custom development and integration support","Dedicated launch architecture review","Team-specific security, data, and workflow requirements"]}],"setupAddon":{"slug":"white-glove-setup","name":"White glove","label":"Optional setup","description":"Paired with humans to help you set up and scale with confidence.","unitAmountCents":100000,"currency":"usd","productId":"product-bumpgrade-white-glove-setup","priceId":"price-bumpgrade-white-glove-setup-usd"},"redaction":{"rawStripeIdsIncluded":false}}