Outlap Docs
Open Outlap

Embeds

Put your events, join form and registration cards on your own website with a small iframe snippet that resizes itself.

Each club and track gets embeddable widgets that run on any website. They’re chromeless iframes served from https://app.outlap.xyz/embed, and they resize themselves to fit.

Event listings Upcoming public, published events for your club. Optional ?limit=, default 5.
Event registration A registration card for a single public event, linking out to checkout.
Join club A membership sign-up card for your club.
Track calendar A circuit’s calendar with its paddock passes, for a track’s own site.

Get your snippet

Open your club’s dashboard, choose Embed, pick a widget and copy the code. The dialog fills in your club slug, event and limit, and always uses the production domain so it works wherever you paste it.

The snippet

<div id="outlap-events" data-outlap-widget="events"
     data-outlap-src="https://app.outlap.xyz/embed/events/your-club?limit=5"></div>
<script>
(function(){
  var c=document.getElementById("outlap-events");
  if(!c)return;
  var f=document.createElement("iframe");
  f.src=c.getAttribute("data-outlap-src");
  f.style.cssText="width:100%;border:none;overflow:hidden;min-height:400px;border-radius:8px;";
  f.setAttribute("loading","lazy");
  f.setAttribute("title","Upcoming Events");
  c.appendChild(f);
  window.addEventListener("message",function(e){
    if(e.origin!=="https://app.outlap.xyz"||e.source!==f.contentWindow)return;
    var h=e.data&&Number(e.data.height);
    if(e.data.type==="outlap-resize"&&e.data.widget==="events"&&h>0&&h<10000){
      f.style.height=h+"px";
    }
  });
})();
</script>

URLs

WidgetURLQuery
Event listingshttps://app.outlap.xyz/embed/events/{clubSlug}limit (default 5)
Event registrationhttps://app.outlap.xyz/embed/event/{eventId}n/a
Join clubhttps://app.outlap.xyz/embed/join/{clubSlug}n/a
Track calendarhttps://app.outlap.xyz/embed/track/{clubSlug}/calendarn/a

Auto-resize protocol

The widget posts a message to the parent whenever its content height changes:

{ "type": "outlap-resize", "widget": "events", "height": 412 }

The snippet above accepts it only if the message comes from the Outlap origin and from that exact iframe, then clamps to 0 to 10,000 px. If you write your own listener, keep both checks.

Good to know

  • Sign-in happens on Outlap. Third-party cookies are blocked in many browsers, so signing in inside an iframe is unreliable. When someone needs to sign in, buy or register, the widget opens Outlap in a new tab.
  • Only public data shows. Event listings include events that are both published and public.
  • The page that embeds must allow iframes. If your site sends a restrictive Content-Security-Policy, allow frame-src https://app.outlap.xyz.
  • Want data, not a widget? Use the Track API or the public calendar feed, or render the leaderboard yourself.
esc
↑↓ to navigate ↵ to open esc to close