SDGs
The Sustainable Development Goals (SDGs) are the 17 global goals the United Nations adopted in 2015 to address challenges like poverty, inequality, climate change, and environmental degradation — from No poverty (SDG 1) to Partnerships for the goals (SDG 17). OpenAlex tags each work with the SDGs its title and abstract are relevant to, so you can find and analyze research on a given global challenge — for example, pulling every work tagged with SDG 13 (Climate action) to study climate-research trends. There are exactly 17; SDGs are one of several aboutness signals OpenAlex offers. An SDG’s OpenAlex ID looks like https://openalex.org/sdgs/3; list them all at api.openalex.org/sdgs.
About
The 17 goals themselves are a fixed UN vocabulary, so this section is about the tagging: how OpenAlex decides which works contribute to which goal.
OpenAlex runs the open-source Aurora Universities SDG Classifier over each work’s title and abstract. For every goal, the model returns a predicted-probability score, and OpenAlex keeps the goals scoring above a relevancy threshold — attaching them to the work’s sustainable_development_goals list (each with its score) and rolling them up into each SDG’s works_count and cited_by_count.
The threshold is 0.4. At launch the cutoff was 0.1, which gave high recall but poor precision — many works were tagged with goals they weren’t really about. Working with universities in Canada and Europe to test results against expert expectations, we found 0.4 struck the best balance: higher values started to miss genuine matches, lower values pulled in too many spurious ones.
Two things to keep in mind:
- It’s a text classifier, so it inherits text-classifier limits. Tags come only from the title and abstract; a work with no abstract has less signal, and the model can still mislabel. Treat SDG tags as a broad, comparable filter, not a precise verdict on a single paper.
- The classifier is open source. Because Aurora is public, you can run the identical model on documents OpenAlex doesn’t index — course syllabi, grant proposals, unpublished research — and get tags in the same form.
Experimental x_sdgs
Since September 2026 every work also carries an experimental second list, x_sdgs, in the same shape as sustainable_development_goals (id, display_name, score). It comes from a different classifier: a small model over the work’s embedding, trained on 200,000 judgments of the 17 goals by Jev, a calibrated decision model, under a strict rule (“substantively contributes to or studies the goal; mentioning a theme in passing is not contributing”). Its score is a calibrated probability (0.4 and up is shown), so 0.9 means roughly nine in ten such tags are right.
We are evaluating it against the Aurora classifier before deciding whether it should replace the main field. On 598 works judged goal by goal by a frontier model, Aurora at its 0.4 cutoff scored precision 0.42 / recall 0.41 (F1 0.42); the Jev judgments the new model learns from scored 0.89 / 0.82 (F1 0.85, 0.81 cross-validated), and the served x_sdgs model 0.78 / 0.76 (F1 0.77). On the public OSDG community dataset Jev scored micro F1 60.8 to Aurora’s 55.3. Aurora’s largest label, SDG 7 (energy), was right about one time in six on that judged sample, mostly physics and materials papers; SDG 3 (health) was tagged on fewer than half the health papers. The full numbers, the judged set and the scripts are in the public job record.
The main field is unchanged for now. sustainable_development_goals and the SDG entity counts still come from Aurora. x_sdgs may change or go away, and x_ marks it as such; if you use it in a report, say which field you used. Filter and group by it the same way: filter=x_sdgs.id:3, group_by=x_sdgs.id. Feedback on either classifier: support@openalex.org.
Attributes
This is the canonical dictionary of every attribute on an SDG object. Attributes shared with other entities are documented once on Common attributes and linked below.
id
String. The OpenAlex ID for this goal, e.g. https://openalex.org/sdgs/3. Unlike most entities, the numeric part is just the goal number (1–17). See Common attributes.
display_name
String. The goal’s name, e.g. Good health and well-being. See Common attributes.
description
String. A one-sentence statement of the goal, e.g. “Ensure healthy lives and promote well-being for all at all ages.”
ids
Object. External identifiers for this goal as URIs. SDG-specific keys: openalex, un (the goal’s UN metadata URI, e.g. https://metadata.un.org/sdg/3), and wikidata.
image_url
String. URL of the goal’s official UN icon (an SVG on Wikimedia Commons).
image_thumbnail_url
String. The same icon as image_url, scaled down (width=300).
works_count
Integer. How many works are tagged with this goal (i.e. scored above 0.4 for it). See Common attributes.
cited_by_count
Integer. Total citations across all works tagged with this goal. See Common attributes.
works_api_url
String. A ready-made Works API URL that returns every work tagged with this goal — i.e. works?filter=sustainable_development_goals.id:<un-uri>.
created_date
String. The date this goal was added to OpenAlex (YYYY-MM-DD). See Common attributes.
updated_date
String. The ISO 8601 UTC timestamp of the last change to this object. See Common attributes.
Of these, works_count, cited_by_count, display_name, and id can be used as filters and sort keys; works_count, cited_by_count, and id also support group_by. The others are select-only columns.
In the API
The SDGs endpoint is at api.openalex.org/sdgs — a short, fixed list of 17. Fetch a single goal by number — /sdgs/3 — or the whole list, and filter, sort, and group over the fields above. For the full list of endpoints see the endpoints index.
The more common way to use SDGs is from the works side: every work carries a sustainable_development_goals list, and you can filter works by goal.
# List all 17 SDGs
https://api.openalex.org/sdgs
# One goal
https://api.openalex.org/sdgs/13
# Works tagged with SDG 3 (Good health and well-being)
https://api.openalex.org/works?filter=sustainable_development_goals.id:3Last updated
View as Markdown