Zotero is an incredible free and open-sourced citation manager for research papers. Among its great features, you can link your Zotero account to Overleaf to automatically export your libraries to your new Overleaf project in a bibtex format. Morever, you can also create private or public groups for Zotero that can be shared with other users; this is perfect for collaborative papers.
Unfortunately, after linking your Zotero account with Overleaf, the simple add files “From Zotero” will fetch all libraries, including your personal libraries. At the moment, there’s no easy option to filter to a single group. Fortunately, a community user called Christian shared how to import a public group to Overleaf through the Zotero API.
Moreover, this solution will only work for public groups. In order to import from a private group, you will need to use a private key (which can be specified in the URL string).
First, to find your group number, you can visit zotero.org/groups and click on the group you want:
Then, you can find your group number in the address:
Next, to generate a private key, you need to access zotero.org/settings/keys and click on “Create new private key”:
Name the key for future reference, e.g. give it the same name as your library. Then, you can check “Per Group Permissions”, and select “Read Only” for the group(s) you want to export to Zotero. For everything else, the permission should be left to “None”.
Once you pressed “Save Key”, it will generate an API key. Make sure to save that somewhere safe, just like you would do with a password. This is because whoever has access to this key can access the content of your private library.
In the final step, you use the following URL by replacing
<group> with your group number and
<key> with your new API key:
Now, inside your overleaf, project, click on the “New File”, select “From External URL” tab and add the URL you formatted above. Give a name to your file, which should end with
If everything worked correctly here, you should see your references from that group, which can be synced when you refresh it: