Skip to contentCouverto.

Two lines on your own site

The Couverto booking button is one script and one button. No plug-in, no iframe to size yourself, and nobody has to rebuild your site.

The snippet
<script src="https://cdn.couverto.online/w.js" data-couvert-venue="pk_live_000000000000000000000000" defer></script>

<button data-couvert-open>Book a table</button>
  1. Paste the script into your pageOnce per page, ideally just before the closing body tag. It loads deferred and holds nothing up.
  2. Put it on your buttonAny element with data-couvert-open opens the booking flow: a button, a link, an image. Whatever is already there will do.
  3. That is itThe booking flow itself is only fetched once somebody actually clicks. Until then it costs your visitor almost nothing.

Your public key

The snippet above carries an example. Yours starts with pk_live_ and belongs to one restaurant, so two venues means two keys. Ask us for it — there is no screen yet where you can fetch it yourself.

Ask for your key

What you can pass in

Put an attribute on the script element and every button on the page inherits it. Put the same attribute on one button and that button wins. An empty value counts as not set.

AttributeWhereIf you leave it outWhat it does
data-couvert-venueScript or buttonRequiredYour restaurant’s public key. Without it nothing happens — see below.
data-couvert-openOn the buttonRequiredMarks the element that opens the booking flow. It needs no value of its own.
data-couvert-localeScript or buttonYour visitor’s language, otherwise your restaurant’sThe language of the booking flow: nl, en, de, fr or es. A language we do not speak is ignored.
data-couvert-partyScript or buttonThe guest picksThe party size the flow opens on. A whole number from 1 up; anything else is ignored.
data-couvert-dateScript or buttonThe guest picksThe date the flow opens on, written as 2026-09-12. Written any other way it is ignored.
data-couvert-timeScript or buttonThe guest picksThe time the flow opens on, written as 19:30 on a 24-hour clock. Written any other way it is ignored.
data-couvert-areaScript or buttonThe guest picksThe id of an area from your floor plan — your terrace, say. Useful under a photograph of that terrace.

data-couvert-bound is set by the loader itself on every button it already knows about. That attribute is its own; leave it alone.

Two things you would not expect

No key, no flow

If no data-couvert-venue is set anywhere, the loader leaves the click alone: a link still navigates and a button still does whatever it did before. An empty modal is worse than a button that still works.

Buttons that appear later still count

The loader keeps watching your page. A button that only appears after load — in a React site, under a cookie banner, in a footer that loads late — is picked up anyway.