Skip to content
GDPR compliant. Hosted in DE.
14-day free trial →

Embeddable widgets

Two JavaScript snippets to embed on any web page: the status widget shows the live uptime status of your sites (badge, banner or card); the audit widget offers a branded website quick check as a lead magnet. Both are vanilla JS, defer-loaded, around 10 to 12 KB minified each (under 5 KB compressed), with no framework dependency and no external CDNs — and they set no cookies and load no third-party fonts.

# Status widget — three styles

Badge, banner or card

Badge — small pill (e.g. in your footer showing All systems operational or Incident detected). Banner — full width with status and number of sites. Card — vertical widget with one row per site, hostname and 30-day uptime (uptime_percent_30d) per entry. Pick the style via data-style; without it the card style is rendered.

data attributes

data-token (public token of your status page, required), data-style=badge|banner|card, data-theme=light|dark|auto (auto follows the visitor system dark mode; light when omitted), data-lang=de|en (the browser language when omitted) plus data-api and data-link for custom hosts. Without data-token the widget renders nothing.

Embed the status widget

<script defer src="https://www.xictraq.com/status-widget.js"
        data-token="IHR_PUBLIC_TOKEN"
        data-style="badge"
        data-theme="auto"></script>

The widget renders where the script tag sits, or into an existing empty element carrying the data-xq-status attribute:

<div data-xq-status></div>

Live, without reload

On first render the widget fetches the public status endpoint of your page (GET /api/public/status?token=...) once and renders it locally. After that it refreshes every 5 minutes (300 seconds) asynchronously, without any page reload. If a website or an API endpoint of the status page is down, the status dot turns red (“Incident detected”); if a website is in maintenance mode, amber (“Maintenance in progress”), likewise for an endpoint that is only degraded (“Partially degraded”); if some websites or endpoints lack a measurement, it stays grey (“Status partly not determined”). Open reported incidents count as well: impact “Critical” or “Major” turns it red, “Minor” amber (“Partially degraded”). The widget thus follows the same rule as the status page. The status token only returns the websites released for that page — no user ID, no full portfolio.

White-label in card style

Agency

In card style the widget picks up your white-label automatically from the status response: the primary colour (whitelabel.primary_color) as CSS variables, the logo (whitelabel.logo_base64) in the header and the company name (whitelabel.company_name) in the footer. Once a company name is set, your brand copyright note replaces the Powered-by-XICTRAQ footer.

# Audit / quick-check widget (lead magnet)

A second embed for the Agency plan: a branded website quick check you place on your agency site. Visitors enter their URL, get an audit result (status, response time, SSL validity, security score) and download it as a PDF in your brand — every scan is automatically captured as a lead in your dashboard.

Embed the audit widget

<script defer src="https://www.xictraq.com/check-widget.js"
        data-token="IHRE_USER_ID"
        data-lang="de"></script>

data-token is the user ID of the agency owner; branding is resolved from it server-side. Optionally set a mount point via an element carrying data-xq-check.

data attributes to customise

data-title (heading above the input field), data-button (label of the check button), data-placeholder (placeholder in the URL field) and data-lang=de|en (language of the widget interface, browser language when omitted). All customisation attributes are optional — sensible defaults apply when omitted.

Branding from your account

Agency

Logo, primary colour, accent colour and company name come automatically from your white-label settings. The widget reads the branding via GET /api/public/widget-brand?ref=YOUR_USER_ID and renders the quick-check field, result and PDF in your brand. The response contains white_label, company_name, primary_color, accent_color, logo_url (embedded as a safe data URI) and powered_by_visible. Without an Agency plan the endpoint returns the XICTRAQ default colours (primary #004d43, accent #006b5a) so the widget keeps working.

What gets checked

On submit the widget calls POST /api/public/scan with url, ref and a bot-challenge token and shows the result compactly: status (Online/Offline; on a connect timeout it reads Unreachable instead of Offline, since many targets block datacenter IPs), response time in ms, SSL validity and a security score from 0–100. The result comes from the same quick check as the public scan and is cached server-side for 10 minutes.

Branded PDF to take away

Agency

From the result the visitor downloads a white-label report (your agency logo, colours and company name). Generation runs via POST /api/public/scan/pdf with url, ref and _challenge and returns the PDF directly as a download; the filename carries your brand name. Once a company name is set, the Powered-by-XICTRAQ note is dropped.

Every scan becomes a lead

Agency

Every successful quick check and every PDF download carrying your ref (user ID) is captured as a lead for your agency in the widget_leads table — deduplicated per hour per checked URL and visitor so repeat checks do not inflate the same lead. Only calls coming from an embedded page count: the origin of the embedding domain is stored alongside the lead and shown in the list, while calls without an embedding and our own preview pages are ignored. The visitor IP is never stored in clear text, only as a salted SHA-256 hash (for the dedup); the country of origin is derived via GeoIP. While logged in you retrieve the latest leads via GET /api/widget/leads (checked URL, country, source domain, timestamp — never the IP hash). The list holds the newest 100 leads; with ?with_counts=1 it comes back as an object with leads and counts; counts gives the total, the last 7 days and the 7 days before.

Bot and abuse protection

The quick check is hardened against automation: a time-based challenge token (must be 2–120 seconds old) and a minimum dwell time of 2 seconds on the page before the first check. Rate limits are 10 requests per minute and 60 per hour per IP, shared between scan and PDF; URLs to be scanned are validated against internal/private IP ranges (SSRF protection).

# White-label & custom domain

White-label on the Agency plan

Agency

On Agency both widgets pick up the logo, primary and accent colour and company name automatically from your white-label config — no XICTRAQ branding. The Powered-by-XICTRAQ footer is dropped once you set a company name. Free, Starter and Business use the default XICTRAQ branding.

Custom domain
The Custom-Domain Status-Page add-on (EUR 5/month per domain) is bookable on every plan: enter the domain in the editor, set the DNS record, verify — the SSL certificate follows automatically. Without the add-on we serve your status page on a token URL, on the Agency plan in your white-label.

# FAQ

Frequently asked questions

Both set NO cookies, load NO fonts from third-party servers and use a system font stack. The status widget only fetches the public status endpoint of your page; the audit widget only sends the URL entered by the visitor to the quick check. Both are served from www.xictraq.com (same origin as the tracker).
Availability & plan gating
The status widget is available on every plan once you have created a status page with a public token. The audit widget with white-label PDF and lead capture, plus the white-label branding of both widgets, are part of the Agency plan. The widgets set no cookies, load no third-party fonts and only transmit what is needed (the status token, or the URL entered by the visitor). Checked URLs and the leads they produce are processed by you as your agency's controller — the legal assessment in each case remains with you.
Start in 60 seconds

Let XICTRAQ watch your website.

Permanent free plan available. No credit card, no installation, no hidden fees.