Skip to content

API log

Inspect the requests a website's integration makes to Hello Retail — which calls arrive, which fail, and how long they take — and switch recording on or off.

Recording is off by default. Switching it on records every /serve/* and /api/websites/* request for the next seven days, and each recorded entry is deleted seven days after capture — so the log never reaches further back than a week. Every response from these tools tells you whether recording is on: apiLoggingUntil holds the date recording stops, and notice explains how to start it when nothing is being recorded. Already-recorded entries stay readable until they expire, whether or not recording is on right now.

Tips & tricks

Start with the failures when an integration misbehaves.

Show me the failed API calls for my website from the last day.

Aggregate timings answer performance questions without pulling individual entries.

How slow are my search API calls on average?

Tag a request you are testing by adding an apiLogTag parameter to it, then filter the log down to just your own calls.

Show me only the tagged requests in my API log.

apiLog_getEntries

Get the logged requests a website's integration has made, newest first: endpoint, HTTP method and URI, request parameters, request headers, response status and server-side processing time. Request headers are limited to the diagnostic ones; credentials are never recorded. Request and response bodies are omitted unless includeBodies is set, and then truncated — the entry's truncated flag says whether you are seeing a prefix.

Name Type Required Description
websiteUuid string Yes The website's UUID. Find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
apiEndpoints array No Only requests to these endpoints. Values: pages, search, recoms, collect_cart, collect_conversion, collect_click, collect_pageview, collect_customeremail, collect_customerid, customer_bias, triggers_subscribe, data_products, data_productfeedruns.
httpStatusSeries array No Only requests whose response status falls in these ranges. Values: INFORMATIONAL (1xx), SUCCESSFUL (2xx), REDIRECTION (3xx), CLIENT_ERROR (4xx), SERVER_ERROR (5xx).
requestedBefore string No Only requests made at or before this ISO-8601 instant, e.g. 2026-08-25T10:00:00Z.
searchText string No Only requests whose parameters or request body contain this text, case-insensitive.
onlyTagged boolean No Only requests tagged with an apiLogTag request parameter.
sort string No requestTime_DESC (default), requestTime_ASC, processingTimeMs_DESC or processingTimeMs_ASC.
limit integer No Maximum number of entries to return. Default 50, max 200.
includeBodies boolean No Include the request and response bodies, truncated. Off by default: bodies are large and carry the website's end-customer data.
Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "apiLog_getEntries",
    "arguments": {
      "websiteUuid": "<string>",
      "httpStatusSeries": ["CLIENT_ERROR", "SERVER_ERROR"],
      "limit": 20
    }
  }
}
{
  "entries": [
    {
      "apiEndpoint": "search_POST",
      "requestMethod": "POST",
      "requestUri": "<string>",
      "requestParameters": {"<name>": ["<value>"]},
      "requestHeaders": {"<name>": ["<value>"]},
      "httpStatusCode": 400,
      "processingTimeMs": 0,
      "requestTime": "2026-08-25T10:00:00Z",
      "requestBody": null,
      "responseBody": null,
      "truncated": false
    }
  ],
  "apiLoggingUntil": "2026-09-01",
  "notice": null
}

apiLog_getStats

Get aggregate timings for a website's logged requests: the median and average server-side processing time in milliseconds and the number of matching log entries. Takes the same filters as apiLog_getEntries, so it answers "how slow is my search endpoint" or "how many 5xx did we return" without pulling entries. A logCount of 0 means nothing matched — check apiLoggingUntil for whether recording is even on.

Name Type Required Description
websiteUuid string Yes The website's UUID. Find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
apiEndpoints array No Only requests to these endpoints. Same values as apiLog_getEntries.
httpStatusSeries array No Only requests whose response status falls in these ranges. Same values as apiLog_getEntries.
requestedBefore string No Only requests made at or before this ISO-8601 instant.
searchText string No Only requests whose parameters or request body contain this text, case-insensitive.
onlyTagged boolean No Only requests tagged with an apiLogTag request parameter.
Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "apiLog_getStats",
    "arguments": {
      "websiteUuid": "<string>",
      "apiEndpoints": ["search"]
    }
  }
}
{
  "medianProcessingTimeMs": 0,
  "averageProcessingTimeMs": 0,
  "logCount": 0,
  "apiLoggingUntil": null,
  "notice": "API logging is not enabled for this website..."
}

apiLog_setLogging

Switch API logging on or off for a website. Switching it on records every /serve/* and /api/websites/* request for the next seven days. The window is always seven days and cannot be extended; call the tool again to switch recording off early.

Write operation

Switching logging on records full request and response bodies — which for the collect endpoints contain the website's end-customer data, such as email addresses, order contents and carts. Your assistant will ask for confirmation before this runs.

Name Type Required Description
websiteUuid string Yes The website's UUID. Find it in my.helloretail.com under Settings → Website Settings → Website Unique Id.
enabled boolean Yes true to record for the next seven days, false to stop recording now.
Example request & response
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "apiLog_setLogging",
    "arguments": {
      "websiteUuid": "<string>",
      "enabled": true
    }
  }
}
{
  "apiLoggingUntil": "2026-09-01",
  "notice": null
}