DataCite Content Negotiation

What is DataCite Content Negotiation?

DataCite content negotiation allows you to retrieve metadata for DataCite DOIs in different formats. To retrieve metadata for DOIs registered by DataCite and other DOI registration agencies, see the Crosscite documentation.


Custom content types are no longer supported since January 1st, 2020

Registration of custom content types has been retired on October 1st, 2019 from the content negotiation via and on January 1st, 2020 from content negotiation via All requests for unknown content types will then be forwarded to the URL registered for the DOI in the handle system. The media API will continue to support registration and retrieval of content with custom content types.

More information in this blog post

It can be used by an HTTP client by configuring its HTTP Accept headers, or directly through a browser, constructing a URL.


Citation Formatter

The DataCite Citation Formatter is one important example of what can be done with DOI content negotiation. If you want more information, please visit DataCite Citation Formatter Documentation.

Who can use DataCite Content Negotiation?

DataCite content negotiation is open to the whole community and does not require authentication. It is designed to provide direct access to all DataCite DOIs, simplify integrations and avoid format conversions.

How does the DataCite Content Negotiation work?

The DOI proxy at will normally redirect a user to the resource location URL of a DOI. For example, the DOI "10.5284/1015681" redirects to a landing page describing the dataset, "Excavation of a Romano-British Cemetery...". Content negotiated requests to that ask for a content type which isn't "text/html" will be redirected to the DataCite content negotiation service.

GET "Accept: text/html"


       Repository landing page

Normal browser requests or explicit requests for text/html redirect to the content's landing page.

GET "Accept: application/csl+json"
       DataCite content negotiation service

Requests for a data type redirect to a registration agency's metadata service.

Content Negotiation

Making a content negotiated request requires the use of the Accept HTTP header. Content types that are acceptable to the client (those that it knows how to parse), each with an optional "quality" value indicating its relative suitability. For example, a client that wishes to receive citeproc JSON if it is available, but which can also handle BibTeX if citeproc JSON is unavailable, would make a request with an Accept header listing both "application/citeproc+json" and "application/x-bibtex":

$ curl -LH "Accept: application/x-bibtex;q=0.5, application/vnd.citationstyles.csl+json;q=1.0"

This request favours citeproc JSON but will accept RDF XML if citeproc is unavailable. The q values are optional. The request could have been written without them. The order of content types then becomes important; more suitable content types should be placed at the front of the Accept header.

$ curl -LH "Accept: application/vnd.citationstyles.csl+json, application/rdf+xml"

DataCite supports different response codes, listed below. If multiple content types specified by the client are supported by a DOI then the content type with the highest "q" value (or, if no "q" values are specified, the one that appears first in the "accept" header) will be returned.

200The request was OK.
204The request was OK but there was no metadata available.
404The DOI requested doesn't exist.

Link-based Content Type Requests

DataCite supports link-based content type requests. This method can be used with a regular web browser. In order to get a specific format please construct a URL following this pattern:


Direct requests to the DataCite content negotiation service via only supports DataCite DOIs

Extra parameters, e.g. when using the text/x-bibliography content type, can be included via query parameters, e.g.

curl ""

This method allows DataCite data centres to link additional metadata using custom URLs, still using the primary URL for the DOI to point to the landing page of a data set.

Supported Content Types

DataCite supports a number of metadata content types:

FormatContent Type
RDF XMLapplication/rdf+xml
RDF Turtletext/turtle
Citeproc JSONapplication/vnd.citationstyles.csl+json in JSON-LDapplication/ld+json
Formatted text citationtext/x-bibliography
DataCite XMLapplication/vnd.datacite.datacite+xml
DataCite JSONapplication/vnd.datacite.datacite+json


Would you like to know more?

If you have any questions, requests or ideas please contact us!