By default, Plumber will parse JSON, text, query strings, octet streams, and multipart bodies. This function updates the default parsers for any endpoint that does not define their own parsers.

pr_set_parsers(pr, parsers)



A Plumber API. Note: The supplied Plumber API object will also be updated in place as well as returned by the function.


Can be one of:

  • A NULL value

  • A character vector of parser names

  • A named list() whose keys are parser names names and values are arguments to be applied with

  • A TRUE value, which will default to combining all parsers. This is great for seeing what is possible, but not great for security purposes

If the parser name "all" is found in any character value or list name, all remaining parsers will be added. When using a list, parser information already defined will maintain their existing argument values. All remaining parsers will use their default arguments.


# provide a character string
parsers = "json"

# provide a named list with no arguments
parsers = list(json = list())

# provide a named list with arguments; include `rds`
parsers = list(json = list(simplifyVector = FALSE), rds = list())

# default plumber parsers
parsers = c("json", "query", "text", "octet", "multi")


The Plumber router with the new default PlumberEndpoint parsers


Note: The default set of parsers will be completely replaced if any value is supplied. Be sure to include all of your parsers that you would like to include.