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 https://manifesto-project.wzb.eu/tools/ and have the file extension json attached.


  • https://manifesto-project.wzb.eu/tools/api_list_core_versions.json?api_key=<api_key>