Guide: How to build a pricing page with Limio
Pricing pages are often the most important page on a SaaS website. They communicate your plans, pricing and packaging, and drive customers into a purchase flow. With Limio, there are three ways to implement a pricing page depending on your architecture, team, and flexibility requirements.
This guide covers the three approaches, their trade-offs, and when to use each.
At a glance
Option 1: Built in Limio
Option 2: Static external page with Purchase Links
Option 3: Headless with Catalog API
Pricing page hosted on
Limio (subdomain or reverse proxy)
Your CMS
Your CMS
Offer data source
Limio (automatic)
Hardcoded in CMS
Limio Catalog API (dynamic)
Checkout flow
Limio Checkout
Limio Checkout via Purchase Links
Limio Checkout via Purchase Links
Engineering effort
Low
Low
Medium
Best for
Teams wanting fast, no-code pricing pages
Simple pricing with few plans
Complex pricing with many offers, currencies, or frequent changes
Option 1: Build it in Limio
Use Limio's Page Builder, out-of-the-box components, and optionally the Limio SDK to build a fully managed pricing page. The page is hosted on Limio, typically on a subdomain like subscribe.yourdomain.com.
How it works
Create your offers and add-ons in the Limio Catalog.
Build a pricing page using Page Builder and attach your offers using labels.
Use Limio's standard components (offer cards, grouped offers, pricing tables) or build custom components with the Limio SDK for full design control.
Publish the page to your Limio shop domain.
Optionally, set up a custom domain or use a reverse proxy to serve the page on your core domain (e.g.
yourdomain.com/pricing).
Pros
Out of the box: Pricing pages pull directly from Limio offers, so price changes are reflected instantly without redeployment.
No-code page management: Marketing and RevOps teams can update pricing, offers, and page layout without engineering.
Fully customisable: Use custom components and the Limio SDK for pixel-perfect designs when needed.
Built-in features: Journeys, A/B testing, localisation, analytics, and SEO metadata are all available natively.
Checkout integration: Customers flow seamlessly from pricing page to Limio checkout with no extra integration.
Cons
Subdomain hosting: By default, Limio pages are hosted on a subdomain. This can impact SEO if not handled properly.
Fix: Use a reverse proxy to serve Limio pages on your main domain. This requires some infrastructure setup but resolves the SEO concern. See Custom Domain for setup.
Examples
These are real pricing pages built entirely in Limio:
JazzHR Direct Pricing - a 3-tier SaaS pricing page with annual/monthly toggle, feature comparison, and partner-specific variants.
Amazing+ Store - a single-offer free trial acquisition page.
When to use this option
You want a dedicated pricing pages and your marketing/RevOps team are comfortable managing them in Limio.
Note: You can set Permissions if you want to avoid certain roles from being able to change prices.
You have multiple offers, add-ons, or currencies that change frequently.
You want built-in analytics, A/B testing, and journey personalisation on your pricing page.
Option 2: Build it statically in your CMS with Purchase Links
Keep your pricing page in your existing CMS (e.g. WordPress, Webflow, or a custom site) and use Limio Purchase Links to send customers into the Limio checkout with the right offer pre-loaded.
How it works
Build your pricing page in your CMS as you normally would.
Create your offers in Limio.
Generate a Purchase Link for each offer. A purchase link looks like:
Use these links as the CTA buttons on your pricing page (e.g. "Buy Now", "Get Started").
When a customer clicks, they land in the Limio checkout with the offer already in their basket.
Purchase links support multiple offers, promo codes (&pc=PROMO123), and offer labels for localised pricing.
Pros
Easy to implement: If you already have a pricing page, just add Purchase Links to your CTAs. No API integration required.
Familiar tools: Your team keeps using the CMS they already know.
SEO-friendly: The pricing page lives on your main domain with full SEO control.
Cons
Doesn't scale well: If you have many offers, packages, currencies, or frequent price changes, you need to manually update the CMS every time you create new offers in Limio.
Hardcoded data: Plan names, prices, and features are duplicated between Limio and your CMS, which can lead to inconsistencies.
No dynamic personalisation: You can't use Limio's journey engine to personalise which offers are shown on the CMS page.
When to use this option
You have a simple pricing structure (e.g. 2-4 plans) that rarely changes.
You already have a pricing page and just want to connect it to Limio checkout.
You don't need dynamic pricing, localisation, or personalisation on the page itself.
Option 3: Build it in your CMS and pull Limio data dynamically (Headless)
Build your pricing page in your CMS or front-end framework, but fetch offer and add-on data dynamically from the Limio Catalog API. Use Purchase Links for the checkout CTAs.
How it works
Create and manage your offers in Limio as the source of truth for pricing.
Use the Limio Catalog API to fetch offers dynamically from your front-end or server:
The API returns offer data including plan names, pricing (currency, amount, billing interval), products, and custom attributes.
Render the offer data in your own UI components on your CMS/site.
Use Purchase Links for CTA buttons to direct customers into the Limio checkout.
Configure CORS in Limio to allow your domain to call the API.
Key API endpoints
GET /campaigns
Retrieve campaigns with attached offers (legacy + v2)
GET /offers/v2
Retrieve standalone v2 offers with full pricing detail
GET /add_ons
Retrieve standalone add-on items
GET /products
Retrieve product catalog
All endpoints support filtering by path, tags, attributes, and pagination. See the full Catalog API reference.
Pros
Scalable: Pricing data is always in sync with Limio. No manual CMS updates when prices, offers, or currencies change.
Single source of truth: Limio is the canonical source for all pricing data. Your CMS just renders it.
Full design control: Build your pricing UI exactly how you want, in your own tech stack.
SEO-friendly: The page lives on your main domain.
Cons
Requires engineering: You need developers to integrate the Catalog API, handle caching, error states, and render the data.
More maintenance: API integration adds a dependency that needs monitoring and updating when the API evolves.
No Limio-native features: You won't get Limio's built-in A/B testing, journeys, or analytics on the pricing page itself (though these still work on the checkout).
CORS configuration
To call the Limio API from your domain, add your domain to the Allowed CORS hosts in Limio:
General Settings > Site Security > Allowed CORS hosts
This permits your domain to make cross-origin requests to the Limio API. See CORS Configuration.
When to use this option
You have complex pricing with many offers, add-ons, currencies, or frequent changes.
You want your pricing page on your main domain with full design control.
You have engineering resources to build and maintain the API integration.
You are already building a headless commerce experience
Decision framework
Use the following to decide which option is right for you.
Start simple. If you're unsure, start with Option 1 (Limio-hosted) or Option 2 (Purchase Links). You can always migrate to Option 3 (Headless) later as your needs grow.
Choose Option 1 if you want Limio to handle the full pricing page experience, including hosting, offer management, and checkout. This is the fastest path and gives marketing teams full control.
Choose Option 2 if you already have a pricing page and just need to connect "Buy Now" buttons to Limio. This works well for simple pricing structures.
Choose Option 3 if you need your pricing page on your main domain, have complex or frequently changing pricing, and have engineering resources to build the integration.
Further reading
Last updated
Was this helpful?

