Panion Docs

Guides

Build your own tour pages

Render the tours your site sells on your own pages and let the Panion checkout take the booking.

Use this when you build your own website (Next.js, Astro, WordPress or a static site) and want Panion to handle prices, availability and payment.

Pick a key

  • In the browser or a static build: your site's publishable key (pk_widget_...), the data-panion-key already in your checkout tag. Pass it as ?key=. It reads only public data for its own site.
  • On your server: a secret key (pnn_live_...) with the tours:read scope, sent as Authorization: Bearer. Keep it out of the browser.

List your tours

curl "https://www.panion.travel/api/v1/tours?key=pk_widget_...&locale=en"

Read one tour for its page

Title, description, photos, inclusions, meeting point, departure times, From price, season and who operates it:

curl "https://www.panion.travel/api/v1/tours/<tour id>?key=pk_widget_...&locale=nb"

Add the Panion checkout

Use the tour's checkout.activity_id. The checkout quotes each date, takes payment and books in the operator's booking system.

<script src="https://www.panion.travel/sdk/core.js" data-panion-key="pk_widget_..." defer></script>
<div data-panion-checkout data-activity-id="<tour id>"></div>

Show the real operator

When operator.is_host is false, someone else runs the tour: say "Operated by" with operator.name and keep your own ratings off it.

Rules, availability and caching

Which price to show, translations, live availability and cache headers are in the Tours reference.

On this page