I HTTP-standarden används ETag i HTTP headern för att hantera concurrency. ETag är ett unikt token som motsvarar den aktuella versionen av en efterfrågad entitet.

För att API:et ska kunna hantera att returnera flera objekt samtidigt, hanteras istället ETag som ett värde i värdelistan på varje entitet.

När ett/flera objekt läses från API:et returneras ett ETag värde för varje objekt som motsvarar just den returnerade versionen av objekten.

ETag värdet är av datatypen sträng, men kan t ex anges i form av en hash, eller som ett datum för att på det sättet kunna identifiera senaste versionen av objeketet. Klienten behöver inte skicka med ETag vid skapande av nya objekt, men när ett objekt ska uppdateras måste ETag skickas med i anropet. API:et jämför då den specificerade ETag:en med det nuvarande objektets ETag.
Om de stämmer överens uppdateras objektet och får en ny ETag.
Ifall jämförelsen inte stämmer, vilket betyder att objektet har hunnit ändrats av någon annan, genomförs inte uppdateringen utan en förklarande felkod returneras.


Exempel:



För mer information om ETag:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19