bibdoiadd [-c config_file] [-o output] bib_file


-c config_file

Configuration file. If this file is absent, some defaults are used. See below for its format.

-o output

Output file. If this option is not used, the name for the output file is formed by adding \*(C`_doi\*(C' to the input file


The script reads a BibTeX file. It checks whether the entries have DOIs. If now, tries to contact to get the corresponding \s-1DOI\s0. The result is a BibTeX file with the fields \*(C`doi=...\*(C' added.

The name of the output file is either set by the -o option or is derived by adding the suffix \*(C`_doi\*(C' to the output file.

There are two options for making queries with Crossref: free account and paid membership. In the first case you still must register with Crossref and are limited to a small number of queries, see the agreement at \*(C`\*(C'. In the second case you have a username and password, and can use them for automatic queries. I am not sure whether the use of this script is allowed for the free account holders. Anyway if you try to add \s-1DOI\s0 to a large number of entries, you should register as a paid member.


The configuration file is mostly self-explanatory: it has comments (starting with \*(C`#\*(C') and assginments in the form

   $field = value ;

The important parameters are $mode ('free' or 'paid', $email (for free users) and $username & $password for paid members.


bibdoiadd -c bibdoiadd.cfg citations.bib > result.bib bibdoiadd -c bibdoiadd.cfg citations.bib -o result.bib


Boris Veytsman


Copyright (C) 2014 Boris Veytsman

This is free software. You may redistribute copies of it under the terms of the \s-1GNU\s0 General Public License <>. There is \s-1NO\s0 \s-1WARRANTY\s0, to the extent permitted by law.