Esri has a premium service which requires adding a token to REST API requests for services like batch geocoding. The service has a few gotchas. The sample code is:
public class EsriTokenResponse
{
[JsonProperty(PropertyName = "access_token")]
public string AccessToken { get; set; }
[JsonProperty(PropertyName = "expires_in")]