The "Breadcrumbs" feature looks to improve real-time visibility of performance-impacting and error conditions for content delivery.

What does it do?

Breadcrumbs lets ​Akamai​ quickly do two things:

  1. Help you troubleshoot problems. Troubleshooting a delivery issue typically requires that you contact us and provide client-side and ​Akamai​ edge IP information. We consult log information, along with some amount of back and forth communication to diagnose the issue. Breadcrumbs provides more real-time visibility into the Akamai network, to better help us in troubleshooting your issues. While ​Akamai​ customer support can simply look at a specific line in a specific log file to identify a problem, they have to locate this "specific" content in the logs. With Breadcrumbs, a potential problem is specifically written as a "breadcrumbs" line in the logs, making it easier to locate.

  2. Leverage Breadcrumbs data. If your delivery environment can support it, you can configure it to get real-time insight regarding the ​Akamai​ network. Breadcrumbs includes data such as network health and the location in the ​Akamai​ network ("geo") used to serve content. You can aggregate this data from your player to a central location for review.


The actual root cause of an issue may not always be identifiable via breadcrumbs.

The bottom line

The Breadcrumbs service provides per HTTP transaction visibility into the ​Akamai​ platform, regardless of how deep within that platform, and simplifies log review for troubleshooting.

Add Breadcrumbs

You need to add the Breadcrumbs behavior to your Property Manager property.

  1. Create a new Property Manager property, or edit an existing one using Property Manager.

  2. In the Property Configuration Settings options, click Add Behavior.

  3. Input Breadcrumbs in Search available behaviors to filter the listed behaviors, and select it from the list.

  4. The new behavior is added to your configuration. Set the Enable Breadcrumbs switch to On.

The Opt Mode

Use the Opt Mode slider to conditionally Opt-IN or Opt-OUT of breadcrumbs support on a per-request basis, using a specific query string.

  • Opt-OUT. Breadcrumbs data is included in every response. You can withdraw on a per-request basis by including the ak-bc=offquery string.

  • Opt-IN. Breadcrumbs data is not included in responses. You can include it on a per-request basis by including the ak-bc=onquery string.

Review this table to understand how the query strings are applied, based on your Opt Mode setting.

Query string parameterOpt-Mode settingIs Breadcrumbs data included in response?Description




By default, Opt-IN blocks breadcrumbs data from all responses. By including this query string, the response for this request will contain breadcrumbs data.



The ak-bc=on parameter and "Opt-OUT" setting in your property configuration are redundant values.




The ak-bc=off parameter and "Opt-IN" setting in your property configuration are redundant values.



By default, Opt-OUT includes breadcrumbs data in all responses. By including this query string, breadcrumbs data will be left out of the response to this request.




If no parameter is included, the "opt-IN" method responses will not include breadcrumbs data in all responses. (You need to include the query parameter in a request to "Opt-IN" and receive the data.)



If no parameter is included, the "Opt-OUT" method includes breadcrumbs data in all responses. You need to include the query parameter in a request to "Opt-OUT" of receiving the data.

Why "opt-IN" or "opt-OUT?"

You can simply have Breadcrumbs enabled in your property configuration and set Opt Mode to Opt-OUT to have breadcrumbs applied for all requests that match your rule criteria. Breadcrumbs include a specific header in the response to a requesting player. So, this increases the number of bytes delivered. Plus, a player just may not want (or support) the breadcrumbs response header. So, you can still have Breadcrumbs enabled and include opt-IN or opt-OUT to let the individual players determine how to handle the responses on a per-request basis.

Deliver Breadcrumbs via logs

Ion Standard, Dynamic Site Accelerator, and API Acceleration, only

When Breadcrumbs data is sent, it's included in response headers to a requesting client, and in logs to the content owner. If you're a content owner with no insight into the response headers sent to a client, you can enable this to include all Breadcrumbs data in logs, instead. This can also be helpful if you're using DataStream 2 to retrieve log data. This way, all Breadcrumbs data is carried in the logs it uses.


If you enable this, it's only applied if Breadcrumbs are sent after a request:

  • If you've set Opt Mode to "Opt-OUT". All requests will include Breadcrumbs via logs, unless a request contains the ak-bc=off query string.
  • You've set Opt Mode to "Opt-IN". This means that Breadcrumbs won't be sent unless a request includes the ak-bc=on query string, in which case they'll be sent via logs.

Caveats and known issues

If you want to add support for Breadcrumbs, consider the following:


Response headers can't exceed 8 KB

If you enable Breadcrumbs, response headers delivered during a request will increase in size. If the overall size of these response headers exceeds 8 KB, an edge server will return an HTTP 502 status code. To avoid this, minimize additional data in your response headers to keep them well under this 8 KB maximum size.

XHR-based players

If you're using an XMLHttpRequest (XHR)-based player, ensure that the "Access-Control-Expose-Headers" contains the name of the Breadcrumbs response header.

  1. Click the Default CORS Policy rule.

  2. Locate the Modify Outgoing Response Header entry with its Select Header Name set to Access-Control-Expose-Headers.

  3. Add Akamai-Request-BC to the list to include this header.

Cache Key Query Parameters

With Breadcrumbs, the player can send query parameters to control the opt-IN or opt-OUT aspects of receiving associated data in the response header. This parameter is not supported for use in the cache key. So, if you're including the Cache Key Query Parameters behavior, ensure that opt-IN and opt-OUT are left out.

The Breadcrumbs response

The Breadcrumbs response header that's sent to a player includes various sub-fields of data.

Sub-field keySub-field valueDetails


<Component IP>

The IP address of the node/host currently processing the request. This can be an edge server or an origin.


If the node or host is not either of these two types, it's excluded.


<Request ID>

A unique identifier that's assigned to the request. This helps ​Akamai​ support teams quickly pull the relevant log line in the request.


<Request End Time>

The number of milliseconds between the time the connection is accepted and the breadcrumb was gathered. This time includes the initial metadata parsing time, if metadata hadn't been loaded, as well as the metadata application time for this request, if they occurred between request acceptance and generation of the breadcrumb.

l (lower case L)

<Turn around time>

The time in milliseconds between receipt of the end of the request headers and when the breadcrumb was gathered. This includes the time it takes to fetch the object from another server in the case of a miss, or to perform (synchronous) validation of the object's freshness if the object was in cache. In both of these cases, there's a forward request corresponding to the client request. This time also may include the time to fetch the object from disk, perform ESI processing, and compute response headers.


<DNS LookUp Time>

The delta between the start of the request and the completion of the DNS lookup.


<Component Geo>

Geographic details for the node or host currently processing the request.


<Component ASN>

The autonomous system number of the current node or host.

{variable letters}

<Component Letter>

These are letter identifiers for the ​Akamai​ network component that was involved during that phase of the request. Your ​Akamai​ account representative can use this value to determine where in the request phase the breadcrumb was gathered. Component letters include the following:

  • c. This is at the cache parent with an error range of 10000-19999.
  • g. This is at the edge ghost with an error range of 20000-29999.
  • p. This is at the peer ghost with an error range of 70000-79999.
  • o. This is at the origin with an error range of 80000-89999.
  • w. This applies to ​Akamai​'s Cloud Wrapper service, if you've implemented it in your environment. Error codes can range from 90000-99999.

Example 1: When served from within ​Akamai​

In this example, the request flow is Edge to Peer. So, the Breadcrumbs format would be in this order, with each enclosed in brackets, and separated with commas:

  1. Edge: [{component-ip},{request-id},{component-letter},{component-geo},{component-asn}]
  2. Peer: [{component-letter},{component-geo},{component-asn}]:

Example 2: When served from an origin

In this example, the request flow is Edge to Cache to Origin. So, the Breadcrumbs format would be in this order, with each enclosed in brackets, and separated with commas:

  1. Edge: [{component-ip},{request-id},{component-letter},{component-geo},{component-asn}]
  2. Cache: [{component-letter},{component-geo},{component-asn}]
  3. Origin: [{component-ip},{component-letter}]