A digital object identifier (DOI) is a globally unique string that identifies an electronic document (for example, a PDF of an academic article). It essentially provides a method for creating a permalink to a document (for example, http://dx.doi.org/10.1145/146585.146609).
Is there a web service (or any other system) to get the metadata (preferably in BibTeX form) of a document from a given DOI?
Edited to add some expository information.
Take a look at how these guys implemented it: www.doi2bib.org.
What I did in one of my projects:
url
request structure:http://www.doi2bib.org/doi2bib
+?id=
+{your doi here}
.API
to get the data (e.g. http://www.doi2bib.org/doi2bib?id=10.1016%2Fj.actpsy.2016.09.007) and the response is:@article{Leinen_2016, doi = {10.1016/j.actpsy.2016.09.007}, url = {http://dx.doi.org/10.1016/j.actpsy.2016.09.007}, year = 2016, month = {nov}, publisher = {Elsevier {BV}}, volume = {171}, pages = {36--46}, author = {Peter Leinen and Stefan Panzer and Charles H. Shea}, title = {Hemispheric asymmetries of a motor memory in a recognition test after learning a movement sequence}, journal = {Acta Psychologica} }
This helped me to get what I needed done. However, the nicest way would be to take a look at their GitHub repository and try to build your own.
Hope it helps!
Section 5.4.1 Content Negotiation of the DOI Handbook documents states, "Content negotiation is being implemented by DOI Registration Agencies for their DOI names, specifically to offer value-added metadata representations for users." According to Section 4 Supported Content Types of the DOI Content Negotiation documentation for http://crosscite.org, "Currently three DOI registration agencies have implemented content negotation for their DOIs: CrossRef, DataCite and mEDRA." The list of supported formats (which depends on the registration agency) includes both BibTeX via
Accept: application/x-bibtex
(this is the approach used by http://doi2bib.org) and formatted bibliography entry viaAccept: text/bibliography
(this is the approach suggested by @anumi above). When using the latter header, you must specify thestyle=bibtex
media type parameter.The two relevant mimetypes provide slightly different representations. A request to
GET http://dx.doi.org/10.1038/nrd842
withAccept: application/x-bibtex
yields the responseand with
Accept: text/bibliography; style=bibtex
curl -LH "Accept: text/bibliography; style=bibtex" http://dx.doi.org/10.1038/nrd842
CrossRef has an API, which you can use with an API key that can be obtained free of charge from http://www.crossref.org/requestaccount/.