diff --git a/R/KorAPQuery.R b/R/KorAPQuery.R
index 9114c83..b6ed0da 100644
--- a/R/KorAPQuery.R
+++ b/R/KorAPQuery.R
@@ -99,6 +99,12 @@
 #' @param verbose print some info
 #' @param as.df return result as data frame instead of as S4 object?
 #' @param expand logical that decides if `query` and `vc` parameters are expanded to all of their combinations
+#' @param context string that specifies the size of the left and the right context returned in `snippet`
+#'        (provided that `metadataOnly` is set to `false` and that the necessary access right are  met).
+#'        The format of the context size specifcation (e.g. `3-token,3-token`) is described in the [Service: Search GET documentation of the Kustvakt Wiki](https://github.com/KorAP/Kustvakt/wiki/Service:-Search-GET).
+#'        If the parameter is not set, the default context size secification of the KorAP server instance will be used.
+#'        Note that you cannot overrule the maximum context size set in the KorAP server instance,
+#'        as this is typically legally motivated.
 #' @return Depending on the `as.df` parameter, a table or a [KorAPQuery()] object that, among other information, contains the total number of results in `@totalResults`. The resulting object can be used to fetch all query results (with [fetchAll()]) or the next page of results (with [fetchNext()]).
 #' A corresponding URL to be used within a web browser is contained in `@webUIRequestUrl`
 #' Please make sure to check `$collection$rewrites` to see if any unforeseen access rewrites of the query's virtual corpus had to be performed.
@@ -166,7 +172,8 @@
                    accessRewriteFatal = TRUE,
                    verbose = kco@verbose,
                    expand = length(vc) != length(query),
-          as.df = FALSE) {
+          as.df = FALSE,
+          context = NULL) {
   if (length(query) > 1 || length(vc) > 1) {
     grid <- if (expand) expand_grid(query=query, vc=vc) else tibble(query=query, vc=vc)
     purrr::pmap(grid, function(query, vc, ...)
@@ -180,6 +187,7 @@
       request <-
         paste0('?q=',
                url_encode(enc2utf8(query)),
+               ifelse (!metadataOnly && ! is.null(context) && context !=  '', paste0('&context=', url_encode(enc2utf8(context))), ''),
                ifelse (vc != '', paste0('&cq=', url_encode(enc2utf8(vc))), ''), '&ql=', ql)
       webUIRequestUrl <- paste0(kco@KorAPUrl, request)
       requestUrl <- paste0(
