Skip to main content

Overview

Podium provides a built-in subscription system for companion agents, enabling developers to monetize their AI experiences with freemium gating, usage tracking, and Stripe-powered billing. The system handles the full lifecycle: free users hit configurable limits, see upgrade prompts, check out via Stripe, and immediately unlock premium capabilities. All subscription state is managed server-side — your agent just checks the gate.

Subscription Tiers

Every companion user starts on FREE and moves through a standard billing lifecycle:

Usage Gating

Free-tier users have configurable monthly limits. These defaults can be adjusted per organization:

Gate Check

Before processing a user action, call the status endpoint and evaluate the gate result:
When allowed is true, the action proceeds normally. Use nearLimit to show soft upgrade prompts before the user hits the wall. When allowed is false, reason tells you which limit was hit so you can show the appropriate upgrade CTA.
Subscribers (ACTIVE and TRIALING tiers) bypass all usage gates. The gate check always returns allowed: true for paying users.

Memory Gating

Memory extraction runs for all users regardless of tier. Free users still have their behavioral patterns, preferences, and conversation history analyzed and stored. The difference is in how that intelligence is used:
  • Free users — receive standard recommendations based on their intent profile and interactions
  • Subscribers — receive personalized, memory-aware recommendations where the agent’s accumulated understanding of the user is loaded into every conversation turn
This means upgrading immediately unlocks all accumulated intelligence — there’s no “cold start” when a free user converts to paid. The agent already knows them.
This design creates a powerful conversion mechanic: the longer a free user engages, the more valuable upgrading becomes, because the agent has been building their memory the entire time.

API Endpoints

All subscription endpoints are prefixed with /api/v1/companion/subscription.

Create Checkout Session

Response:
Redirect the user to the returned url to complete payment. On success, Stripe sends a webhook that automatically upgrades the user’s tier to ACTIVE.

Customer Portal

Response:
Opens the Stripe customer portal where the user can update payment methods, view invoices, and cancel their subscription.

Subscription Status

Response:

Webhook

The platform automatically processes these Stripe webhook events:
You don’t need to handle these webhooks yourself — the platform processes them automatically. Only configure a webhook endpoint in Stripe if you need to react to subscription changes in your own application logic.

Endpoint Summary

Integration Example

Here’s a typical flow for gating a message behind the subscription check:

Best Practices

  • Check status before every gated action — don’t cache subscription state client-side for longer than a single session
  • Use soft nudges before hard gates — the nearLimit flag and milestone notifications reduce churn by warning users before they hit the wall
  • Surface the value of upgrading — when a free user hits a gate, remind them that their accumulated intelligence is waiting: “Sage has been learning your preferences — upgrade to unlock personalized recommendations”
  • Handle PAST_DUE gracefully — consider a short grace period before downgrading the experience, as many payment failures resolve automatically