Analytics API
ListHistory1
Returns a list of changes to Bubblehouse API objects.
Method | GET or POST / OPTIONS |
---|---|
Kind | Read-Only |
URL | https://app.bubblehouse.com/api/v2023061/<shop>/ListHistory1 |
Authentication | Shop 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
topics
listrequiredComma-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
- …
The response format you want: JSON, JSONL or CSV.
The earliest time of changes that you're interested in.
The latest time of changes that you're interested in.
If
live=true
, then streaming would stop at the specified time.limit
integeroptionalThe 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.live
booleanoptionalIf true, live-streams new entries instead of stopping when reaching the newest entry. Requires a streaming-friendly output format (JSONL or CSV).
indent
booleanoptionalApplicable only for JSON and JSONL. If true, dotted field names would be expanded into nested objects.
dry
booleanoptionalReturn 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 sendOPTIONS
request to the endpoint URL to observe full list of supported topics and their fields.Unique ID of the change in the Bubblehouse system.
Time when the event was recorded in the Bubblehouse system (RFC3339).
An enum defining the shape of the change object (ie which other fields are relevant).
Determines the exact change that has occurred.
chg.desc
stringrequiredA user-visible description of the change, suitable for a history page
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.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.*
anyoptionalFields specific for given subject type.
Endpoint is self-documented. You may sendOPTIONS
request to the endpoint URL to observe full list of supported topics and their fields.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.
Type of the object of change in the Bubblehouse system.
May be empty if no object is currently exposed for given event.
obj.*
anyoptionalFields 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 vendibleobj.product_shopid
- External/ecommerce platform product ID (numeric string)obj.variant_bhid
- Bubblehouse variant ID (hex string) of the specific variant associated with the vendibleobj.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.anything
anyoptionalAny 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.- For points-related events Bubblehouse would provide fields such as
Specific Errors
Status | Error | Reason & Examples |
---|---|---|
401 | bad_request | Provided topic or topics are unknown. {"id":"bad_request","message":"unknown topic: yo!"} |
API-wide Errors
Status | Error | Reason & Examples |
---|---|---|
None. |
Global Errors
Status | Error | Reason & Examples |
---|---|---|
401 | invalid_token | The provided authentication token is invalid or has expired. {"id":"invalid_token","message":"The token has expired"} |
429 | rate_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"} |
400 | obsolete_global_api_version | The global API version you are trying to use is no longer supported. {"id":"obsolete_global_api_version"} |
400 | invalid_global_api_version | The global API version you are trying to use has never existed. {"id":"invalid_global_api_version"} |
400 | inaccessible_global_api_version | The global API version you are trying to use is not enabled on your account. {"id":"inaccessible_global_api_version"} |