diff --git a/R/retrieveUnitNWISData.r b/R/retrieveUnitNWISData.r
new file mode 100644
index 0000000000000000000000000000000000000000..08267c3962c9835a76c100d81e2e6f44f709d710
--- /dev/null
+++ b/R/retrieveUnitNWISData.r
@@ -0,0 +1,69 @@
+#' Data Import for Instantaneous USGS NWIS Data
+#'
+#' Imports data from NWIS web service. This function gets the data from here: \url{http://waterservices.usgs.gov/}
+#' A list of parameter codes can be found here: \url{http://nwis.waterdata.usgs.gov/nwis/pmcodes/}
+#' A list of statistic codes can be found here: \url{http://nwis.waterdata.usgs.gov/nwis/help/?read_file=stat&format=table}
+#'
+#' @param siteNumber string USGS site number.  This is usually an 8 digit number
+#' @param ParameterCd string USGS parameter code.  This is usually an 5 digit number.
+#' @param StartDate string starting date for data retrieval in the form YYYY-MM-DD.
+#' @param EndDate string ending date for data retrieval in the form YYYY-MM-DD.
+#' @param StatCd string USGS statistic code. This is usually 5 digits.  Daily mean (00003) is the default.
+#' @param interactive logical Option for interactive mode.  If true, there is user interaction for error handling and data checks.
+#' @keywords data import USGS web service
+#' @return retval dataframe with agency, site, dateTime, value, and code columns
+#' @export
+#' @examples
+#' siteNumber <- '05114000'
+#' ParameterCd <- '00060'
+#' StartDate <- '2012-05-01'
+#' EndDate <- '2012-05-31'
+#' # These examples require an internet connection to run
+#' retrieveUnitNWISData(siteNumber,ParameterCd,StartDate,EndDate,interactive=FALSE)
+retrieveUnitNWISData <- function (siteNumber,ParameterCd,StartDate,EndDate,interactive=TRUE){  
+  siteNumber <- formatCheckSiteNumber(siteNumber, interactive=interactive)
+  ParameterCd <- formatCheckParameterCd(ParameterCd, interactive=interactive)
+  StartDate <- formatCheckDate(StartDate, "StartDate", interactive=interactive)
+  EndDate <- formatCheckDate(EndDate, "EndDate", interactive=interactive)
+  
+  dateReturn <- checkStartEndDate(StartDate, EndDate, interactive=interactive)
+  StartDate <- dateReturn[1]
+  EndDate <- dateReturn[2]
+  
+  baseURL <- "http://waterservices.usgs.gov/nwis/iv?site="
+  
+  url <- paste(baseURL,siteNumber, "&ParameterCd=",ParameterCd, "&format=rdb,1.0", sep = "")
+  
+  if (nzchar(StartDate)) {
+    url <- paste(url,"&startDT=",StartDate,sep="")
+  } else url <- paste(url,"&startDT=","1851-01-01",sep="")
+  
+  if (nzchar(EndDate)) {
+    url <- paste(url,"&endDT=",EndDate,sep="")
+  }
+  
+  tmp <- read.delim(  
+    url, 
+    header = FALSE, 
+    quote="\"", 
+    dec=".", 
+    sep='\t',
+    colClasses=c('character'),
+    fill = TRUE, 
+    comment.char="#")
+  col.nm <- make.names(unlist(tmp[1,, drop=TRUE]), allow_=FALSE)
+  retval <- lapply(tmp, function(x) {
+    Typ <- x[2] # The type - the second row shows the type (such as 5s = a string with 5 letters, 20d = a date, etc)
+    x <- x[-c(1,2)] # the data - takes away the first 2 rows (1st = header, 2nd = type)
+    if(regexpr('d$', Typ) > 0) { # Must be date
+      ret.val <- as.POSIXct(strptime(x, "%Y-%m-%d %H:%M")) # The data are in standard format, but...
+    }
+    else if(regexpr('n$', Typ) > 0) # Must be numeric
+      ret.val <- as.numeric(x)
+    else # Must be character
+      ret.val <- x
+    return(ret.val)})
+  retval <- as.data.frame(retval, stringsAsFactors=FALSE)  
+  names(retval) <- c('agency', 'site', 'dateTime', 'value', 'code')  
+  return (retval)
+}
\ No newline at end of file