Parameters
2 query · JSON body
Query parameters
· 2apiKeystringRequiredYour BizKitHub API key (passed as GET parameter).
Key format: A 32-character string matching: ^(PROD|DEV_|ROOT)[A-Za-z0-9]{28}$
Prefixes: PROD (production key), DEV_ (individual developer), ROOT (system key with no limits). Learn more
PRODPGrFxpGEtrOZfuWhnoJohUYBXuOEcustomerRealIpstringOptionalAccepted formats:
- IPv4 dot-decimal, e.g.
1.1.1.1(4 octets, 0–255, no leading zeros). - IPv6 as defined by RFC 4291 — full
2001:0db8:0000:0000:0000:0000:0000:0001, zero-compressed2001:db8::1, IPv4-mapped::ffff:1.2.3.4, or scoped literals. Both upper- and lower-case hex are accepted.
Server-side canonicalization (ipNormalize in core/src/lib/network/ipNormalize.ts):
- Valid IPv4 is passed through verbatim.
- Valid IPv6 is lowercased (RFC 5952 §4.3).
- IPv4-mapped IPv6
::ffff:X.X.X.Xis unwrapped to plain IPv4 (RFC 4291 §2.5.5.2) so1.2.3.4and::ffff:1.2.3.4share onebrj__geo_iprow. - Loopback aliases (
::1,0.0.0.0,localhost, empty string) collapse to127.0.0.1. - Junk values that fail both IPv4 and IPv6 validation are silently rejected and replaced with
127.0.0.1(loopback).
On the wire: every response returns the canonicalized form — clients can safely rely on lowercase IPv6 and the plain-IPv4 unwrap when de-duping or joining. Server-originated writers (activity log, session log, ban list) resolve the visitor IP via resolveClientIp / resolveClientIpOrNull — always native IPv6 on Vercel Edge (there is no auto-mapping to ::ffff:X.X.X.X).
Enrichment: the system resolves reverse DNS, geolocation, ASN, mobile/proxy/hosting/Tor flags via our VikiTron GEO/IP resolver for both address families. Learn more
1.1.1.1Request body
application/jsonmessagestringRequiredMessage body from the customer. Must be at least 10 characters (rejects one-word noise) and at most 5000 characters (a full report fits, spam floods do not).
Hello, how are you?subjectstringOptionalSubject line for the support ticket.
Request from JannoticestringOptionalInternal note (not visible to customer).
Internal noticesendToEmailstringOptionalContact email address.
The system validates the input as a standard email address and automatically applies normalization and canonicalization.
All API responses return the normalized form, and each email address is unique per organisation within the system.
Phone-only contacts: Since 2026-06-10 a contact may exist without an e-mail when it was registered only by phone (e.g. imports of phone-only records). Responses that expose such contacts use API_EMAIL_NULLABLE instead, where this field can be null. Endpoints that accept e-mail as input still require a valid value here — phone-only creation goes through admin-only import / BFF flows.
jan@barasek.comcategorySlugstringOptionalCategory slug for routing the ticket.
offercustomerEmailstringOptionalContact email address.
The system validates the input as a standard email address and automatically applies normalization and canonicalization.
All API responses return the normalized form, and each email address is unique per organisation within the system.
Phone-only contacts: Since 2026-06-10 a contact may exist without an e-mail when it was registered only by phone (e.g. imports of phone-only records). Responses that expose such contacts use API_EMAIL_NULLABLE instead, where this field can be null. Endpoints that accept e-mail as input still require a valid value here — phone-only creation goes through admin-only import / BFF flows.
jan@barasek.comcustomerPhonestringOptionalContact phone number in international (national) format.
Preferred format: +<country_code> <local_number>
- Leading plus sign (
+) is required - Followed by the country calling code (e.g.
420) - One space after the country code
- Full local number without spaces
Example: +420 777123456
This format ensures unambiguous storage, validation, and compatibility with SMS, calling, and third-party integrations (e.g. Twilio, WhatsApp, CRM systems).
+420 777123456customerFirstNamestringOptionalJancustomerLastNamestringOptionalBarášekurgentbooleanOptionalReporter's felt-urgency flag. Pass true when the contact form exposes an 'urgent for me' checkbox and the visitor ticked it. Persisted to pm__issue.user_urgency_hint and forwarded to the AI triage classifier as a soft input (never authoritative — content still decides the final priority). Keep unset / false for automated submissions.
false