UNIndex

API and downloads

Every table on this site can be downloaded as CSV or JSON, and the same data is available from a read-only API. No key or sign-up is needed.

Quick start

curl "https://unindex.org/api/v1/votes?body=unsc&country=RUS&position=abstain&from=2020&format=csv"

Licence and how to cite

Vote, veto and resolution data: © United Nations, non-commercial use with attribution (UN Digital Library terms). Ideal points: Bailey, Strezhnev & Voeten, CC0. Group membership: CIA World Factbook (public domain) and Wikidata (CC0). Computed fields (agreement, clusters, topics, calendar items): UNIndex, same non-commercial attribution terms as the source data.

You must attribute the sources, and the vote and veto data may be used for non-commercial purposes only. If you need to use the UN data commercially, ask the United Nations Dag Hammarskjöld Library for permission; this site cannot grant it.

Suggested citation

UNIndex (2026). United Nations voting data explorer. https://unindex.org. Underlying data: United Nations Dag Hammarskjöld Library, Security Council Voting Data (v7, Oct 2026) and General Assembly Voting Data (v6, Oct 2026); UN Peace & Security Data Hub, Vetoes since 1946. Accessed 2026-10-31.

BibTeX

@misc{unindex,
  title  = {UNIndex: United Nations voting data explorer},
  author = {{UNIndex}},
  year   = {2026},
  url    = {https://unindex.org},
  note   = {Data: UN Dag Hammarskj{\"o}ld Library, Security Council and General Assembly Voting Data; UN Peace \& Security Data Hub. Accessed 2026-10-31}
}

When you use a specific figure

Say which view or endpoint, the parameters and the access date, for example: “Agreement between France and the United Kingdom in the Security Council, 1946–2026 (UNIndex, /api/v1/agreement?c=FRA,GBR, accessed 2026-10-31)”. Computed values (agreement, clusters, topics, calendar items) are UNIndex's own and their definitions are in the methodology; please cite that page when you rely on them. Ideal points are the authors' work: also cite Bailey, Strezhnev & Voeten (2017), Journal of Conflict Resolution 61(2): 430–456.

Source files

For bulk use, the original datasets are published by their owners:

Endpoints

Votes

GET /api/v1/votespaged

Search adopted Security Council and General Assembly votes. The same filters as the vote browser.

Parameters
NameMeaning
bodyunsc or unga
qtext in the title or symbol
countryUN country code (see /api/v1/countries)
positionwith country: yes, no, abstain or non_voting
topictopic slug (see /api/v1/topics)
fromfirst year
tolast year
modalityrecorded or without_vote
dissentno (at least one no vote) or abstain
sortoldest (default is newest first)
limitrows per page (default and maximum depend on the endpoint)
offsetrows to skip
formatjson (default) or csv. CSV is sent as an attachment; the header row names the columns.
Fields
FieldMeaning
slugstable identifier used in UNIndex URLs
symbolUN document symbol, e.g. S/RES/2829(2026)
bodyunsc or unga
datedate of the vote
titlethe UN Library's description
modalityrecorded, or without_vote (adopted without a vote)
yes / no / abstain / did_not_vote / memberstallies from the source; did_not_vote combines absent and not participating
meeting / draftmeeting record and draft symbols where the source gives them
unindex_url / source_urlthis site and the UN Digital Library record

Example: /api/v1/votes?body=unsc&country=RUS&position=abstain&from=2020&format=csv

One vote with its roll call

GET /api/v1/votes/{slug}

The full roll call of one vote. JSON has the vote under meta.vote and countries under data; CSV is the roll call.

Parameters
NameMeaning
formatjson (default) or csv. CSV is sent as an attachment; the header row names the columns.
Fields
FieldMeaning
country_code, countryUN code and display name
name_in_sourcethe name the UN used at the time
positionyes, no, abstain, non_voting
recorded_votefalse when adopted without a vote (positions are then a UN convention)
permanent_memberSecurity Council only

Example: /api/v1/votes/s-res-2829-2026

Countries

GET /api/v1/countries

Every state or entity that voted, with the UN's codes.

Parameters
NameMeaning
formatjson (default) or csv. CSV is sent as an attachment; the header row names the columns.
Fields
FieldMeaning
codeUN dataset code (mostly ISO 3166-1 alpha-3)
namedisplay name
iso3 / iso2 / iso3166_3ISO codes where valid; iso3166_3 for former states
formertrue for states that no longer exist
first_seen / last_seendates seen voting in the data (not membership dates)
sc_recorded_votes / ga_recorded_votesrecorded votes counted

Example: /api/v1/countries?format=csv

A country's votes

GET /api/v1/countries/{code}/votespaged

Every vote of one country with its position.

Parameters
NameMeaning
bodyunsc or unga
fromfirst year
tolast year
limitrows per page (default and maximum depend on the endpoint)
offsetrows to skip
formatjson (default) or csv. CSV is sent as an attachment; the header row names the columns.
Fields
FieldMeaning
positionyes, no, abstain, non_voting
recorded_votefalse for resolutions adopted without a vote
symbol, date, title, slugthe vote

Example: /api/v1/countries/grc/votes?body=unga&from=2015&format=csv

Pairwise agreement

GET /api/v1/agreement

Agreement between selected countries. Read shared_votes before agreement.

Parameters
NameMeaning
ccomma-separated country codes (2 to 30)
bodyunsc (default) or unga
from / toyears
topictopic slug
merge1 to count the USSR as Russia
formatjson (default) or csv. CSV is sent as an attachment; the header row names the columns.
Fields
FieldMeaning
country_a, country_bthe pair
shared_votesrecorded votes where both voted yes, no or abstain
same_positionof those, votes with the same position
agreementsame_position / shared_votes

Example: /api/v1/agreement?c=USA,RUS,CHN&body=unga&from=2016&to=2025

Computed clusters (blocs)

GET /api/v1/blocs

The cluster of each country for the chosen window and algorithm. Same parameters as the Blocs page. Parameters used and modularity are in meta.

Parameters
NameMeaning
bodyunga (default) or unsc
from / toyears
algohier or louvain
linkageaverage, complete or single
kclusters (hierarchical)
thresholdagreement threshold (Louvain)
resolutionLouvain resolution
minSharedminimum shared votes per pair
minVotesminimum votes to include a country
formatjson (default) or csv. CSV is sent as an attachment; the header row names the columns.
Fields
FieldMeaning
country_code, countrythe country
clustercluster number (no meaning beyond grouping)
bloc_namedescriptive name, e.g. "Mostly NATO and EU members"
map_x, map_y2-D drawing coordinates; axes have no meaning

Example: /api/v1/blocs?body=unga&from=2016&to=2025&k=6

Veto events

GET /api/v1/vetoespaged

Vetoes cast in the Security Council since 1946 (UN Peace & Security Data Hub). Includes vetoes of amendments, paragraphs and procedural rulings; one draft can appear more than once.

Parameters
NameMeaning
limitrows per page (default and maximum depend on the endpoint)
offsetrows to skip
formatjson (default) or csv. CSV is sent as an attachment; the header row names the columns.
Fields
FieldMeaning
date, yearwhen
vetoed_byspace-separated country codes (SUN = USSR, RUS = Russian Federation)
draft_reference_rawthe source's free-text draft reference
draft_symbolonly when an S/YYYY/N symbol is present
short_agenda, agenda, source_urlagenda item and the UN record

Example: /api/v1/vetoes?limit=50

Expiry dates

GET /api/v1/calendarpaged

End dates written in Security Council resolution titles. Not a forecast.

Parameters
NameMeaning
regionregion slug (see /api/v1/topics)
topictheme slug
kindmandate, authorization, sanctions, expert_panel, reporting or other
from / todates, YYYY-MM-DD
limitrows per page (default and maximum depend on the endpoint)
offsetrows to skip
formatjson (default) or csv. CSV is sent as an attachment; the header row names the columns.
Fields
FieldMeaning
expires_onthe end date as written
kind, subjectwhat ends
stated_in, stated_in_datethe resolution and its date
final_extensionthe title calls it a final extension

Example: /api/v1/calendar?region=africa&format=csv

Ideal points

GET /api/v1/ideal-pointspaged

Dynamic ideal-point estimates for the General Assembly (Bailey, Strezhnev & Voeten).

Parameters
NameMeaning
ccomma-separated country codes
from / toyears
limitrows per page (default and maximum depend on the endpoint)
offsetrows to skip
formatjson (default) or csv. CSV is sent as an attachment; the header row names the columns.
Fields
FieldMeaning
ideal_pointestimate on one dimension
q5, q9590% credible interval
n_votesvotes behind the estimate

Example: /api/v1/ideal-points?c=USA,RUS,CHN&from=1990

Formal group membership

GET /api/v1/groups

EU, NATO, G77, NAM, OIC, AU, Arab League and BRICS membership with sources.

Parameters
NameMeaning
formatjson (default) or csv. CSV is sent as an attachment; the header row names the columns.
Fields
FieldMeaning
group_code, group_namethe group
country_code, countrythe member
start_date / end_dateempty when unknown
sourcecia_factbook, cia_factbook+wikidata or wikidata

Example: /api/v1/groups?format=csv

Topics

GET /api/v1/topics

Region and theme slugs used by the filters.

Parameters
NameMeaning
formatjson (default) or csv. CSV is sent as an attachment; the header row names the columns.
Fields
FieldMeaning
slug, label, kindkind is region or theme

Example: /api/v1/topics