---
schema_version: "1"
id: 567695d0010475c403caf57b5ddc5357ecd0f9fe3f7d01130af64fee365117ac
title: eCDN WAF Log Fields and JSON Output
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/cc/264-0-0/b2c_waf_log_fields_json_output.md
canonical_url: https://help.salesforce.com/s/articleView?id=cc.b2c_waf_log_fields_json_output.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 6953264de80bc9f49c280cb3dba5dd40bea49b485f797d40c5a4bae72a6ca704
description: Request B2C Commerce eCDN-WAF log files through the Open Commerce API (OCAPI). This reference covers the request constraints, an example call, the JSON log output, and the fields each log returns.
products:
  - Commerce
  - B2C Commerce
release: "264"
---
# eCDN WAF Log Fields and JSON Output

Request B2C Commerce eCDN-WAF log files through the Open Commerce API (OCAPI). This reference covers the request constraints, an example call, the JSON log output, and the fields each log returns.

[Which Salesforce Commerce Product Do I Have?](https://help.salesforce.com/s/articleView?id=commerce.comm_what_product.htm&language=en_US)

Each realm supports up to 24 pending log-request downloads. A minimum of five minutes is enforced between a log request's end time and the current time.

In this example, the current time is 11:00. To retrieve a 60-minute increment log file, set the start time to 09:50 and the end time to 10:50. The end time is more than five minutes before the current time, so the request is valid. Setting an end time within five minutes of the current time isn't allowed.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:100%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d147985e43">OCAPI Call Example</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="OCAPI Call Example" class="slds-cell-wrap" style="vertical-align:top;" headers="d147985e43 ">
              <pre class="line-numbers slds-box slds-box_x-small slds-theme_shade slds-m-top_medium slds-m-bottom_medium slds-scrollable_x"><code>POST https//&lt;yourvanityhostname&gt;/s/-/dw/data/v18_8/log_requests/ecdn

HEADER
Authorization: Bearer aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa

REQUEST BODY
{zone_name: "redcliff.de", start_time: "2024-04-04T09:50:00.000Z", end_time: "2024-04-04T10:50:00.000Z"}
</code></pre>
            </td>

          </tr>
        </tbody>
      </table>

All OCAPI calls return all fields shown in the JavaScript Object Notation (JSON) log output.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:100%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d147985e73">Log Output</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Log Output" class="slds-cell-wrap" style="vertical-align:top;" headers="d147985e73 ">
              <pre class="line-numbers slds-box slds-box_x-small slds-theme_shade slds-m-top_medium slds-m-bottom_medium slds-scrollable_x"><code>{"CacheStatus":["unknown", "hit", "miss","dynamic"]
"ClientCountry":"us",
"ClientDeviceType":"mobile",
"ClientIP":"1.1.1.1"
"Client IP class:'badHost',
"ClientRequestHost":"www.customer.com",
"ClientRequestMethod":"GET",
"ClientRequestURI":"/dw/image/v2/xxxx_PRD/on/demandware.st
atic/-/template/default/uniqueid/productimages/aaaaaa.jpg?sw=470",
"ClientRequestUserAgent":"Mozilla/5.0 (Linux; Android 7.1.1;
XT1650 Build/NCLS26.118-23-13-6-5) AppleWebKit/537.36
(KHTML, like Gecko Chrome/66.0.3359.158 Mobile
Safari/537.36",
"EdgeResponseStatus":xxx,
"EdgeStartTimestamp":1528631882657999872,
"FirewallMatchesActions":["simulate", "challenge", "drop"],
"FirewallMatchesSources":["firewallRules", "waf", "rateLimit"],
"FirewallMatchesRuleIDs":["4861c39f2cf84aa985d5d813576d08b8"],
"RayID":"xxxxxxxxxx",
</code></pre>
            </td>

          </tr>
        </tbody>
      </table>

The JSON request format provides the category, field, and description for each value in the log output.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="text-align:left;vertical-align:bottom;" id="d147985e107">Category</th>
            <th scope="col" class="slds-cell-wrap" style="text-align:left;vertical-align:bottom;" id="d147985e110">Field</th>
            <th scope="col" class="slds-cell-wrap" style="text-align:left;vertical-align:bottom;" id="d147985e113">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">general</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">CacheStatus</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">Array of strings that define whether a resource caches. Possible
              sources: hit | miss | dynamic</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">client</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">ClientCountry</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">Country of the client IP address</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">client</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">ClientDeviceType</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">Client device type</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">client</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">ClientIP</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">IP addresses of the client</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">client</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">ClientIPClass</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">IP that is blocked for bad reputation status</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">clientRequest</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">ClientRequestHost</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">Host requested by the client</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">clientRequest</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">ClientRequestMethod</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">HTTP method of client request</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">clientRequest</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">ClientRequestURI</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">URI requested by the client</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">clientRequest</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">ClientRequestUserAgent</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">User agent reported by the client</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">edge</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">EdgeResponseStatus</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">HTTP status code returned by eCDN to the client</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">edge</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">EdgeStartTimestamp</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">UNIX nanosecond timestamp, the edge received request from the
              client</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">edgeWAF</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">FirewallMatchesActions</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">Array of actions (strings) that the eCDN firewall performed on a
              request: allow | log | simulate | drop | challenge | jschallenge |
              connection close</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">edgeWAF</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">FirewallMatchesSources</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">
              <p>Array of firewall source types (strings) that have performed actions on
                a request: asn | country | ip | ipRange | securityLevel | zoneLockdown | waf
                | firewallRules | uaBlock | rateLimit | bic | hot | l7ddos</p>
              <p style="margin-bottom:0;">The same
                product appearing multiple times indicates different rules or actions
                activated. </p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">edgeWAF</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">FirewallMatchesRuleIDs</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">Array of RuleIDs (strings) that matched the request</td>

          </tr>
          <tr class="">
            <td data-label="Category" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e107 ">general</td>

            <td data-label="Field" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e110 ">RayID</td>

            <td data-label="Description" class="slds-cell-wrap" style="text-align:left;vertical-align:top;" headers="d147985e113 ">Unique request identifier, 64-bit binary ID</td>

          </tr>
        </tbody>
      </table>

#### See Also

- [eCDN WAF Logs](https://help.salesforce.com/s/articleView?id=cc.b2c_waf_net_traffic_logs.htm&release=264.0.0&type=5 "eCDN logs include information about all of your B2C Commerce network traffic, not just the traffic that the web application firewall (WAF) acts on. Use the logs to track IP-reputation–blocked traffic and to see how much of your traffic doesn't trigger WAF.")