Loyalty API

CustomerDetails1

Returns customer information as stored in Bubblehouse, including profile data, account status, and shop-provided attributes.

MethodGET or POST
KindRead-Only
URLhttps://app.bubblehouse.com/api/v2023061/<shop>/CustomerDetails1
AuthenticationCustomer TokenShop Token

You have a choice of making this call from your server using a shop token and specifying a customer ID, or making this call from a web browser/app using a customer token you have generated on the server.

This endpoint returns the customer data as originally provided via API and/or collected by first-party integrations.

Input

  • customerCustomerIdentity1required if using a shop token

    A customer to operate upon, when using a shop token.

    If you're using a customer token and decide to pass this field (which we do not recommend), it must match the customer from the token.

Usage Examples

Retrieve customer by Bubblehouse ID

The most efficient way to retrieve customer details when you have the Bubblehouse ID:

Request

{
  "customer": {
    "bhid": "0000018abc123def"
  }
}

Response

{
  "bh_id": "0000018abc123def",
  "id": "shop-customer-123",
  "first_name": "Alice",
  "last_name": "Smith",
  "email": "alice@example.com",
  "phone": "+15551234567",
  "tags": [
    "vip",
    "wholesale"
  ],
  "birthday": "1990-05-15",
  "anniversary": "2015-08-20",
  "extras": {
    "favorite_color": "blue",
    "preferences": "organic"
  },
  "personal_referral_code": "ALICE20",
  "order_count": 42,
  "total_spent": "1250.00",
  "signed_up_at": "2020-01-15T10:30:00Z",
  "email_marketing_consent": "subscribed",
  "email_verified": "unknown",
  "optin": true
}

Retrieve customer by email

Find a customer using their email address:

Request

{
  "customer": {
    "email": "customer@example.com"
  }
}

Response

{
  "bh_id": "0000018def456789",
  "id": "shop-customer-456",
  "first_name": "Bob",
  "last_name": "Johnson",
  "email": "customer@example.com",
  "alt_emails": [
    "old.email@example.com"
  ],
  "tags": [],
  "order_count": 5,
  "total_spent": "350.00",
  "signed_up_at": "2023-06-01T14:20:00Z",
  "email_marketing_consent": "unsubscribed",
  "sms_marketing_consent": "subscribed",
  "email_verified": "unknown",
  "optin": true
}

Specific Errors

StatusErrorReason & Examples

None.

API-wide Errors

StatusErrorReason & Examples
400missing_customer_identity

The customer identity ('customer' input parameter) has not been specified when using a shop token. You need to either specify a non-empty value for one of the customer identity fields, or use a customer token.

{"id":"missing_customer_identity"}
404empty_customer_identity

All fields of the customer identity ('customer' input parameter) have been empty when using a shop token. You need to either specify a non-empty value for one of the customer identity fields, or use a customer token.

{"id":"empty_customer_identity"}
404no_customers_match_customer_identity

The customer identity ('customer' input parameter) does not match a known customer.

{"id":"no_customers_match_customer_identity"}
404customer_identity_partially_mismatches_matched_customer

A customer has been matched by one of the fields of the customer identity ('customer' input parameter), but some non-empty fields do not match Bubblehouse data on that customer.

{"id":"customer_identity_partially_mismatches_matched_customer"}
403customer_identity_does_not_match_token

API call is using a customer token, but the customer identity in API params does not match the customer from the token.

{"id":"customer_identity_does_not_match_token"}

Global Errors

StatusErrorReason & Examples
401invalid_token

The provided authentication token is invalid or has expired.

{"id":"invalid_token","message":"The token has expired"}
429rate_limit_exceeded

Your usage is over the rate limit. Ensure that you're not making duplicate calls, and contact our team for a rate limit increase.

{"id":"rate_limit_exceeded","message":"You are over the read limit per second for this customer"}
400obsolete_global_api_version

The global API version you are trying to use is no longer supported.

{"id":"obsolete_global_api_version"}
400invalid_global_api_version

The global API version you are trying to use has never existed.

{"id":"invalid_global_api_version"}
400inaccessible_global_api_version

The global API version you are trying to use is not enabled on your account.

{"id":"inaccessible_global_api_version"}
Previous
LoggedOutBalance1