referenced_works field on each work contains outgoing citations as raw IDs, not journal names. But with cursor paging and batching, you can build the full picture. We’ll use the Santa Fe Institute (496 works in 2024) as the example.
The approach
- Cursor through your institution’s works, collecting every
referenced_worksID (with duplicates — if 5 papers cite the same work, that’s 5 references) - Batch-fetch the unique IDs to build a work-to-journal lookup
- Count journals against the full reference list
Step 1: Collect referenced work IDs
Page through works withselect=id,referenced_works to minimize payload:
referenced_works is an array of OpenAlex IDs:
meta.next_cursor until it returns null — for 496 works that’s 5 pages.
Step 2: Batch and count by journal
Batch-fetch the unique IDs withselect=id,primary_location to build a lookup from work ID to journal:
Full script
Example results
Top journals cited by Santa Fe Institute authors in 2024 (from a sample of references):| Journal | References |
|---|---|
| Proceedings of the National Academy of Sciences | 14 |
| Science | 13 |
| PLoS ONE | 12 |
| Nature | 7 |
| Environmental Science & Technology | 4 |
| Nature Plants | 3 |
| Forest Ecology and Management | 3 |
| Frontiers in Ecology and Evolution | 3 |
This recipe requires many API calls — roughly one per 100 referenced works. For an institution with 500 works averaging 30 references each, expect ~150 calls. Add an
api_key parameter and a brief time.sleep(0.1) between batches to stay within rate limits.