Conditional requests

Integrate conditional requests using the ETag header to minimize unnecessary bandwidth usage in your Serialized integration.

To minimize bandwidth usage, the response from /aggregates/ and /projections/ returns the ETag header. You can use the value of this header to make subsequent requests to that resources using the If-None-Match header. If the resource has not changed, the server will return a 304 Not Modified.

HTTP/1.1 200 OK
Content-Type: application/json
Date: Tue, 19 Sep 2017 14:04:15 GMT
ETag: "eccbc87e4b5ce2fe28308fd9f2a7baf3"

"aggregateId": "..."

Making a conditional request

curl -i \
  --header "Serialized-Access-Key: <YOUR_ACCESS_KEY>" \
  --header "Serialized-Secret-Access-Key: <YOUR_SECRET_ACCESS_KEY>" \
  --header "If-None-Match: \"eccbc87e4b5ce2fe28308fd9f2a7baf3\"" \

Client client = ClientBuilder.newClient();
  URI apiRoot = URI.create("");

  Response response =
  .header("Serialized-Access-Key", "<YOUR_ACCESS_KEY>")
  .header("Serialized-Secret-Access-Key", "<YOUR_SECRET_ACCESS_KEY>")
  .header("If-None-Match", "eccbc87e4b5ce2fe28308fd9f2a7baf3")
using RestSharp;
using System;

var client = new RestClient("");

var request = new RestRequest("aggregates/{aggregateType}/{aggregateId}", Method.GET)
   .AddUrlSegment("aggregateType", "order")
   .AddUrlSegment("aggregateId", "99415be8-6819-4470-860c-c2933558d8d3")
   .AddHeader("Serialized-Access-Key", "<YOUR_ACCESS_KEY>")
   .AddHeader("Serialized-Secret-Access-Key", "<YOUR_SECRET_ACCESS_KEY>")
   .AddHeader("If-None-Match", "eccbc87e4b5ce2fe28308fd9f2a7baf3")

var response = client.Execute(request);
const axios = require("axios");

const client = axios.create({
  baseURL: "",
  headers: {
    "Serialized-Access-Key": "<YOUR_ACCESS_KEY>",
    "Serialized-Secret-Access-Key": "<YOUR_SECRET_ACCESS_KEY>"

const params = {
  headers: {"If-None-Match": "eccbc87e4b5ce2fe28308fd9f2a7baf3"},

client.get("aggregates/order/99415be8-6819-4470-860c-c2933558d8d3", params)
  .then(function (response) {
    // Handle response
  .catch(function (error) {
    // Handle error

Additional resources

Read more about conditional requests at these resources: