Analytics API

ListHistory1

Returns a list of changes to Bubblehouse API objects.

MethodGET or POST / OPTIONS
KindRead-Only
URLhttps://app.bubblehouse.com/api/v2023061/<shop>/ListHistory1
AuthenticationShop Token

Endpoint is self-documented. You may send OPTIONS request to the endpoint URL to observe full list of supported topics and their fields.

Input

  • topicslistrequired

    Comma-separated list of topics you are interested in.

    Each topic corresponds to one or more change kind.

    Each topic extends base set of values to accomodate different change kinds (see the "Output" section).

    Topics are organized hierarchically, meaning, that if you specify topic that has subtopics, then changes matching subtopics would be included.

    Endpoint is self-documented. You may send OPTIONS request to the endpoint URL to observe full list of supported topics and their fields.

    Non-exhaustive list of topics served here as an example:

    • pts
    • pts:earned
    • pts:earned:src
    • pts:earned:reward
    • pts:earned:ref
    • pts:earned:ref:sent
    • pts:earned:ref:recv

  • formatTabularDataFormat1optional

    The response format you want: JSON, JSONL or CSV.

  • start_timetimeoptional

    The earliest time of changes that you're interested in.

  • end_timebubbleflakeoptional

    The latest time of changes that you're interested in.

    If live=true, then streaming would stop at the specified time.

  • limitintegeroptional

    The number of objects to return.

    The default limit is 1000 (unless you're streaming), but feel free to use any number here. You can set the limit to -1 or a very large number to disable it; Bubblehouse will be happy to stream the entire history of the shop. If you picked the JSON output format, be careful when processing a potentially huge response this generates.

    If live=true, then streaming would stop at the specified time.

  • livebooleanoptional

    If true, live-streams new entries instead of stopping when reaching the newest entry. Requires a streaming-friendly output format (JSONL or CSV).

  • indentbooleanoptional

    Applicable only for JSON and JSONL. If true, dotted field names would be expanded into nested objects.

  • drybooleanoptional

    Return only bare-minimum information about each event.

Output

JSON output format: the response is a JSON array of objects, each object having the following format.

JSONL output format: the response is a text file with one JSON object per line, each object having the following format.

CSV: the response is a CSV file with the following columns. (Column names correspond exactly to the JSON property names.)

You MUST ignore extra/undocumented properties, unless instructed otherwise by customer support. We can and will introduce new properties without notice, we can and will return extra undocumented properties, we can and will change undocumented properties without notice.

Exact fields set would differ depending on topic with only following fields specified below would present in any change.

Endpoint is self-documented. You may send OPTIONS request to the endpoint URL to observe full list of supported topics and their fields.
  • chg.bhidbubbleflakerequired

    Unique ID of the change in the Bubblehouse system.

  • chg.timetimerequired

    Time when the event was recorded in the Bubblehouse system (RFC3339).

  • chg.areaChangeArea1required

    An enum defining the shape of the change object (ie which other fields are relevant).

  • chg.kindChangeType1required

    Determines the exact change that has occurred.

  • chg.descstringrequired

    A user-visible description of the change, suitable for a history page

  • subj.bhidbubbleflakerequired

    Unique ID of the subject of change in the Bubblehouse system.

    Typically customer, but may be any other object changes for are tracked by the Bubblehouse system.

    Use related subj.type to correctly identify subject of change.

  • subj.typeObjectType1required

    Type of the subject of change in the Bubblehouse system.

    Typically customer, but may be any other object changes for are tracked by the Bubblehouse system.
  • subj.*anyoptional

    Fields specific for given subject type.

    Endpoint is self-documented. You may send OPTIONS request to the endpoint URL to observe full list of supported topics and their fields.
  • obj.bhidbubbleflakeoptional

    Unique ID of the object caused the change in the Bubblehouse system.

    Change type related object that caused given subject to observe given change.

    Use related obj.type to correctly identify subject of change.

    For example:

    • For points earned from points source it would be a points source ID.
    • For points lost due to order refund it would be an order ID.

    May be empty if no object is currently exposed for given event.

  • obj.typeObjectType1optional

    Type of the object of change in the Bubblehouse system.

    May be empty if no object is currently exposed for given event.

  • obj.*anyoptional

    Fields specific for given object type.

    Additional fields vary by object type. For vendible redemptions (chg.kind="vendible_redemption"), the following product and variant fields may be included:

    • obj.product_bhid - Bubblehouse product ID (hex string) of the product associated with the redeemed vendible
    • obj.product_shopid - External/ecommerce platform product ID (numeric string)
    • obj.variant_bhid - Bubblehouse variant ID (hex string) of the specific variant associated with the vendible
    • obj.variant_shopid - External/ecommerce platform variant ID (numeric string)

    Note: Product and variant fields are only present for vendibles that have an associated product variant configured. They will be null or absent for vendibles without variant associations.

    Endpoint is self-documented. You may send OPTIONS request to the endpoint URL to observe full list of supported topics and their fields.

  • anythinganyoptional

    Any other fields associated with the event.

    For example:

    • For points-related events Bubblehouse would provide fields such as  pts.delta, pts.amount and others.

    Endpoint is self-documented. You may send OPTIONS request to the endpoint URL to observe full list of supported topics and their fields.

Specific Errors

StatusErrorReason & Examples
401bad_request

Provided topic or topics are unknown.

{"id":"bad_request","message":"unknown topic: yo!"}

API-wide Errors

StatusErrorReason & Examples

None.

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
ListCustomers2