Developer tools
Integrate on every screen
Use the popup SDK on the web, hosted flows in mobile WebViews, and the REST API from any backend language.
Web SDK
Popup and redirect flows for events, votes, and forms.
Mobile hosted SDK
React Native, Flutter, Android, and iOS WebViews.
Server API
Works with Node, Python, PHP, Go, Java, and more.
Web popup SDK
One script powers all three TicketNests resources. Use open() for a modal, redirect() for full-page navigation, or getUrl() when another component needs the hosted URL.
- Modern Chrome, Safari, Firefox, and Edge
- Responsive desktop and mobile layout
- Escape and backdrop dismissal
- Publishable keys only
<script src="https://ticketnests.com/sdk/v1.js"></script>
<script>
const widget = TicketNests.setup({
key: "tn_test_pk_your_key",
resource: "event", // event, vote, or form
slug: "your-resource-slug"
});
document.querySelector("#open").onclick = () => widget.open();
</script>Mobile and other devices
Hosted flows are the supported mobile integration today. They keep checkout, voting, and form rendering up to date without requiring an app release. Use a live publishable key in the WebView URL; keep secret keys on your server.
import { WebView } from "react-native-webview";
const url =
"https://ticketnests.com/embed/your-event-slug" +
"?key=tn_live_pk_your_key&device=mobile";
export function TicketCheckout() {
return <WebView source={{ uri: url }} />;
}final url = Uri.parse(
'https://ticketnests.com/embed/vote/awards-2026'
'?key=tn_live_pk_your_key&device=mobile',
);
WebViewWidget(
controller: WebViewController()..loadRequest(url),
);val url = "https://ticketnests.com/embed/your-event-slug" +
"?key=tn_live_pk_your_key&device=mobile"
webView.settings.javaScriptEnabled = true
webView.loadUrl(url)let url = URL(string:
"https://ticketnests.com/embed/form/registration" +
"?key=tn_live_pk_your_key&device=mobile"
)!
webView.load(URLRequest(url: url))Server-side integration
The REST API uses ordinary HTTPS and JSON, so it works from any server platform. Store the secret key in an environment variable and call TicketNests from your backend.
const response = await fetch(
"https://ticketnests.com/api/v1/voting/events/awards-2026/results",
{
headers: {
Authorization: `Bearer ${process.env.TICKETNESTS_SECRET_KEY}`
}
}
);
const { data } = await response.json();