BizKitHub
DocsAPI ReferenceCustomer/api/v1/customer/get-account-info
getCustomerPublic API v1

/api/v1/customer/get-account-info

Returns the profile of the currently authenticated customer (by identityId). Updates the last activity timestamp.

customergetApiV1CustomerGet-account-info

Parameters

3 query

Query parameters

· 3
apiKeystringRequired

Your 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

ExamplePRODPGrFxpGEtrOZfuWhnoJohUYBXuOE
identityIdstringRequired

Logged user identity (from your frontend cookies). Learn more

ExampleZ9CPkS2o3UV163VQn5OUv0T8BQi8Fvdg
customerRealIpstringOptional

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

Example1.1.1.1

Response schema

1 status code documented

200Success
loggedInbooleanRequired
Exampletrue
identityIdstringRequired

Logged user identity (from your frontend cookies). Learn more

ExampleZ9CPkS2o3UV163VQn5OUv0T8BQi8Fvdg
cuRefNostringRequired

cuRefNo = customer reference number.

Length: 16–16
Example1cGIHvFoQDGLAbcA
creditBalancenumberRequired
Example123
emailstring | nullRequired
One of 2:
Variant 1
string

Contact e-mail address, or null for phone-only contacts.

When null: the contact was registered with only a phone number (no e-mail), or was anonymised via GDPR right-to-erasure. Such contacts cannot be looked up by e-mail and cannot log in (login requires e-mail). UI should fall back to the contact's name, phone, or external reference when rendering.

When non-null, the value is the canonical normalized form (fixEmail) and is unique per organisation.

Examplejan@barasek.com
Variant 2
null
phonestringOptional

Contact 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).

Example+420 777123456
firstNamestringOptional
ExampleJan
lastNamestringOptional
ExampleBarášek
companyNamestringOptional
ExampleBizKitHub
premiumbooleanRequired
Exampletrue
banbooleanRequired
Examplefalse
groupsobject[]Required
Each array item:
namestringRequired
ExamplePersonal Trainer
slugstringRequired
Exampletrainer
metaobjectRequired
customFieldsobjectRequired
referralobjectOptional
codestringRequired

cuRefNo = customer reference number.

Length: 16–16
Example1cGIHvFoQDGLAbcA
emailstringRequired

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

Examplejan@barasek.com
firstNamestringOptional
ExampleJan
lastNamestringOptional
ExampleBarášek
runningSubscriptionListobject[]Required
Each array item:
externalIdstringRequired
Exampled9DfQL3ZF01t7Ykk
productSlugstringRequired
Examplepredplatne-rocni
productCodestringRequired
Examplepredplatne-rocni
orderNumberstringRequired
Example25000001
orderHashstringRequired
ExampleCuS08iXV3cOwweQsQB3TwYXtDr67K4kW
autoRenewbooleanRequired
Exampletrue
renewalDateDate | string | string | numberRequired
One of 4:
Variant 1
Date
Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
activeToDateDate | string | string | numberOptional
One of 4:
Variant 1
Date
Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number
lastSuccessPaymentDateDate | string | string | numberOptional
One of 4:
Variant 1
Date
Variant 2
stringdate-time
Variant 3
stringdate
Variant 4
number

Response example

application/json
{
  "loggedIn": true,
  "identityId": "Z9CPkS2o3UV163VQn5OUv0T8BQi8Fvdg",
  "cuRefNo": "1cGIHvFoQDGLAbcA",
  "creditBalance": 123,
  "phone": "+420 777123456",
  "firstName": "Jan",
  "lastName": "Barášek",
  "companyName": "BizKitHub",
  "premium": true,
  "ban": false,
  "groups": [
    {
      "name": "Personal Trainer",
      "slug": "trainer"
    }
  ],
  "meta": {},
  "customFields": {},
  "referral": {
    "code": "1cGIHvFoQDGLAbcA",
    "email": "jan@barasek.com",
    "firstName": "Jan",
    "lastName": "Barášek"
  },
  "runningSubscriptionList": [
    {
      "externalId": "d9DfQL3ZF01t7Ykk",
      "productSlug": "predplatne-rocni",
      "productCode": "predplatne-rocni",
      "orderNumber": "25000001",
      "orderHash": "CuS08iXV3cOwweQsQB3TwYXtDr67K4kW",
      "autoRenew": true
    }
  ]
}

Request example

GET /api/v1/customer/get-account-info

get
curl -X GET "https://api.bizkithub.com/api/v1/customer/get-account-info?apiKey=PRODPGrFxpGEtrOZfuWhnoJohUYBXuOE&identityId=Z9CPkS2o3UV163VQn5OUv0T8BQi8Fvdg&customerRealIp=1.1.1.1" \
  -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