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

Pick the card that matches what you're chasing. Each prompt is ready to paste into your assistant.

Troubleshooting

Start with the failures

When an integration misbehaves, the 4xx and 5xx entries usually name the problem before you read anything else.

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

Ask for the aggregate

Median and average processing times answer performance questions without pulling individual entries.

How slow are my search API calls on average?
Testing

Tag your own calls

Add an apiLogTag parameter to a request you're testing, then filter the log down to just those calls instead of everyone's traffic.

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, so 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, so 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
}