tagsGuide: 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

  1. Create your offers and add-ons in the Limio Catalogarrow-up-right.

  2. Build a pricing page using Page Builderarrow-up-right and attach your offers using labels.

  3. Use Limio's standard components (offer cards, grouped offers, pricing tables) or build custom componentsarrow-up-right with the Limio SDK for full design control.

  4. Publish the page to your Limio shop domain.

  5. Optionally, set up a custom domainarrow-up-right 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 Domainarrow-up-right for setup.

Examples

These are real pricing pages built entirely in Limio:

When to use this option

  • You want a dedicated pricing pages and your marketing/RevOps team are comfortable managing them in Limio.

  • 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.

Keep your pricing page in your existing CMS (e.g. WordPress, Webflow, or a custom site) and use Limio Purchase Linksarrow-up-right to send customers into the Limio checkout with the right offer pre-loaded.

How it works

  1. Build your pricing page in your CMS as you normally would.

  2. Create your offers in Limioarrow-up-right.

  3. Generate a Purchase Link for each offer. A purchase link looks like:

  1. Use these links as the CTA buttons on your pricing page (e.g. "Buy Now", "Get Started").

  2. When a customer clicks, they land in the Limio checkout with the offer already in their basket.

Purchase links support multiple offersarrow-up-right, promo codesarrow-up-right (&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 APIarrow-up-right. Use Purchase Links for the checkout CTAs.

How it works

  1. Create and manage your offers in Limio as the source of truth for pricing.

  2. 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.

  1. Render the offer data in your own UI components on your CMS/site.

  2. Use Purchase Links for CTA buttons to direct customers into the Limio checkout.

  3. Configure CORSarrow-up-right in Limio to allow your domain to call the API.

Key API endpoints

Endpoint
Description

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 referencearrow-up-right.

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 Configurationarrow-up-right.

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.

circle-info

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?