Attention: [2020-02-08] Unfortunately our manifestoR package is currently not directly available on CRAN (using install.packages). We are working on fixing this issue but for now you can also install it using 'install.packages("manifestoR", repos = "")'. Sorry for the inconvenience.


Provides programmable access to coded election programmes from the Manifesto Corpus and to the Manifesto Project's Main Dataset. The API returns JSON. All functions (except for api_list_core_versions, api_list_metadata_versions, api_get_core_codebook, api_get_core_citation, api_get_corpus_citation) must provide a valid api_key parameter value.


  • Manifesto Project Database Account (simply sign up on this webpage)
  • Manifesto Project Database API Key (simply login to your account, go to your profile page and generate an API key)


  • api_list_core_versions: list all core dataset versions
    • optional parameter: kind (can be "south_america" to get the south american datasets)
  • api_list_metadata_versions: list all corpus metadata versions
    • optional parameter: tag (can be "true" to separate version numbers (eg. "20150522123537") and version tags (eg. "2015-1") into two different attributes "name" and "tag" for each version)
    • optional parameter: details (can be "true" to get also - if existing - the release notes as an additional attribute "description" for each version; this parameter ignores the provided value for the tag parameter and automatically sets the tag parameter to "true")
  • api_get_core: get core dataset
    • parameter: key (e.g. "key=MPDS2015a")
    • optional parameter: kind (can be dta, xlsx or sav); the binary content of these files is base64 encoded in the content-node of the json; depending on the availability of further application-version specific datasets on the download page (e.g. stata14 for MPDS2016a) you can also query these files (by using their names, which in the example would be stata14)
    • optional parameter: raw (can be true, all other values are treated as false); sends the file directly without wrapping in json
  • api_metadata: get corpus metadata for a list of parties in elections
    • parameter: keys (e.g. "keys[]=41320_200909&keys[]=41320_200509"); valid key values are provided by api_get_core, but you need to combine the party and the date column
    • parameter: version (e.g. "version=version"); valid values are provided by api_list_metadata_versions
  • api_texts_and_annotations: get texts and annotations of the coded manifestos:
    • parameter: keys (e.g. keys[]=41320_2009); valid key values are provided by the manifesto_id properties of api_metadata responses (hint: this key value returned by api_metadata can be different to the key initially used to query api_metadata)
    • parameter: version (e.g. "version=version"); valid values are provided by api_list_metadata_versions
  • api_get_core_codebook: get codebook (chapter) for core dataset; esp. get codes, labels and detailed definitions for all the coded categories.
    • parameter: key (e.g. "key=MPDS2017b"); version of the core dataset (currently only codebooks from MPDS2017b onwards are available)
    • optional parameter: kind (can be categories); which part of the codebook should be retrieved (currently only the categories part is implemented)
  • api_get_core_citation: get citation for core dataset
    • parameter: key (e.g. "key=MPDS2015a")
  • api_get_corpus_citation: get citation for corpus dataset
    • parameter: key (e.g. "key=2015-3")


All functions are rooted below and have the file extension json attached.