Pricing Table

Build beautiful, accessible pricing tables programmatically with the V2 JSON API

Back to Component Examples

Example 1: SaaS Pricing with Monthly/Annual Toggle

A classic three-tier pricing table with monthly/annual billing toggle, savings badges, and feature lists.

SaaS Pricing Table • JavaScript
RSL.JSONLayout.renderLayout('#pricing-container', {
    version: 2,
    layoutId: "saas-pricing",
    breakpoints: { xs: 1 },
    items: [{
        content: {
            type: "pricing-table",
            currency: "$",
            animate: true,
            tiers: [
                {
                    name: "Starter",
                    description: "Perfect for individuals",
                    priceMonthly: 9,
                    priceAnnual: 7,
                    ctaText: "Get Started",
                    ctaUrl: "#signup",
                    features: [
                        { text: "5 Projects", included: true },
                        { text: "10GB Storage", included: true },
                        { text: "Email Support", included: true },
                        { text: "API Access", included: false },
                        { text: "Custom Domain", included: false }
                    ]
                },
                {
                    name: "Professional",
                    description: "For growing teams",
                    priceMonthly: 29,
                    priceAnnual: 24,
                    badge: "Most Popular",
                    highlighted: true,
                    ctaText: "Start Free Trial",
                    ctaUrl: "#trial",
                    ctaVariant: "primary",
                    features: [
                        { text: "Unlimited Projects", included: true },
                        { text: "100GB Storage", included: true },
                        { text: "Priority Support", included: true },
                        { text: "API Access", included: true },
                        { text: "Custom Domain", included: true }
                    ]
                },
                {
                    name: "Enterprise",
                    description: "For large organizations",
                    customPrice: "Contact Sales",
                    ctaText: "Contact Us",
                    ctaUrl: "#contact",
                    features: [
                        { text: "Unlimited Everything", included: true },
                        { text: "Unlimited Storage", included: true },
                        { text: "24/7 Phone Support", included: true },
                        { text: "Full API Access", included: true },
                        { text: "SLA Guarantee", included: true }
                    ]
                }
            ]
        }
    }]
});

Example 2: Simple Fixed Pricing

A simpler pricing table with fixed prices (no monthly/annual toggle) and custom price text.

Simple Fixed Pricing • JavaScript
RSL.JSONLayout.renderLayout('#simple-container', {
    version: 2,
    layoutId: "simple-pricing",
    breakpoints: { xs: 1 },
    items: [{
        content: {
            type: "pricing-table",
            currency: "$",
            billingPeriod: "one-time",
            tiers: [
                {
                    name: "Free",
                    description: "Get started at no cost",
                    customPrice: "Free Forever",
                    ctaText: "Sign Up Free",
                    ctaUrl: "#free",
                    features: [
                        { text: "1 User", included: true },
                        { text: "Basic Features", included: true },
                        { text: "Community Support", included: true }
                    ]
                },
                {
                    name: "Pro",
                    description: "One-time purchase",
                    priceMonthly: 99,
                    priceNote: "one-time payment",
                    badge: "Best Value",
                    highlighted: true,
                    ctaText: "Buy Now",
                    ctaUrl: "#buy",
                    ctaVariant: "primary",
                    features: [
                        { text: "5 Users", included: true },
                        { text: "All Features", included: true },
                        { text: "Email Support", included: true },
                        { text: "Free Updates", included: true }
                    ]
                },
                {
                    name: "Team",
                    description: "For larger teams",
                    priceMonthly: 249,
                    priceNote: "one-time payment",
                    ctaText: "Buy Now",
                    ctaUrl: "#buy-team",
                    features: [
                        { text: "Unlimited Users", included: true },
                        { text: "All Features", included: true },
                        { text: "Priority Support", included: true },
                        { text: "Free Updates", included: true },
                        { text: "Custom Branding", included: true }
                    ]
                }
            ]
        }
    }]
});

Example 3: Features with Tooltips and Partial Inclusion

Demonstrates feature tooltips and partial inclusion states for more nuanced feature comparisons.

Features with Tooltips • JavaScript
RSL.JSONLayout.renderLayout('#tooltips-container', {
    version: 2,
    layoutId: "tooltips-pricing",
    breakpoints: { xs: 1 },
    items: [{
        content: {
            type: "pricing-table",
            currency: "$",
            tiers: [
                {
                    name: "Basic",
                    priceMonthly: 19,
                    priceAnnual: 15,
                    ctaText: "Choose Basic",
                    features: [
                        {
                            text: "Storage",
                            included: true,
                            tooltip: "10GB of secure cloud storage"
                        },
                        {
                            text: "API Calls",
                            included: "partial",
                            tooltip: "Limited to 1,000 calls/month"
                        },
                        {
                            text: "Support",
                            included: true,
                            tooltip: "Email support with 48hr response time"
                        },
                        {
                            text: "Analytics",
                            included: false,
                            tooltip: "Advanced analytics not available"
                        }
                    ]
                },
                {
                    name: "Premium",
                    priceMonthly: 49,
                    priceAnnual: 39,
                    badge: "Recommended",
                    highlighted: true,
                    ctaText: "Choose Premium",
                    ctaVariant: "primary",
                    features: [
                        {
                            text: "Storage",
                            included: true,
                            tooltip: "100GB of secure cloud storage"
                        },
                        {
                            text: "API Calls",
                            included: true,
                            tooltip: "Unlimited API calls"
                        },
                        {
                            text: "Support",
                            included: true,
                            tooltip: "Priority support with 4hr response time"
                        },
                        {
                            text: "Analytics",
                            included: true,
                            tooltip: "Full analytics dashboard with exports"
                        }
                    ]
                }
            ]
        }
    }]
});