The integration uses a domain-restricted public agency key, a secure loader, and a short-lived backend widget session. No DRCT credentials or supplier secrets are ever exposed in the browser.
A single public key ties the embedded widget to the correct agency, while the backend keeps tenant control and supplier access server-side.
Each agency receives a public widget key from the AviaFrame admin portal. Add the container below where you want the booking experience to appear, then include the secure loader script.
<div id="aviaframe-widget"></div>
<script
src="https://admin.aviaframe.com/embed.js"
data-agency-key="YOUR_AGENCY_PUBLIC_WIDGET_KEY"
data-target-id="aviaframe-widget"
data-locale="en"
data-theme="light"
async
></script>The snippet only becomes agency-specific after the agency record exists and the domain allowlist has been saved.
No. It is intentionally public and safe to place in HTML. Real protection happens server-side through domain allowlists, short-lived widget sessions, and tenant-scoped backend enforcement.
Yes. The integration only requires a target `
No. DRCT and backend provider credentials remain server-side. The browser only receives the short-lived widget session issued for the agency and allowed origin.
Brand, domain, and widget settings are managed centrally in the AviaFrame admin portal. Agencies do not need to rebuild the widget script when colors, labels, or allowed domains change.
The website only receives a container and a secure loader script. AviaFrame handles the tenant binding and session bootstrap behind the scenes.
<div id="aviaframe-widget"></div>
<script src="https://admin.aviaframe.com/embed.js" data-agency-key="..." data-target-id="aviaframe-widget" async></script>