It's an interpolated string - the new feature of C# 6, which is basically just a syntax sugar for String.Format (compiler converts interpolated strings into the String.Format calls). Your string is equivalent to
String.Format("api/products/{0}", product.Id)