             setExtraHeader(apiKey, forKey: "X-Algolia-API-Key")
         }
     }
-
-    /// Security tag header (see http://www.algolia.com/doc/guides/objc#SecurityUser for more details).
+    
+    /// Security tag header
+    public var queryParameters: String? {
+        didSet {
+            if let queryParameters = queryParameters {
+                setExtraHeader(queryParameters, forKey: "X-Algolia-QueryParameters")
+            } else {
+                manager.session.configuration.HTTPAdditionalHeaders?.removeValueForKey("X-Algolia-QueryParameters")
+            }
+        }
+    }
+
+    /// Security tag header (deprecated)
     public var tagFilters: String? {
         didSet {
             if let tagFilters = tagFilters {

    ///
    /// :param: appID the application ID you have in your admin interface
    /// :param: apiKey a valid API key for the service
    /// :param: tagFilters value of the header X-Algolia-TagFilters
    /// :param: userToken value of the header X-Algolia-UserToken
    /// :param: hostnames the list of hosts that you have received for the service
    public init(appID: String, apiKey: String, tagFilters: String? = nil, userToken: String? = nil, hostnames: [String]? = nil) {
        if count(appID) == 0 {
            NSException(name: "InvalidArgument", reason: "Application ID must be set", userInfo: nil).raise()
        } else if count(apiKey) == 0 {

        }
    }

    /// User-token header
    public var userToken: String? {
        didSet {
            if let userToken = userToken {
