Developer Documentation

Everything you need to put the ShowSeeker event concierge on a website. All ticketing API calls, event normalization and licensing run on the ShowSeeker backend — the widget contains no API keys or sensitive logic.

Quick start

Add one script tag before </body>:

<script src="https://www.showseeker.in/showseeker-widget.js"
        data-backend="https://www.showseeker.in"
        data-license="SSK-YOUR-LICENSE-KEY"
        data-venueid=""></script>

That's the whole integration. The widget injects a floating launcher, styles are isolated in a Shadow DOM (your site's CSS can't break it and vice versa), and events preload in the background.

License required. Each license key is tied to your domain(s). Email us to get a key for your venue.

WordPress

WordPress sites should use the ShowSeeker plugin instead of the script tag — it adds an admin UI for branding, suggestion chips, FAQ management, and venue contact details (map, phone, email). Install the plugin, then enter your Backend URL (https://www.showseeker.in) and license key under Settings → ShowSeeker.

Configuration (data attributes)

AttributeDefaultDescription
data-backend—ShowSeeker backend URL (required)
data-license—Your license key (required)
data-venueid""Limit results to one venue; blank shows all venues for the source
data-sourceticketmasterticketmaster · universe · frontgate · ticketweb
data-orgid""Organization ID (TicketWeb only)
data-titleShowSeekerPanel header title
data-subtitleautoHeader status line (default: "Online · N upcoming events")
data-greetingbuilt-inFirst assistant message
data-chipsbuilt-inSuggestion chips, pipe-separated: Events this week|Shows this month
data-placeholderbuilt-inInput placeholder
data-positionrightright or left corner
data-accent / data-accent2#2F6BF6 / #1B2A6BBrand gradient colors
data-badgetruefalse hides the event-count badge
data-fonttruefalse skips loading Inter from Google Fonts
data-zindex999999Stacking order
data-maxresults10Max event cards per answer
data-autoinittruefalse = don't render until you call ShowSeeker.init()

JavaScript API

<script src="https://www.showseeker.in/showseeker-widget.js" data-autoinit="false"></script>
<script>
  ShowSeeker.init({
    backendUrl: "https://www.showseeker.in",
    licenseKey: "SSK-YOUR-KEY",
    venueId: "",
    title: "Event Finder",
    accent1: "#e11d48",                       // match your brand
    chips: ["Events this week", "Free shows"],
    faqs: [{ title: "Parking?", content: "Free lot behind the venue." }],
    contact: { venueName: "...", address: "...", phone: "...", email: "..." }
  });

  ShowSeeker.open();                          // open the panel
  ShowSeeker.close();                         // close it
  ShowSeeker.toggle();                        // toggle
  ShowSeeker.search("events this week");      // open + run a query
  ShowSeeker.events;                          // loaded events (array copy)
</script>

Any element on your page can trigger it: <button onclick="ShowSeeker.open()">Find events</button>.

What the assistant understands

Date phrases (today, tonight, tomorrow, this/next week, this/next weekend, this/next month, "July 28", "next Thursday"), cities ("shows in New York"), and free-text keywords matched against event names, descriptions, artists and genres — all combinable: comedy next weekend in delhi.

Events API

The widget talks to GET /api/events. You can call it directly for custom integrations:

ParamRequiredDescription
licenseyesYour license key (validated against your domain)
sourcenoticketmaster (default) · universe · frontgate · ticketweb
venueIdnoLimit results to one venue
orgIdnoTicketWeb organization ID

Returns { source, events: [...] } — uniform event objects with name, local start time, venue, price range, genres, images, status and ticket URL, identical across all sources. Responses are cached server-side for 5 minutes. Errors: 401 invalid license, 403 unlicensed domain, 502 upstream failure.

Security model