Skip to content
GOODS ACROSS BORDERS

DEVELOPERS · EMBED

Embed widget demo

One script tag, one data attribute per card. The widget reads the rule by ID from the public API and renders a compact summary with status, verification date, and a link to the full rule page. Mount it inline in any HTML.

Minimum HTML

<div data-gab-rule="vape-e-cigarette_thailand_traveling"></div>
<script async src="https://goodsacrossborders.com/embed/rule.js"></script>

Live examples

Vapes into Thailand — traveling

Loading vape-e-cigarette_thailand_traveling

Alcohol posted to Saudi Arabia

Loading alcohol-spirits_saudi-arabia_posting

Cash threshold — Japan

Loading cash-currency_japan_traveling

CBD oil into China (dark theme)

Loading cbd-oil_china_traveling

Cards hydrate after the script loads. If JavaScript is disabled the placeholder above is what a visitor sees — intentional, so the page degrades gracefully. The widget does not set cookies and does not send any analytics.

Options

data-gab-rule
Required. Rule ID — {itemSlug}_{countrySlug}_{purpose}. Same identifier as on the rules API.
data-gab-theme
light (default) or dark.
data-gab-link
1 (default, wraps the card in a link to the full rule page) or 0.

Dynamic insertion

If you add rule containers to the DOM after initial load (SPA routing, modal popups, AJAX), call the widget's mount hook:

// Mount a single new container
window.GabRuleEmbed.mount(document.getElementById("myCard"));

// Mount everything with data-gab-rule that isn't already mounted
window.GabRuleEmbed.mountAll();

Attribution

The widget renders the data under CC-BY 4.0 — the attribution is built into the card header. Please do not modify the widget to remove the “Goods Across Borders” text; that would be inconsistent with the licence.

RULES5,339COUNTRIES85ITEMS111CARRIERS28GUIDES37UNIQUE SOURCES614LATEST VERIFICATION2026-05-13MethodologyChangelog