BizKitHub
DocsAPI ReferenceContact/bff/contact/detail-login-attempts
getContactAdmin BFF

/bff/contact/detail-login-attempts

Returns 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.

ContactgetBffContactDetail-login-attempts

Parameters

1 query

Query parameters

· 1
customerIdstringRequired

Contact external ID.

Exampleabc123def456ghij

Response schema

1 status code documented

200Success
itemCountnumberRequired

Total number of login attempts.

itemsobject[]Required
Each array item:
idstringRequired

Masked attempt identifier.

committedbooleanRequired

True if the attempt succeeded and issued a session.

riskScorenumberRequired

Risk score computed at the moment of the attempt (0 = clean, 100 = maximum).

Range: 0100
insertedDatestringRequired

Absolute date the attempt was made.

relativeDatestringRequired

Human-relative date (e.g. "3 hours ago").

ipstringRequired

Accepted 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-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):

  • Valid IPv4 is passed through verbatim.
  • Valid IPv6 is lowercased (RFC 5952 §4.3).
  • IPv4-mapped IPv6 ::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.
  • Loopback aliases (::1, 0.0.0.0, localhost, empty string) collapse to 127.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

Examples1.1.1.12001:4860:4860::8888
hostnamestringOptional

Reverse-DNS hostname of the IP, if resolved.

citystringOptional

City resolved from GeoIP.

countrystringOptional

ISO country code resolved from GeoIP.

countryRegionstringOptional

Region/state code resolved from GeoIP.

asnstringOptional

Autonomous System Number of the network owning the IP.

asnOrganizationstringOptional

Organisation owning the ASN (e.g. Cloudflare).

ispstringOptional

ISP name from the GeoIP database.

mobilebooleanRequired

True if the IP belongs to a mobile carrier.

proxybooleanRequired

True if the IP is a known anonymising proxy.

hostingbooleanRequired

True if the IP belongs to a hosting/cloud provider.

torbooleanRequired

True if the IP is a known Tor exit node.

Response example

application/json
{
  "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
    }
  ]
}

Request example

GET /bff/contact/detail-login-attempts

get
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"

Need an API key?

All BizKitHub public API endpoints require authentication via API key.

Get API Key