Many funding agencies require a list of co-authors in the past n years. Is there an easier way to do this than to find all of my papers and copy and paste the names and institutions?

  • 10
    Hmmm. Lucky is he who has so many papers that this isn't an easy manual task.
    – Buffy
    Jul 12, 2019 at 1:00
  • I don't know if the output has a form that's easy to work with, but you can probably use the suggested databases in the answers to this question while limiting the search to the appropriate years.
    – Anyon
    Jul 12, 2019 at 1:55
  • 3
    It's useful to continuously update a spreadsheet with this information, with the date of publication of the last paper that you cowrote with each author. Simply add new coauthors to the spreadsheet (and update any coauthors that are already in the table.) When you need to construct a list of collaborators in the lsat n years, then sort the spreadsheet to cover those years. Jul 12, 2019 at 2:51
  • Many abstract indexing services can gather this info for you. This tend to fairly field specific (e.g. ADS in Astronomy of inSpire in HEP).
    – TimRias
    Jul 12, 2019 at 11:58
  • 1
    There are no solutions for which learning the necessary databasing and text processing skills necessary to do this that would be faster than doing it manually. Be careful about wearing out your mouse ;-) Jul 12, 2019 at 12:22

2 Answers 2


In combination with the answer by @jeffE above - keeping a spreadsheet has been handy, necessary and practical, I found a bit of R code that can query a list of publications and then a list of co-authors for each publication.


my_scholar_id <- ('XYZDPDQ')
pubs <- get_publications(my_scholar_id) 

# n_deep means only get my co-authors, not the co-authors of my co-authors
coauthor_network <- get_coauthors(my_scholar_id, n_coauthors = 1000, n_deep = 1)

# may need to manually filter out conferences that don't count 
coauthors2018 <- pubs %>% 
  filter(year >=2018) %>% 
  rowwise() %>% 
  summarise(authors = get_complete_authors(my_scholar_id, pubid,initials = FALSE))

coauthors <- data.frame(authors = strsplit(coauthors2018$authors, split = ','))

As with most other administrative data, it's far easier to maintain this information than to rebuild it from scratch every time you need it.

Maintain a spreadsheet with a complete list of your collaborators, including name, affiliation, ORCID, contact info, and most recent collaboration date for each one. Keep this spreadsheet in the same directory where you maintain your CV.

If you're lucky enough to have lots of collaborators already, setting up the initial spreadsheet will take significant time. Better to invest that time only once.

Every time you submit a paper or grant proposal, spend 5–10 minutes adding any new collaborators and updating your information for collaborators already listed.

Each time you need to submit a list of conflicts, extract the collaborators recent enough to create a conflict, in the precise format the agency requires. Different agencies define conflicts differently, so if you plan to submit proposals to more than one agency, I don't recommend removing anyone ever.

If your agency is like NSF, it will require a list of names and current affiliations of your recent collaborators. So every time you submit a proposal, you need to double-check that everyone's listed affiliation is current. A list of affiliations at the time of your collaboration, no matter how you obtain it, is not sufficient. People move; your conflicts follow them. (People also occasionally change names, but that's must less common.)

You must log in to answer this question.

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