Each square is a vetoed draft, coloured by the member that vetoed it. A split square is a joint veto; when a member is switched off, its half is faded. Click a square to see the record. The filters apply to both the chart and the table below.
Every vetoed draft, one per row. Click a heading to sort, or a row to see the record.
Version 1, released 6 November 2026 under a CC BY 4.0 licence. If you find an error or a missing source, please write to magnus.lundgren@gu.se; corrections will go into the next version.
The three CSV files hold the data at three levels: drafts, member votes and countries concerned. The JSON file combines them.
The R package contains the data and a few helper functions. Download the file and install it from source:
install.packages("unscvetoes_1.0.0.tar.gz",
repos = NULL, type = "source")
library(unscvetoes)
vetoes # one row per draft
veto_votes # how each member voted
veto_countries # countries concerned
count_vetoes("member")
veto_country_year() # for country-year panels
plot_vetoes()
Lundgren, Magnus. 2026. UN Security Council Vetoes Dataset. Version 1. University of Gothenburg.
@misc{lundgren2026vetoes,
author = {Lundgren, Magnus},
title = {{UN Security Council Vetoes Dataset}},
year = {2026},
note = {Version 1},
institution = {University of Gothenburg}
}
Each veto has a fixed number and its own link. Use the Copy link button in the record, or cite it as, for example: Veto 259 (8 December 2023), UN Security Council Vetoes Dataset, version 1.
The data include Correlates of War, Gleditsch–Ward and ISO3 country codes, UCDP conflict identifiers and UN document symbols. The vignette shows how to join the data to country-year and conflict-year panels.
A draft counts as vetoed when it won enough votes to pass (seven before 1966, nine since) but failed because one or more permanent members voted against it. The dataset follows the veto list of the UN Department of Political and Peacebuilding Affairs, which counts a draft once even when several members vetoed it. Counting each member's veto separately, the 274 drafts were vetoed 332 times. In its early years the Council also voted on parts of drafts, amendments and membership applications, and on whether a question was procedural. These votes are included, and the variable vetoed_item identifies them.
Votes, sponsors and stated reasons come from the Council's verbatim records and the draft texts. The stated reason paraphrases the explanation the vetoing member gave at the meeting.
AI research assistants compiled the entries from the cited documents, and separate review passes checked them against the same sources. Region, issue area and type of vetoed item follow coding rules set out in the codebook. In a test, three further AI coders recoded every draft without seeing the original codes. Their codes matched the original codes for over 99 per cent of drafts on region and type of item, and for 88–92 per cent on issue area (Krippendorff's alpha 0.89).
Conflicts are matched to the UCDP/PRIO Armed Conflict Dataset (version 26.1). In the filters and counts, Russia stands for the Soviet Union before 1992, and China for the Republic of China until 25 October 1971 and the People's Republic of China after that.
Version 1 (6 November 2026): first release, covering all 274 vetoed drafts from 1946 to October 2026.