         }
     }
     
+    public func sendPasswordReset(email: String, completion: @escaping (PyroAuthResult<Bool>) -> Void) {
+        let data: [AnyHashable: Any] = ["requestType": "PASSWORD_RESET", "email": email]
+        let path = "\(confirmationCodePath)?key=\(key)"
+        request.write(path: path, method: .post, data: data) { result in
+            switch result {
+            case .succeeded:
+                completion(.succeeded(true))
+            
+            case .failed(let info):
+                completion(.failed(info))
+            }
+        }
+    }
+    
     internal func handleRequestResult(_ result: RequestResult, completion: @escaping (PyroAuthResult<PyroAuthContent>) -> Void) {
         switch result {
         case .succeeded(let info):

    internal var signInPath: String
    internal var registerPath: String
    internal var refreshPath: String
    
    public init(key: String, request: RequestProtocol, signInPath: String, registerPath: String, refreshPath: String) {
        self.key = key
        self.request = request
        self.signInPath = signInPath
        self.registerPath = registerPath
        self.refreshPath = refreshPath
    }
    
    public func register(email: String, password: String, completion: @escaping (PyroAuthResult<PyroAuthContent>) -> Void) {

        var registerPath: String = ""
        var signInPath: String = ""
        var refreshPath: String = ""
        var confirmationCodePath: String = ""
        
        if let readerInfo = reader.data as? [AnyHashable: Any] {
            registerPath = (readerInfo["register_path"] as? String) ?? ""
            signInPath = (readerInfo["sign_in_path"] as? String) ?? ""
            refreshPath = (readerInfo["refresh_path"] as? String) ?? ""
            confirmationCodePath = (readerInfo["confirmation_code_path"] as? String) ?? ""
        }
        
        let auth = PyroAuth(key: key, request: request, signInPath: signInPath, registerPath: registerPath, refreshPath: refreshPath, confirmationCodePath: confirmationCodePath)
        return auth
    }
}
