Finding the citations of any particular paper is straightforward.

But how do you identify the set of publications that cite two specific papers?

The reason I am asking this is because I am trying to write a review article to resolve an issue in the literature. There are 2 papers that adopt opposite views regarding that issue. To check if any similar study to mine has been attempted before, I am trying to look for any papers that cited those 2 papers together. Any way to do this?

Each paper has hundreds of citations, so looking for common citation is not practical!

  • 4
    So you want to find, for whatever reason, all the papers that cite two particular papers? Well, if it's easy to find all the papers that cite one of those then do it for both and compare the results you get.
    – user64845
    Jul 8, 2017 at 23:32
  • @DSVA That would have been easy if each paper had a few citations. Unfortunately, each paper has hundreds of citations. So you want me to cross reference hundreds of citations? I am also curious, is that your down vote?
    – Moa
    Jul 8, 2017 at 23:44
  • 10
    no, that's something you want software to do. I just did it for two of my papers using Web of Science. I searched the citing papers for each of them, saved the data sets and compared the data sets with an "AND" function. Turns out only one common citation.
    – user64845
    Jul 9, 2017 at 0:08
  • 2
    LIBRARIAN ... Are you at an institution that has an academic library? They will have "reference librarians" on the staff ... consult them. The fact that we have computers nowadays does not mean you have to do everything on your own.
    – GEdgar
    Jul 9, 2017 at 13:45

7 Answers 7


My procedure was simple but worked for me. It is similar but different to that suggested by tripartio.

  • Look up article A in Google Scholar.
  • Click the link for articles that cite that article A.
  • Check "Search within citing articles"
  • Type the details of article B in the search bar (e.g. authors or title)
  • Explore the results

This is not as systematic as would be ideal, but should help to give a first-cut idea.


One can use the API of OpenCitations. Here is an example code in R based on two DOIs as visible in the form of https://w3id.org/oc/index/coci/api/v1/citations/[DOI]:


work1 <- jsonlite::fromJSON("https://opencitations.net/index/coci/api/v1/citations/10.1017/s0020818313000337")

work2 <- jsonlite::fromJSON("https://opencitations.net/index/coci/api/v1/citations/10.1177/1354066106067346")

citingworks <- intersect(work1$citing, work2$citing)

Then, citingworks lists 32 DOIs that have cited both work1 and work2:

> citingworks
 [1] "10.1017/9781108644082"                 "10.1017/9781108644082.001"            
 [3] "10.1017/9781108644082.002"             "10.1017/9781108644082.003"            
 [5] "10.1017/9781108644082.004"             "10.1017/9781108644082.005"            
 [7] "10.1017/9781108644082.006"             "10.1017/9781108644082.007"            
 [9] "10.1017/9781108644082.008"             "10.1017/9781108644082.009"            
[11] "10.1017/9781108644082.010"             "10.1177/1354066119889401"             
[13] "10.1093/jogss/ogy021"                  "10.31338/uw.9788323542988"            
[15] "10.1080/13533312.2020.1753513"         "10.1080/13569775.2020.1795372"        
[17] "10.1007/978-3-030-51521-8_1"           "10.1007/978-3-030-51521-8_2"          
[19] "10.1080/13600826.2020.1828298"         "10.1057/s41268-018-0147-z"            
[21] "10.1146/annurev-polisci-040711-135425" "10.1111/pops.12616"                   
[23] "10.1093/isq/sqz055"                    "10.1093/isr/viy006"                   
[25] "10.1093/isr/viz002"                    "10.1017/s0260210516000176"            
[27] "10.1017/s026021051600019x"             "10.3384/cu.2000.1525.1572479"         
[29] "10.1177/1354066117745365"              "10.1163/24056006-12340008"            
[31] "10.1177/0010836716653161"              "10.1080/09662839.2018.1497985"   

But note that OpenCitation's data sample is CrossRef, which is not the same as Google Scholar.


I haven't done this myself, so I can't give specific details, but here's a general algorithm:

  • Look up Article A in Google Scholar. Click the link for articles that cite that article. Extract all the results as a list of articles. (This is where I can't give details, since I haven't done it myself.)
  • Do the same thing for Article B.
  • Compare the two lists to identify common articles.
  • Indeed, this could work. Library software can check for duplicate references (super easy in Endnote) and could thus simplify step 3.
    – Emilie
    Aug 8, 2017 at 12:52

For biomedical publications you can use Europe PMC citation network (I work for this database). Here is an example of a search to find a publication that cites two particular papers: https://europepmc.org/search?query=CITES%3A24240771_med%20AND%20CITES%3A24036476_med. You can also do that programmatically (https://europepmc.org/RestfulWebService#cites)


I came across Inciteful recently.
Its literature connector enables searching link between two papers.

How are the links made between papers?
A link is established through citations. Two papers are linked if either one cites the other. So starting from the seed paper we recursively search through all the papers that are cited by the seed paper or that which cite the seed paper.

How many hops will it search?
The largest number of hops right now is six ...


This can be done with reasonably high accuracy using Scopus and it is much easier than the other methods suggested here. Just do an advanced search for

"title of paper 1" AND "title of paper 2"

The idea is that publications that cite the two papers will have their titles listed in their references sections.

This might not give completely accurate results, because:

  • It will fail if a journal does not give the title of the publication in the references list (I think Nature just gives journal, volume, and page numbers).
  • It will fail if one of the titles is not distinct enough and appears by coincidence in the main text of a publication that does not cite it.

You might be able to get round these problems by including the author names or page numbers and doing a more complicated search. See https://www.scopus.com/search/form.uri?display=advanced.

Of course you need access to Scopus and your institution might not have this. But something similar might work with Google Scholar.


Using OpenCitation's API in Python would look like this:

import requests
import pandas as pd
import numpy as np

link1 = "https://opencitations.net/index/coci/api/v1/citations/10.1017/s0020818313000337"
work1 = requests.get(link1).json()
df1 = pd.DataFrame.from_dict(work1)
link2 = "https://opencitations.net/index/coci/api/v1/citations/10.1177/1354066106067346"
work2 = requests.get(link2).json()
df2 = pd.DataFrame.from_dict(work2)

print(np.intersect1d(df1['citing'].unique(), df2['citing'].unique()))

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .