How the panel closes
With the “×” at the top right, with the Esc key, or by clicking outside the panel.
⚠️ It does not close by itself when the visitor is done: after a booking it stays open on the thank-you message, and they close it.
What you actually need to put Bink inside a website. No library to install, no key to generate: the objects are already public at their own address, and they embed.
Bookings, forms, events, products and the storefront each get their own public address. You read it inside Bink, next to the object. Adding “?embed=true” renders the page without the parts that only make sense on Bink.
https://bink4.me/tuonome/prenotazioni?embed=trueThe dedicated pages allow framing from any domain; the rest of the site does not.
The simplest way. The height is yours to pick: 700px suits a calendar or a medium-length form, a storefront wants more.
<iframe
src="https://bink4.me/tuonome/prenotazioni?embed=true"
width="100%" height="700" frameborder="0"
style="border:none; border-radius:12px"
></iframe>A script that adds a fixed button in a corner. On click it opens the object over the site, in a panel 480px wide and 90% of the screen height.
<script
src="https://bink4.me/embed.js"
data-url="https://bink4.me/tuonome/prenotazioni?embed=true"
data-text="Prenota ora"
data-color="#ea580c"
data-position="bottom-right"
></script>data-urldata-textdata-colordata-positiondata-icondata-width“data-position” works, but Bink does not offer it when you copy the code: add it by hand.
No script: any link or button on your page opens the object in a window. Useful when you already have the button you want.
<a
href="https://bink4.me/tuonome/prenotazioni"
onclick="window.open('https://bink4.me/tuonome/prenotazioni?embed=true','bink','width=480,height=750'); return false;"
>Prenota ora</a>With the “×” at the top right, with the Esc key, or by clicking outside the panel.
⚠️ It does not close by itself when the visitor is done: after a booking it stays open on the thank-you message, and they close it.
Checkout does not open inside the panel: it takes the whole window. That is not a technical limit but the right call: inside a frame you cannot read the address bar, which means you cannot see who is taking the money. Forms and free bookings, on the other hand, finish inside your own site.
A few routes answer without authentication and can be called from your server. They read a single object whose identifier you already know.
/api/public/events/{blockId}evento: prezzo effettivo, posti, finestra di lancio/api/public/services/{blockId}prenotazione pubblicata come servizio/api/public/products/{blockId}prodotto: prezzo, tagli, campi al checkout/api/public/shop/products?ids=più articoli per identificativo di blocco⚠️ They cannot be called from the browser: they send no CORS headers, so a fetch from another domain is blocked. That is an open decision, not an oversight: opening those routes to the browser means taking on a public contract to keep.
And there is no “give me every product of this user” route: the one below takes block identifiers, not a username.
For the full list of an account's products there is the feed, born for Google Merchant Center and advertising feeds, but it is a public address like any other. Two formats: XML and TSV.
https://bink4.me/feed/tuonome.xml
https://bink4.me/feed/tuonome.tsv⚠️ It is off by default and the creator switches it on in Shop → Products: while it is off that address answers 404. Today it is on for very few accounts.
OAuth 2.0 with PKCE, plus a package that writes the flow for you and can also guard an MCP server.
Bink exposes an MCP server: an assistant can read earnings, clients and appointments, and act on the account.
Write to us: we will tell you whether it can be done, and if it can we will often look at it together.