Parameters
1 query
Query parameters
· 1customerIdstringRequiredContact external ID.
abc123def456ghijReturns every recorded sign-in attempt for the contact, including successful and blocked ones, with the risk score computed at the time of the attempt and full GeoIP/threat context (IP, hostname, city, country, ASN, ISP, mobile/proxy/hosting/tor flags). Same shape as /bff/account/audit-login-attempts so the admin can render both with a single grid component.
1 query
customerIdstringRequiredContact external ID.
abc123def456ghij1 status code documented
itemCountnumberRequiredTotal number of login attempts.
itemsobject[]RequiredidstringRequiredMasked attempt identifier.
committedbooleanRequiredTrue if the attempt succeeded and issued a session.
riskScorenumberRequiredRisk score computed at the moment of the attempt (0 = clean, 100 = maximum).
insertedDatestringRequiredAbsolute date the attempt was made.
relativeDatestringRequiredHuman-relative date (e.g. "3 hours ago").
ipstringRequiredAccepted formats:
1.1.1.1 (4 octets, 0–255, no leading zeros).2001:0db8:0000:0000:0000:0000:0000:0001, zero-compressed 2001: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):
::ffff:X.X.X.X is unwrapped to plain IPv4 (RFC 4291 §2.5.5.2) so 1.2.3.4 and ::ffff:1.2.3.4 share one brj__geo_ip row.::1, 0.0.0.0, localhost, empty string) collapse to 127.0.0.1.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.12001:4860:4860::8888hostnamestringOptionalReverse-DNS hostname of the IP, if resolved.
citystringOptionalCity resolved from GeoIP.
countrystringOptionalISO country code resolved from GeoIP.
countryRegionstringOptionalRegion/state code resolved from GeoIP.
asnstringOptionalAutonomous System Number of the network owning the IP.
asnOrganizationstringOptionalOrganisation owning the ASN (e.g. Cloudflare).
ispstringOptionalISP name from the GeoIP database.
mobilebooleanRequiredTrue if the IP belongs to a mobile carrier.
proxybooleanRequiredTrue if the IP is a known anonymising proxy.
hostingbooleanRequiredTrue if the IP belongs to a hosting/cloud provider.
torbooleanRequiredTrue if the IP is a known Tor exit node.
{
"itemCount": 0,
"items": [
{
"id": "example_id",
"committed": false,
"riskScore": 0,
"insertedDate": "example_insertedDate",
"relativeDate": "example_relativeDate",
"ip": "1.1.1.1",
"hostname": "example_hostname",
"city": "example_city",
"country": "example_country",
"countryRegion": "example_countryRegion",
"asn": "example_asn",
"asnOrganization": "example_asnOrganization",
"isp": "example_isp",
"mobile": false,
"proxy": false,
"hosting": false,
"tor": false
}
]
}GET /bff/contact/detail-login-attempts
curl -X GET "https://api.bizkithub.com/bff/contact/detail-login-attempts?customerId=abc123def456ghij" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY"All BizKitHub public API endpoints require authentication via API key.