Skip to content

Trace API

The IBM Food Trust™ Trace API allows authorized users to retrieve information about their organization's food supply chain products, locations, events and transactions. End-to-end product traceability means that authorized users can easily find and trace the path of their organization's product instances along the supply chain.

Trace endpoints

The Trace API provides two endpoints: basic trace and extended trace. Basic trace is included by default; extended trace is a value add-on that must be selected by your organization.

Basic trace

The basic trace endpoint takes a product instance as input, as a single product lot, pallet, or serial number. The basic trace results include event and transaction information for both the input product other connected product instances. These connections occur, for example, when the input product is combined or packed with other products.

The JSON identifiers returned by a basic trace call include:

  • Product identification
  • Input product instance (identifier)
  • Output product instances (identifiers)
  • Supply chain events

Basic trace returns only JSON identifiers for these assets. For additional trace results, the application should make additional calls to return details such as product descriptions or location facility details.

The returned JSON is a tree structure rooted at the input lots/pallets, with other product lots/pallets related to the initial inputs as nested children. Each node in the tree structure is connected to other product lots/pallets through related events, such as transformations or aggregations.

When traversing the JSON structure, the direction of the supply chain can be inferred by the nature of the EPCs:

  • Output lot/pallet is a downstream relation through transformations
  • Input lot/pallet is an upstream relation through transformations
  • Child lot/pallet is an upstream relation in an aggregation, and a downstream relation in a disaggregation
  • Parent lot/pallet is a downstream relation in an aggregation, and an upstream relation in a disaggregation

Each node in the JSON tree structure also describes the events for the product lot/pallet, such as:

  • Transformation changes an input product into a new product
  • Aggregation or disaggregation packs or unpacks separable products
  • Observation records the product location along the supply chain
  • Commission originates the product instance on the supply chain
  • Decommission removes the product instance from the supply chain

Outbound swagger API denotes service endpoints that return output ranging from basic data (product or facility descriptions) to connected elements such as those contained in trace results.

Extended trace

The extended trace endpoint also takes a product instance as input - a single product lot, pallet, or serial number. It returns the same basic trace JSON identifiers plus additional contextual information for enhanced consumability.

In addition to the basic trace JSON identifiers, extended trace also returns:

  • Product details - identifier and owning organization
  • Facility details - identifier and owning organization
  • Attachment details - payloads attached to events, products and facilities
  • Business transaction details - purchase order, despatch advice and receive advice information

ATTENTION: Due to its scope and detailed results, the extended trace endpoint can be both resource intensive and return a high volume of data. Be sure to consider those variables when using the extended trace endpoint, in particular for any automated calls.

To limit the data returned by extended trace, set one or more of the following parameters to false with the API call (the default values are true):

include_events
include_products
include_lots_and_serials
include_locations
include_trace
include_payloads

Note: Events and payloads tend to return the largest volume of data.

Basic trace example

The basic trace endpoint returns an end to end supply chain view of trace results, including lots and pallets that connect with the original input products. The example below demonstrates this usage.

Endpoint

Specify the following path to call the basic trace endpoint:

http://DOMAIN NAME/ift/api/outbound/v2/epcs/PRODUCT ID/trace/

Input

The following table shows how to structure input parameters for the basic trace endpoint:

Table 1. Basic trace input parameters

Type Format
Lot number urn:epc:class:lgtin:0614141.107346.101
urn:epc:class:lgtin:<CompanyPrefix>.<ItemRefAndIndicator>.<Lot> (13 digits + Lot #)
Serial number urn:epc:id:sgtin:0614141.107346.2017
urn:epc:id:sgtin:<CompanyPrefix>.<ItemRefAndIndicator>.<SerialNumber> (13 Digits + Serial Number)
Pallet number (Coming soon)
License plate number (Coming soon)
Transparent Supply lot number urn:ibm:ift:product:lot:class:1234567890123.product-123.lot4
urn:ibm:ift:product:lot:class:<Company Prefix>.<Item Reference>.<Lot Number>
Transparent Supply serial number urn:ibm:ift:product:serial:obj:1234567890123.product-123.serial-number-4567
urn:ibm:ift:product:serial:obj:<Company Prefix>.<Item Reference>.<Serial Number>

Example query

The commands below show how the basic trace endpoint is called. DOMIAN NAME, PRODUCT ID and VALID_IFT_AUTHORIZATION_TOKEN are user-specified:

curl -X GET "[DOMAIN NAME]/ift/api/outbound/v2/epcs/[PRODUCT ID]/trace?depth=5&upstream=true&downstream=true"
-H  "accept: application/json"
-H "Authorization: Bearer '[VALID_IFT_AUTHORIZATION_TOKEN]'"
curl
-X GET "https://developer.transparentsupply.ibm.com/ift/api/outbound/v2/epcs/urn:ibm:ift:product:lot:class:999999999999.sliced-mango.lot-1/trace?depth=5&upstream=true&downstream=true"
-H  "accept: application/json"
-H "Authorization: Bearer 'eyJraWQ...'"

Output

The JSON output from a basic trace call is structured as follows:

{
  "epc_id": "urn:ibm:ift:product:class:2222222222222.mixed_salad.[mixed salad instance]",
  "events": ["[events referencing this mixed salad instance]"],
  "output_epcs": [],
  "child_epcs": [],
  "parent_epcs": [
    {
      "epc_id": "[lot that the mixed salad was packaged into]",
      "child_epcs": [],
      "parent_epcs": [],
      "input_epcs": [],
      "output_epcs": [],
      "events": []
    }
  ],
  "input_epcs": [
    {
      "epc_id": "urn:ibm:ift:product:class:2222222222222.cleaned_spinach.[cleaned spinach instance]",
      "events": [
        {
          "asset_id": "[asset ids corresponding with the cleaned spinach]"
        }
     ........
      ],
      "input_epcs": [
        {
          "epc_id": "urn:ibm:ift:product:class:2222222222222.spinach.[spinach instance]",
          "events": [
            {
              "asset_id": "[asset ids corresponding with the raw spinach]"
            }
          ],
          "output_epcs": [],
          "parent_epcs": [{
            "epc_id": "[lot that the raw spinach was packaged into]",
            "child_epcs": [],
            "parent_epcs": [],
            "input_epcs": [],
            "output_epcs": [],
            "events": []
          }],
          "input_epcs": [],
          "child_epcs": []
        }
      ],
      "output_epcs": [],
      "child_epcs": [],
      "parent_epcs": []
    },
  ]
}

Response model

The basic trace endpoint returns data pertaining to events, locations (facilities), data payloads, products, and the corresponding sequencing of these items, in the following JSON format:

{
  "<TRACE_PRODUCT_ID>": {
    "events": {
      <EVENT_OBJECTS>
    },
    "facilities": {
      <FACILITY_OBJECTS>
    },
    "payloads": {
      <PAYLOAD_OBJECTS>
    },
    "product_instances": {
      <PRODUCT_INSTANCE_OBJECTS>
    },
    "products: {
      <PRODUCT_OBJECTS>
    }
    "sequences": {
      <SEQUENCE_OBJECTS>
    }
  },
  "x-version": "<VERSION>"
}

For each JSON object, the data model and example JSON are provided below.

Events

Event information related to the product identifier are returned in the events block of the JSON response. By default, only the following event types are returned:

  • Lot creation - Events information collected during the lot creation for products.
  • Lot creation events must meet the following criteria:
    • Event type: Commission
  • Transformation - Events information collected when input products are transformed into new products.
  • Transformation events must meet the following criteria:
    • Event type: Transformation
  • Store scan - Events information collected when the product is scanned at a store.
  • Store scan events must meet the following criteria:
    • Event type: Observation
    • Biz step: Stocking

Model:

"events": {
  // Unique ID of the event
  "<EVENT_ID>": {
    "data": {
      // Date and time of the event in the format: "yyyy-mm-ddThh:mm:ss.mmmZ"
      "time": "<EVENT_TIME>",
      // Type of business transaction (commission, transformation, observation)
      "type": "<EVENT_TYPE>",
      // Business step that the event was a part of in the format: "urn:epcglobal:cbv:bizstep:Step"
      "step": "<EVENT_STEP>",
      "facility": {
        // Unique ID of the facility
        "id": "<FACILITY_ID>",
        "sources": [
          {
            // Unique ID of the source facility
            "id": "<SOURCE_ID>"
          }
        ],
        "destinations": [
          {
            // Unique ID of the destination facility
            "id": "<DESTINATION_ID>"
          }
        ]
      },
      "productInstances": {
        "instances": [
          {
            // Unique ID of the instance
            "id": "<INSTANCE_ID>",
            // Item quantity must be a number
            "quantity": <INSTANCE_QUANTITY>,
            // Unit of measure is a two or three character code from UN/CEFACT
            "unit": "<INSTANCE_UNIT_OF_MEASURE>"
          }
        ],
        "inputs": [
          {
            // Unique ID of the input
            "id": "<INPUT_ID>",
            // Input quantity must be a number
            "quantity": <INPUT_QUANTITY>,
            // Unit of measure is a two or three character code from UN/CEFACT
            "unit": "<INPUT_UNIT_OF_MEASURE>"
          }
        ],
        "outputs": [
          {
            // Unique ID of the output
            "id": "<OUTPUT_ID>",
            "quantity": <OUTPUT_QUANTITY>,
            // Unit of measure is a two or three character code from UN/CEFACT
            "unit": "<OUTPUT_UNIT_OF_MEASURE"
          }
        ]
      }
    },
    // List of associated Payload IDs
    "payloadIds": [
      <PAYLOAD_IDS>
    ]
  },

Example:

"events": {
  "urn:uuid:c50240fc-4df3-4d34-bd16-36031bf8b2a5": {
    "data": {
      "time": "2018-10-28T00:00:00.000Z",
      "type": "commission",
      "step": "urn:epcglobal:cbv:bizstep:commissioning",
      "facility": {
        "id": "urn:ibm:ift:location:loc:999999999999.farm-1"
      },
      "productInstances": {
        "instances": [
          {
            "id": "urn:ibm:ift:product:lot:class:999999999999.mango.lot-1",
            "quantity": 500,
            "unit": "CS"
          }
        ]
      }
    },
    "payloadIds": []
  },
  "urn:uuid:b3b8ee28-58cb-4f26-9ad5-f27b27cb89d6": {
    "data": {
      "time": "2018-10-29T02:00:00.000Z",
      "type": "commission",
      "step": "urn:epcglobal:cbv:bizstep:commissioning",
      "facility": {
        "id": "urn:ibm:ift:location:loc:999999999999.farm-2"
      },
      "productInstances": {
        "instances": [
          {
            "id": "urn:ibm:ift:product:lot:class:999999999999.mango.lot-2",
            "quantity": 650,
            "unit": "CS"
          }
        ]
      }
    },
    "payloadIds": []
  },
  "urn:uuid:7d87bbfd-e9b0-49ee-9c04-d2938f6138f8": {
    "data": {
      "time": "2018-11-02T00:00:01.000Z",
      "type": "transformation",
      "step": "urn:epcglobal:cbv:bizstep:transforming",
      "facility": {
        "id": "urn:ibm:ift:location:loc:999999999999.factory-1"
      },
      "productInstances": {
        "inputs": [
          {
            "id": "urn:ibm:ift:product:lot:class:999999999999.mango.lot-1",
            "quantity": 500,
            "unit": "CS"
          },
            {
            "id": "urn:ibm:ift:product:lot:class:999999999999.mango.lot-2",
            "quantity": 650,
            "unit": "CS"
          }
        ],
        "outputs": [
          {
            "id": "urn:ibm:ift:product:lot:class:999999999999.sliced-mango.lot-2",
            "quantity": 4800,
            "unit": "KGM"
          }
        ]
      }
    },
    "payloadIds": []
  },
  "urn:uuid:e207acb5-139b-4813-98bf-b275775e499f": {
    "data": {
      "time": "2018-11-12T00:00:01.000Z",
      "type": "observation",
      "step": "urn:epcglobal:cbv:bizstep:stocking",
      "facility": {
        "id": "urn:ibm:ift:location:loc:5555555555555.store-1",
        "sources": [
          {
            "id": "urn:ibm:ift:location:loc:999999999999.factory-1"
          }
        ],
        "destinations": [
          {
            "id": "urn:ibm:ift:location:loc:5555555555555.store-1"
          }
        ]
      },
      "productInstances": {
        "instances": [
          {
            "id": "urn:ibm:ift:product:lot:class:999999999999.sliced-mango.lot-2",
            "quantity": 1,
            "unit": "EA"
          }
        ]
      }
    },
    "payloadIds": []
  }
}

Facilities

Facility (location) information related to a basic trace is returned in the facilities block. The model is shown below:

Model:

"facilities": {
  // Unique ID for the facility
  "<FACILITY_ID>": {
    "data": {
      "name": "<FACILITY_NAME>",
      // Type of facility (STORE, FARM, SUPPLIER, etc.)
      "type": "STORE",
      "address": {
        "street": "<FACILITY_STREET_ADDRESS>",
        "city": "<FACILITY_CITY>",
        "state": "<FACILITY_STATE>",
        "postalCode": "<FACILITY_POSTAL_CODE>",
        "country": "<FACILTIY_COUNTRY>"
      }
    },
    // List of associated Payload IDs
    "payloadIds": [
      <PAYLOAD_IDS>
    ]
  }
}

Example:

"facilities": {
  "urn:ibm:ift:location:loc:999999999999.farm-1": {
    "data": {
      "name": "Tropical Farms",
      "type": "FARM",
      "address": {
        "city": "Miami",
        "postalCode": "72814"
      }
    }
  },
  "urn:ibm:ift:location:loc:999999999999.farm-2": {
    "data": {
      "name": "name",
      "type": "FARM",
      "address": {
        "city": "West Palm Beach",
        "postalCode": "33401"
      }
    }
  },
  "urn:ibm:ift:location:loc:999999999999.factory-1": {
    "data": {
      "name": "name",
      "type": "PROCESSING_FACILITY",
      "address": {
        "city": "Florence",
        "postalCode": "29501"
      }
    },
    "payloadIds": []
  },
  "urn:ibm:ift:location:loc:5555555555555.store-1": {
    "data": {
      "name": "name",
      "type": "STORE",
      "address": {
        "street": "1 Main St",
        "city": "Durham",
        "state": "NC",
        "postalCode": "27713",
        "country": "US"
      }
    },
    "payloadIds": []
  }
}

Payloads

Payload information related to a basic trace is returned in the payloads block. One or more trace events, facilities, products, or product instances can reference a payload ID. The model is shown below:

Model:

"payloads": {
  // Unique ID of the payload
  "<PAYLOAD_ID>": {
    "data": {
      // Date and time of the payload in the format: "yyyy-mm-ddThh:mm:ss.mmmZ"
      "time": "<PAYLOAD_TIME>",
      // Customized content in a String format
      "content": "<PAYLOAD_CONTENT>",
      // HTTP content type of the payload (application/json, application/xml, etc)
      "contentType": "<PAYLOAD_CONTENT_TYPE>",
      // URI for the payload type
      "typeUri": "<PAYLOAD_TYPE_URI>"
    }
  }
}

Example:

"payloads": {
  "urn:uuid:eed87696-40cc-4839-a609-24d8f0429d08": {
    "data": {
      "time": "2018-11-02T00:00:00.000Z",
      "content": "customized data",
      "contentType": "application/json",
      "typeUri": "typeUriString"
    }
  }
}

Product instances

A product instance is a specific instance or lot of a product class. Product instance information for a basic trace is contained in the productInstances block. The model is shown below:

Model:

"productInstances": {
  // Unique ID of the product instance
  "<PRODUCT_INSTANCE_ID>: {
    "data": {
      "name": "<PRODUCT_NAME>",
      "productId": "<PRODUCT_ID>",
      // Date of freeze in YYYY-MM-DD format
      "firstFreezeDate": "<DATE>",
      // Date of the start of harvest in YYYY-MM-DD format
      "harvestStartDate": "<DATE>",
      // Date of the end of harvest in YYYY-MM-DD format
      "harvestEndDate": "<DATE>",
      // Expiration date in YYYY-MM-DD format
      "expirationDate": "<DATE>",
      // Sell-by date in YYYY-MM-DD format
      "sellByDate": "<DATE>"
    },
    // List of associated Payload IDs
    "payloadIds": [
      <PAYLOAD_IDS>
    ]
  },
}

Example:

"productInstances": {
  "urn:ibm:ift:product:lot:class:999999999999.mango.lot-1": {
    "data": {
      "name": "Mango",
      "productId": "urn:ibm:ift:product:class:999999999999.mango"
    },
    "payloadIds": []
  },
    "urn:ibm:ift:product:lot:class:999999999999.mango.lot-2": {
    "data": {
      "name": "Mango",
      "productId": "urn:ibm:ift:product:class:999999999999.mango"
    },
    "payloadIds": []
  },
  "urn:ibm:ift:product:lot:class:999999999999.sliced-mango.lot-2": {
    "data": {
      "name": "Sliced Mango",
      "productId": "urn:ibm:ift:product:class:999999999999.sliced-mango",
      "sellByDate": "2018-11-17"
    },
    "payloadIds": [
      "urn:uuid:eed87696-40cc-4839-a609-24d8f0429d08"
    ]
  }
}

Products

Product class information related to a basic trace is returned in the products block. The model is shown below:

Model:

"products": {
  // Unique ID of the product
  "<PRODUCT_ID>": {
    "data": {
      "name": "<PRODUCT_NAME>",
      "sku": "<PRODUCT_SKU>"
    },
    // List of associated Payload IDs
    "payloadIds": [
      <PAYLOAD_IDS>
    ]
  }
}

Example:

"products": {
  "urn:ibm:ift:product:class:999999999999.mango": {
    "data": {
      "name": "Mango"
    },
    "payloadIds": []
  },
  "urn:ibm:ift:product:class:999999999999.sliced-mango": {
    "data": {
      "name": "Sliced Mango",
      "sku": "12345678"
    },
    "payloadIds": []
  }
}

Sequences

Sequences describe the corresponding sequencing of events, facilities, and products. Each array outlines an ordered list that shows matching sources and targets. This information can be used to create a linear timeline or a tree structure, depending on the returned data. The model is shown below:

Model:

"sequences": {
  "events": [
    {
      "source": "<EVENT_SOURCE_ID>",
      "target": "<EVENT_TARGET_ID>"
    },
  ],
  "facilities": [
    {
      "source": "<FACILITY_SOURCE_ID>",
      "target": "<FACILITY_TARGET_ID>"
    },
  ],
  "productInstances": [
    {
      "source": "<PRODUCT_INSTANCE_SOURCE_ID>",
      "target": "<PRODUCT_INSTANCE_TARGET_ID>"
    },
  ]
}
},

Example:

"sequences": {
  "events": [
    {
      "source": "urn:uuid:c50240fc-4df3-4d34-bd16-36031bf8b2a5",
      "target": "urn:uuid:7d87bbfd-e9b0-49ee-9c04-d2938f6138f8"
    },
    {
      "source": "urn:uuid:b3b8ee28-58cb-4f26-9ad5-f27b27cb89d6",
      "target": "urn:uuid:7d87bbfd-e9b0-49ee-9c04-d2938f6138f8"
    },
    {
      "source": "urn:uuid:7d87bbfd-e9b0-49ee-9c04-d2938f6138f8",
      "target": "urn:uuid:e207acb5-139b-4813-98bf-b275775e499f"
    }
  ],
  "facilities": [
    {
      "source": "urn:ibm:ift:location:loc:999999999999.farm-1",
      "target": "urn:ibm:ift:location:loc:999999999999.factory-1"
    },
    {
      "source": "urn:ibm:ift:location:loc:999999999999.farm-2",
      "target": "urn:ibm:ift:location:loc:999999999999.factory-1"
    },
    {
      "source": "urn:ibm:ift:location:loc:999999999999.factory-1",
      "target": "urn:ibm:ift:location:loc:5555555555555.store-1"
    }
  ],
  "productInstances": [
    {
      "source": "urn:ibm:ift:product:lot:class:999999999999.mango.lot-1",
      "target": "urn:ibm:ift:product:lot:class:999999999999.sliced-mango.lot-2"
    },
    {
      "source": "urn:ibm:ift:product:lot:class:999999999999.mango.lot-2",
      "target": "urn:ibm:ift:product:lot:class:999999999999.sliced-mango.lot-2"
    }
  ]
}

API response caching

By default, API responses are cached for 24 hours. The first query will have a longer response time, but subsequent queries with the same parameters should have faster response times. A separate entry is cached for each unique tuple based on the following information:

  • organization identifier from the request token
  • productId input query parameter

Bypassing or updating the cached response

To retrieve trace data updated within the previous 24 hours, bypass the cache by setting the API HTTP header X-ApiCache-Bypass to true. Be aware that bypassing the cache will result in much longer response times.

Once the cache is bypassed, the updated response information is added to the API cache. Subsequent requests will therefore return that updated trace information.

Extended trace example

The extended trace endpoint returns trace results for a single product input lot or pallet. The results include additional information, such as business transactions, documents and attachments (payloads), pertaining to the product, facilities, ingredients and events included in the trace results.

Endpoint

Specify the following path to call the extended trace endpoint:

http://DOMAIN NAME/ift/api/outbound/v2/epcs/PRODUCT ID/trace/consumer

Input

The following table shows how to structure input parameters for the extended trace endpoint:

Table 2. Extended trace input parameters

Type Format
Lot number urn:epc:class:lgtin:0614141.107346.101
urn:epc:class:lgtin:<CompanyPrefix>.<ItemRefAndIndicator>.<Lot> (13 digits + Lot #)
Serial number urn:epc:id:sgtin:0614141.107346.2017
urn:epc:id:sgtin:<CompanyPrefix>.<ItemRefAndIndicator>.<SerialNumber> (13 Digits + Serial Number)
Pallet number (Coming soon)
License plate number (Coming soon)
Transparent Supply lot number urn:ibm:ift:product:lot:class:1234567890123.product-123.lot4
urn:ibm:ift:product:lot:class:<Company Prefix>.<Item Reference>.<Lot Number>
Transparent Supply serial number urn:ibm:ift:product:serial:obj:1234567890123.product-123.serial-number-4567
urn:ibm:ift:product:serial:obj:<Company Prefix>.<Item Reference>.<Serial Number>

Example query

The example below shows how the extended trace endpoint is called. DOMIAN NAME, PRODUCT ID and VALID_IFT_AUTHORIZATION_TOKEN are user-specified


curl -X GET "[DOMIAN NAME]/ift/api/outbound/v2/epcs/[PRODUCT ID]/trace/consumer?include_events=true&include_products=true&include_lots_and_serials=true&include_locations=true&include_trace=true&include_payloads=true"
-H  "accept: application/json"
-H "Authorization: Bearer '[VALID_IFT_AUTHORIZATION_TOKEN]'"


curl -X GET "https://developer.transparentsupply.ibm.com/ift/api/outbound/v2/epcs/urn:ibm:ift:product:lot:class:999999999999.sliced-mango.lot-1/trace/consumer?include_events=true&include_products=true&include_lots_and_serials=true&include_locations=true&include_trace=true&include_payloads=true"
-H  "accept: application/json"
-H "Authorization: Bearer 'eyJraWQ...'"

Output

The JSON output from an extended trace call is structured as follows:

{
      "epc_id": "urn:ibm:ift:product:class:2222222222222.mixed_salad.[mixed salad instance]",
(parents, inputs, outputs, children are the exact same as the section above on EPC trace) 
products: [
 {
  "id": "[mixed_salad_gln]",
  "org_id": "[manufacturer org]",
  "description": "mixed_salad",
  "object_sku": "[mixed_salad sku]"
},
..........
    ],
    locations: [
  {
    "id": "urn:ibm:ift:location:loc:1111111111111.farm1",
    "org_id": "1111111111111",
    "party_role_code": "GROWER",
    "party_name": "farm1",
    "city": "Fontana",
    "country_code": "US",
    "postal_code": "22335",
    "state": "CA"
  },  
..........
],
    lots_and_serials: [
{
      "id": "urn:ibm:ift:product:class:1111111111111.baby_lettuce.[instance of baby lettuce]",
      "product_id": "urn:ibm:ift:product:class:1111111111111.baby_lettuce"
    },
............
],
    payloads: [
{
      "id": "[payload instance id]",
      "org_id": "2222222222222",
      "payload_type_uri": "urn:ibm:gbs:gsf:temperature:ambient:digi",
      "payload_timestamp": "2018-07-24T15:38:14.000Z",
      "payload_content_type": "application/json",
      "event_ids": [
        "[event id that the payload mentions]"
      ],
      "epc_ids": ["urn:ibm:ift:product:class:2222222222222.mixed_salad.[epc instance]"],
      "location_ids": ["urn:ibm:ift:location:loc:2222222222222.distributor1"],
      "sub_location_ids": [],
      "payload": "{\"payload\":{\"sensor_id\":\"44644\",\"temp_data\":[{\"temp\":39,\"uom\":\"FAH\",\"timestamp\":\"2018-07-24T13:54:43\"},{\"temp\":39,\"uom\":\"FAH\",\"timestamp\":\"2018-07-24T14:03:24\"},{\"temp\":39,\"uom\":\"FAH\",\"timestamp\":\"2018-07-24T14:14:44\"},{\"temp\":40,\"uom\":\"FAH\",\"timestamp\":\"2018-07-24T14:24:44\"},{\"temp\":38,\"uom\":\"FAH\",\"timestamp\":\"2018-07-24T14:34:43\"},{\"temp\":35,\"uom\":\"FAH\",\"timestamp\":\"2018-07-24T14:40:46\"},{\"temp\":34,\"uom\":\"FAH\",\"timestamp\":\"2018-07-24T14:44:44\"},{\"temp\":34,\"uom\":\"FAH\",\"timestamp\":\"2018-07-24T14:54:44\"},{\"temp\":35,\"uom\":\"FAH\",\"timestamp\":\"2018-07-24T15:04:45\"},{\"temp\":36,\"uom\":\"FAH\",\"timestamp\":\"2018-07-24T15:14:45\"},{\"temp\":37,\"uom\":\"FAH\",\"timestamp\":\"2018-07-24T15:24:45\"},{\"temp\":38,\"uom\":\"FAH\",\"timestamp\":\"2018-07-24T15:34:45\"}]}}"
    },
........
]
}

Filtering the response

The response for extended trace has the same format and data as the basic trace response. However, products, locations, transactions, documents, payloads, and lots and serials are not included in the nested JSON structure of the epc sections of the extended trace response.

To limit the data returned by extended trace, set one or more of the following parameters to false with the API call (the default values are true):

include_events
include_products
include_lots_and_serials
include_locations
include_trace
include_payloads

Note: Events and payloads tend to return the largest volume of data.