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 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
Browser JavaScript
<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.

React Native
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 }} />;
}
Flutter
final url = Uri.parse(
  'https://ticketnests.com/embed/vote/awards-2026'
  '?key=tn_live_pk_your_key&device=mobile',
);

WebViewWidget(
  controller: WebViewController()..loadRequest(url),
);
Android · Kotlin
val url = "https://ticketnests.com/embed/your-event-slug" +
  "?key=tn_live_pk_your_key&device=mobile"

webView.settings.javaScriptEnabled = true
webView.loadUrl(url)
iOS · Swift
let url = URL(string:
  "https://ticketnests.com/embed/form/registration" +
  "?key=tn_live_pk_your_key&device=mobile"
)!

webView.load(URLRequest(url: url))
Native Android, iOS, and Flutter packages are not published yet. These hosted WebView interfaces are the stable cross-device SDK contract.

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.

Node.js · native fetch
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();