DataCite Support

 

Version History

  • v.1: June 25, 2016, first draft.
  • v.1.1: October 10, 2016, follow JSONAPI spec for side-loading associations
  • v.1.2: December 9, 2017, follow JSONAPI spec for pagination

Overview

The DataCite REST API returns information about DataCite content. The API is generally RESTFUL and returns results in JSON. It follows the JSONAPI specification. The mime-type for API results is application/vnd.api+json. There are two general types of results:

  • Singletons
  • Lists

Singletons

Singletons are single results. Retrieving metadata for a specific identifier (e.g. DOI, ORCID) typically returns a singleton result.

Lists

Lists results can contain multiple entries. Searching or filtering typically returns a list result. A list has three parts:

  • meta, which includes information about the query, e.g. number of results returned.
  • data, which will contain the items matching the query or filter.
  • included, which will contain side-loaded associations, via the ?include=x parameter.

Major resource components supported by the DataCite API are (in alphabetical order):

These can be used alone like this

Resource Description
/data-centers returns a list of all DataCite data centers
/members returns a list of all DataCite members
/works returns a list of all works (datasets, text documents, etc.), 25 per page

Resource components and identifiers

Resource components can be used in conjunction with identifiers to retrieve the metadata for that identifier.

Resource Description
/members/{member-id} returns metadata for a DataCite member
/data-centers/{data-center-id} returns metadata for a DataCite data center
/works/{doi} returns metadata for the specified DataCite DOI.

Notes on dates

Note that dates in filters should always be of the form YYYY-MM-DD, YYYY-MM or YYYY. Also note that the date published in DataCite metadata is always expressed as YYYY (the publicationYear field).

Page[size]

Normally, results are returned 25 at a time. You can control the number of results returns by using the page[size] parameter. To limit results to 5, for example, you could do the following:

# GET /works?query=
$ curl https://api.datacite.org/works?query=allen+renear&page[size]=5

If you would just like to get the summary of the results, you can set the page[size] to 1.

# GET /works?query=
$ curl https://api.datacite.org/works?query=allen+renear&page[size]=1

The maximum page[size] you can ask for in one query is 1000.

Page[number]

The number of returned items is controlled by the page[size] parameter, but you can select the page of the result list by using the page[number] parameter. So, for example, to select the second set of 5 results (i.e. results 6 through 10), you would do the following:

# GET /works?query=
$ curl https://api.datacite.org/works?query=allen+renear&page[size]=5&page[number]=2

Includes

To sideload associations use the include parameter, for example:

# GET /works?query=
$ curl https://api.datacite.org/works?query=climate&include=data-center,resource-type

Sideload multiple associations by providing them in a comma-separated list.

Notes on owner prefixes

The prefix of a DataCite DOI does NOT indicate who currently owns the DOI.

DataCite also has data-center_id (datacentre_symbol in the DataCite metadata) for depositing organisations. A single data center may control multiple owner prefixes, which in turn may control a number of DOIs. When looking at works published by a certain organisation, data_center_ids and the data center routes should be used.

Queries support a subset of DisMax, so, for example, you can refine queries as follows.

Works that include "renear" but not "ontologies":

GET /works?query=
$ curl https://api.datacite.org/works?query=renear+-ontologies

Sorting

Results from a list response can be sorted by applying the sort and order parameters. Order sets the result ordering, either asc or desc. Sort sets the field by which results will be sorted. Possible values are:

Sort value Description
score Sort by relevance score
updated Sort by date of most recent change to metadata
deposited Sort by time of most recent deposit
published Sort by publication date

An example that sorts results in order of publication, beginning with the least recent:

GET /works?query=
$ curl https://api.datacite.org/works?query=josiah+carberry&sort=published&order=asc

Facet Counts

Facet counts are returned via the meta object. Facet counts give counts per field value for an entire result set. The following facet counts are returned:

Resource Facet counts
/data centers total, members
/works total, data-centers, resource-types, schema-versions, sources, years

All other resources return only total in the meta object.

Filter Names

Filters allow you to narrow queries. All filter results are lists. The following filters are supported:

Filter Possible values Description
member-id {member-id} metadata associated with a specific DataCite member
data-center-id {data-center-id} metadata associated with a specific DataCite data center
resource-id {resource-type-id} metadata for a specific resourceTypeGeneral
source-id {source-id} metadata associated with a specific source
relation-type-id {relation-type-id} metadata associated with a specific relation type
from-created-date {date} metadata where deposited date is since (inclusive) {date}
until-created-date {date} metadata where deposited date is before (inclusive) {date}
from-update-date {date} metadata where updated date is since (inclusive) {date}
until-update-date {date} metadata where updated date is before (inclusive) {date}
year {year} publication year of the resource {year}

Includes

To sideload associations (as specified in the JSONAPI documentation) use the include parameter, for example:

# GET /works?query=
$ curl https://api.datacite.org/works?query=climate&include=data-center,resource-type

Sideload multiple associations by providing them in a comma-separated list. The following resources can be sideloaded:

Resource Resources that can be included
/data-centers member
/works data-center, member, resource-type

When an error occurs, the API will return a JSONAPI error object, for example

{
  "errors": [
    {
      "status": "422",
      "title":  "Invalid Attribute"
    }
  ]
}

Further Details

Review or github repository for further details:
https://github.com/datacite/spinone

 
 
 
Suggest Edits

List Works

Returns a list of works (datasets, text documents, etc.) with associated metadata.

 
gethttps://api.datacite.org/works

Query Params

page[size]
int32
page[number]
int32
sort
string

.can be deposited, published, updated or score

order
string

can be asc or desc

include
string

comma-separated list from data-center, member and resource-type

sample
int32

A random sample from the query results

sample-group
string

One of client, data-center, provider or resource-type

 
curl https://api.datacite.org/works
A binary file was returned

You couldn't be authenticated

{
  "data": [
    {
      "id": "https://doi.org/10.15468/DL.XALEJ0",
      "type": "works",
      "attributes": {
        "doi": "10.15468/DL.XALEJ0",
        "url": null,
        "author": [
          {
            "literal": "Occdownload Gbif.Org"
          }
        ],
        "title": "GBIF Occurrence Download",
        "container-title": "The Global Biodiversity Information Facility",
        "description": "A dataset containing 61 species occurrences available in GBIF matching the query: TaxonKey: Abarema racemiflora (Donn.Sm.) Barneby & J.W.Grimes. The dataset includes 61 records from 13 constituent datasets: \n 1 records from IAC - Herbário do Instituto Agronômico de Campinas. \n 13 records from Plantae of Costa Rica (INBio). \n 20 records from Tropicos Specimen Data. \n 1 records from Natural History Museum (London) Collection Specimens. \n 2 records from Natural History Museum, Vienna - Herbarium W. \n 6 records from herbario. \n 3 records from Harvard University Herbaria. \n 1 records from Field Museum of Natural History (Botany)  Seed Plant Collection. \n 3 records from The vascular plants collection (P) at the Herbarium of the Muséum national d'Histoire Naturelle (MNHN - Paris). \n 2 records from Royal Botanic Gardens, Kew - Herbarium Specimens. \n 6 records from The New York Botanical Garden Herbarium (NY) - Vascular Plant Collection. \n 1 records from Gothenburg Herbarium - General (GBIF:IH:GB:Herbarium). \n 2 records from Geneva Herbarium – General Collection (G). Data from some individual datasets included in this download may be licensed under less restrictive terms.",
        "resource-type-subtype": null,
        "publisher-id": "dk.gbif",
        "member-id": "dk",
        "registration-agency-id": "datacite",
        "resource-type-id": "dataset",
        "work-type-id": "dataset",
        "version": null,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "schema-version": "3",
        "results": [],
        "published": "2017",
        "deposited": "2017-01-04T01:57:04Z",
        "updated": "2017-01-04T01:57:04Z",
        "media": null,
        "xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pgo8cmVzb3VyY2UgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMyBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC0zL21ldGFkYXRhLnhzZCIgeG1sbnM9Imh0dHA6Ly9kYXRhY2l0ZS5vcmcvc2NoZW1hL2tlcm5lbC0zIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KICAgIDxpZGVudGlmaWVyIGlkZW50aWZpZXJUeXBlPSJET0kiPjEwLjE1NDY4L2RsLnhhbGVqMDwvaWRlbnRpZmllcj4KICAgIDxjcmVhdG9ycz4KICAgICAgICA8Y3JlYXRvcj4KICAgICAgICAgICAgPGNyZWF0b3JOYW1lPm9jY2Rvd25sb2FkIGdiaWYub3JnPC9jcmVhdG9yTmFtZT4KICAgICAgICA8L2NyZWF0b3I+CiAgICA8L2NyZWF0b3JzPgogICAgPHRpdGxlcz4KICAgICAgICA8dGl0bGU+R0JJRiBPY2N1cnJlbmNlIERvd25sb2FkPC90aXRsZT4KICAgIDwvdGl0bGVzPgogICAgPHB1Ymxpc2hlcj5UaGUgR2xvYmFsIEJpb2RpdmVyc2l0eSBJbmZvcm1hdGlvbiBGYWNpbGl0eTwvcHVibGlzaGVyPgogICAgPHB1YmxpY2F0aW9uWWVhcj4yMDE3PC9wdWJsaWNhdGlvblllYXI+CiAgICA8c3ViamVjdHM+CiAgICAgICAgPHN1YmplY3QgeG1sOmxhbmc9ImVuZyI+R0JJRjwvc3ViamVjdD4KICAgICAgICA8c3ViamVjdCB4bWw6bGFuZz0iZW5nIj5iaW9kaXZlcnNpdHk8L3N1YmplY3Q+CiAgICAgICAgPHN1YmplY3QgeG1sOmxhbmc9ImVuZyI+c3BlY2llcyBvY2N1cnJlbmNlczwvc3ViamVjdD4KICAgIDwvc3ViamVjdHM+CiAgICA8ZGF0ZXM+CiAgICAgICAgPGRhdGUgZGF0ZVR5cGU9IkNyZWF0ZWQiPjIwMTctMDEtMDQ8L2RhdGU+CiAgICAgICAgPGRhdGUgZGF0ZVR5cGU9IlVwZGF0ZWQiPjIwMTctMDEtMDQ8L2RhdGU+CiAgICA8L2RhdGVzPgogICAgPHJlc291cmNlVHlwZSByZXNvdXJjZVR5cGVHZW5lcmFsPSJEYXRhc2V0Ii8+CiAgICA8YWx0ZXJuYXRlSWRlbnRpZmllcnM+CiAgICAgICAgPGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9IkdCSUYiPjAwNDY5MTAtMTYwOTEwMTUwODUyMDkxPC9hbHRlcm5hdGVJZGVudGlmaWVyPgogICAgPC9hbHRlcm5hdGVJZGVudGlmaWVycz4KICAgIDxyZWxhdGVkSWRlbnRpZmllcnM+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjE1NDY4L3c0OHBpaTwvcmVsYXRlZElkZW50aWZpZXI+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjE1NDY4L3Rnbm84YTwvcmVsYXRlZElkZW50aWZpZXI+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjE1NDY4L2hqYTY5ZjwvcmVsYXRlZElkZW50aWZpZXI+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjU1MTkvMDAwMjk2NTwvcmVsYXRlZElkZW50aWZpZXI+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjE1NDY4LzVzbDdzaDwvcmVsYXRlZElkZW50aWZpZXI+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjE1NDY4L3lodmJqODwvcmVsYXRlZElkZW50aWZpZXI+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjE1NDY4L28zcHZuaDwvcmVsYXRlZElkZW50aWZpZXI+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjE1NDY4L254bnF6ZjwvcmVsYXRlZElkZW50aWZpZXI+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjE1NDY4L25jNnJ4eTwvcmVsYXRlZElkZW50aWZpZXI+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjE1NDY4L2x5NjBieDwvcmVsYXRlZElkZW50aWZpZXI+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjE1NDY4LzZlOG5qZTwvcmVsYXRlZElkZW50aWZpZXI+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjE1NDY4L2Fma2ZwaTwvcmVsYXRlZElkZW50aWZpZXI+CiAgICAgICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjE1NDY4L3J2amR1MTwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8L3JlbGF0ZWRJZGVudGlmaWVycz4KICAgIDxzaXplcz4KICAgICAgICA8c2l6ZT42NDQ5PC9zaXplPgogICAgPC9zaXplcz4KICAgIDxmb3JtYXRzPgogICAgICAgIDxmb3JtYXQ+RGFyd2luIENvcmUgQXJjaGl2ZTwvZm9ybWF0PgogICAgPC9mb3JtYXRzPgogICAgPHJpZ2h0c0xpc3Q+CiAgICAgICAgPHJpZ2h0cyByaWdodHNVUkk9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzQuMC9sZWdhbGNvZGUiPkNyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24gKENDLUJZKSA0LjA8L3JpZ2h0cz4KICAgIDwvcmlnaHRzTGlzdD4KICAgIDxkZXNjcmlwdGlvbnM+CiAgICAgICAgPGRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uVHlwZT0iQWJzdHJhY3QiIHhtbDpsYW5nPSJlbmciPkEgZGF0YXNldCBjb250YWluaW5nIDYxIHNwZWNpZXMgb2NjdXJyZW5jZXMgYXZhaWxhYmxlIGluIEdCSUYgbWF0Y2hpbmcgdGhlIHF1ZXJ5OiBUYXhvbktleTogQWJhcmVtYSByYWNlbWlmbG9yYSAoRG9ubi5TbS4pIEJhcm5lYnkgJmFtcDsgSi5XLkdyaW1lcy4gVGhlIGRhdGFzZXQgaW5jbHVkZXMgNjEgcmVjb3JkcyBmcm9tIDEzIGNvbnN0aXR1ZW50IGRhdGFzZXRzOiAKIDEgcmVjb3JkcyBmcm9tIElBQyAtIEhlcmLDoXJpbyBkbyBJbnN0aXR1dG8gQWdyb27DtG1pY28gZGUgQ2FtcGluYXMuIAogMTMgcmVjb3JkcyBmcm9tIFBsYW50YWUgb2YgQ29zdGEgUmljYSAoSU5CaW8pLiAKIDIwIHJlY29yZHMgZnJvbSBUcm9waWNvcyBTcGVjaW1lbiBEYXRhLiAKIDEgcmVjb3JkcyBmcm9tIE5hdHVyYWwgSGlzdG9yeSBNdXNldW0gKExvbmRvbikgQ29sbGVjdGlvbiBTcGVjaW1lbnMuIAogMiByZWNvcmRzIGZyb20gTmF0dXJhbCBIaXN0b3J5IE11c2V1bSwgVmllbm5hIC0gSGVyYmFyaXVtIFcuIAogNiByZWNvcmRzIGZyb20gaGVyYmFyaW8uIAogMyByZWNvcmRzIGZyb20gSGFydmFyZCBVbml2ZXJzaXR5IEhlcmJhcmlhLiAKIDEgcmVjb3JkcyBmcm9tIEZpZWxkIE11c2V1bSBvZiBOYXR1cmFsIEhpc3RvcnkgKEJvdGFueSkgIFNlZWQgUGxhbnQgQ29sbGVjdGlvbi4gCiAzIHJlY29yZHMgZnJvbSBUaGUgdmFzY3VsYXIgcGxhbnRzIGNvbGxlY3Rpb24gKFApIGF0IHRoZSBIZXJiYXJpdW0gb2YgdGhlIE11c8OpdW0gbmF0aW9uYWwgZCdIaXN0b2lyZSBOYXR1cmVsbGUgKE1OSE4gLSBQYXJpcykuIAogMiByZWNvcmRzIGZyb20gUm95YWwgQm90YW5pYyBHYXJkZW5zLCBLZXcgLSBIZXJiYXJpdW0gU3BlY2ltZW5zLiAKIDYgcmVjb3JkcyBmcm9tIFRoZSBOZXcgWW9yayBCb3RhbmljYWwgR2FyZGVuIEhlcmJhcml1bSAoTlkpIC0gVmFzY3VsYXIgUGxhbnQgQ29sbGVjdGlvbi4gCiAxIHJlY29yZHMgZnJvbSBHb3RoZW5idXJnIEhlcmJhcml1bSAtIEdlbmVyYWwgKEdCSUY6SUg6R0I6SGVyYmFyaXVtKS4gCiAyIHJlY29yZHMgZnJvbSBHZW5ldmEgSGVyYmFyaXVtIOKAkyBHZW5lcmFsIENvbGxlY3Rpb24gKEcpLiBEYXRhIGZyb20gc29tZSBpbmRpdmlkdWFsIGRhdGFzZXRzIGluY2x1ZGVkIGluIHRoaXMgZG93bmxvYWQgbWF5IGJlIGxpY2Vuc2VkIHVuZGVyIGxlc3MgcmVzdHJpY3RpdmUgdGVybXMuPC9kZXNjcmlwdGlvbj4KICAgIDwvZGVzY3JpcHRpb25zPgo8L3Jlc291cmNlPgo="
      },
      "relationships": {
        "publisher": {
          "meta": {}
        },
        "member": {
          "meta": {}
        },
        "registration-agency": {
          "meta": {}
        },
        "resource-type": {
          "meta": {}
        },
        "work-type": {
          "meta": {}
        }
      }
    },
    {
      "id": "https://doi.org/10.6084/M9.FIGSHARE.4007775.V3",
      "type": "works",
      "attributes": {
        "doi": "10.6084/M9.FIGSHARE.4007775.V3",
        "url": null,
        "author": [
          {
            "family": "Matthis",
            "given": "Jonathan"
          }
        ],
        "title": "Biomechanics Center of Mass Animations [VIDEO COLLECTION]",
        "container-title": "Figshare",
        "description": "Repository of a bunch of biomechanics gifs I made. <br><br>More information (including methods and analysis) at the following links: <br><br>Handstand - http://imgur.com/k9ryJq7<div><br></div><div>Balance beam - http://imgur.com/a/lbARg</div><div><br></div><div>Ballerina -http://imgur.com/a/kskuw</div><div><br></div><div>Hammer Throw - http://imgur.com/a/h1DPc<br><br><br>____________________________________<br>More info on me here - <a href=\"https://utexas.academia.edu/JonMatthis/Papers\" target=\"_blank\">https://utexas.academia.edu/JonMatthis/Papers</a></div><div><br></div>",
        "resource-type-subtype": "Media",
        "publisher-id": "figshare.ars",
        "member-id": "figshare",
        "registration-agency-id": "datacite",
        "resource-type-id": "audiovisual",
        "work-type-id": "motion-picture",
        "version": null,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "schema-version": "3",
        "results": [],
        "published": "2017",
        "deposited": "2017-01-04T01:56:40Z",
        "updated": "2017-01-04T01:56:40Z",
        "media": null,
        "xml": "PHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMyBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC0zL21ldGFkYXRhLnhzZCI+PGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNjA4NC9tOS5maWdzaGFyZS40MDA3Nzc1LnYzPC9pZGVudGlmaWVyPjxjcmVhdG9ycz48Y3JlYXRvcj48Y3JlYXRvck5hbWU+Sm9uYXRoYW4gTWF0dGhpczwvY3JlYXRvck5hbWU+PC9jcmVhdG9yPjwvY3JlYXRvcnM+PHRpdGxlcz48dGl0bGU+QmlvbWVjaGFuaWNzIENlbnRlciBvZiBNYXNzIEFuaW1hdGlvbnMgW1ZJREVPIENPTExFQ1RJT05dPC90aXRsZT48L3RpdGxlcz48ZGVzY3JpcHRpb25zPjxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9IkFic3RyYWN0Ij5SZXBvc2l0b3J5IG9mIGEgYnVuY2ggb2YgYmlvbWVjaGFuaWNzIGdpZnMgSSBtYWRlLsKgJmx0O2JyJmd0OyZsdDticiZndDtNb3JlIGluZm9ybWF0aW9uIChpbmNsdWRpbmcgbWV0aG9kcyBhbmQgYW5hbHlzaXMpIGF0IHRoZSBmb2xsb3dpbmcgbGlua3M6wqAmbHQ7YnImZ3Q7Jmx0O2JyJmd0O0hhbmRzdGFuZCAtIGh0dHA6Ly9pbWd1ci5jb20vazlyeUpxNyZsdDtkaXYmZ3Q7Jmx0O2JyJmd0OyZsdDsvZGl2Jmd0OyZsdDtkaXYmZ3Q7QmFsYW5jZSBiZWFtIC3CoGh0dHA6Ly9pbWd1ci5jb20vYS9sYkFSZyZsdDsvZGl2Jmd0OyZsdDtkaXYmZ3Q7Jmx0O2JyJmd0OyZsdDsvZGl2Jmd0OyZsdDtkaXYmZ3Q7QmFsbGVyaW5hIC1odHRwOi8vaW1ndXIuY29tL2Eva3NrdXcmbHQ7L2RpdiZndDsmbHQ7ZGl2Jmd0OyZsdDticiZndDsmbHQ7L2RpdiZndDsmbHQ7ZGl2Jmd0O0hhbW1lciBUaHJvdyAtwqBodHRwOi8vaW1ndXIuY29tL2EvaDFEUGMmbHQ7YnImZ3Q7Jmx0O2JyJmd0OyZsdDticiZndDtfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18mbHQ7YnImZ3Q7TW9yZSBpbmZvIG9uIG1lIGhlcmUgLcKgJmx0O2EgaHJlZj0iaHR0cHM6Ly91dGV4YXMuYWNhZGVtaWEuZWR1L0pvbk1hdHRoaXMvUGFwZXJzIiB0YXJnZXQ9Il9ibGFuayImZ3Q7aHR0cHM6Ly91dGV4YXMuYWNhZGVtaWEuZWR1L0pvbk1hdHRoaXMvUGFwZXJzJmx0Oy9hJmd0OyZsdDsvZGl2Jmd0OyZsdDtkaXYmZ3Q7Jmx0O2JyJmd0OyZsdDsvZGl2Jmd0OzwvZGVzY3JpcHRpb24+PC9kZXNjcmlwdGlvbnM+PHN1YmplY3RzPjxzdWJqZWN0IHNjaGVtZVVSST0iaHR0cDovL3d3dy5hYnMuZ292LmF1L2F1c3N0YXRzL2Fic0AubnNmLzAvNkJCNDI3QUI5Njk2QzIyNUNBMjU3NDE4MDAwNDQ2M0UiIHN1YmplY3RTY2hlbWU9IkZPUiI+MTEwNjAxIEJpb21lY2hhbmljczwvc3ViamVjdD48c3ViamVjdCBzY2hlbWVVUkk9Imh0dHA6Ly93d3cuYWJzLmdvdi5hdS9hdXNzdGF0cy9hYnNALm5zZi8wLzZCQjQyN0FCOTY5NkMyMjVDQTI1NzQxODAwMDQ0NjNFIiBzdWJqZWN0U2NoZW1lPSJGT1IiPjExMDYwMyBNb3RvciBDb250cm9sPC9zdWJqZWN0PjxzdWJqZWN0IHNjaGVtZVVSST0iaHR0cDovL3d3dy5hYnMuZ292LmF1L2F1c3N0YXRzL2Fic0AubnNmLzAvNkJCNDI3QUI5Njk2QzIyNUNBMjU3NDE4MDAwNDQ2M0UiIHN1YmplY3RTY2hlbWU9IkZPUiI+MTEwNjk5IEh1bWFuIE1vdmVtZW50IGFuZCBTcG9ydHMgU2NpZW5jZSBub3QgZWxzZXdoZXJlIGNsYXNzaWZpZWQ8L3N1YmplY3Q+PC9zdWJqZWN0cz48cHVibGlzaGVyPkZpZ3NoYXJlPC9wdWJsaXNoZXI+PHB1YmxpY2F0aW9uWWVhcj4yMDE3PC9wdWJsaWNhdGlvblllYXI+PGRhdGVzPjxkYXRlIGRhdGVUeXBlPSJDcmVhdGVkIj4yMDE3LTAxLTA0PC9kYXRlPjxkYXRlIGRhdGVUeXBlPSJVcGRhdGVkIj4yMDE3LTAxLTA0PC9kYXRlPjwvZGF0ZXM+PHJlc291cmNlVHlwZSByZXNvdXJjZVR5cGVHZW5lcmFsPSJBdWRpb3Zpc3VhbCI+TWVkaWE8L3Jlc291cmNlVHlwZT48c2l6ZXM+PHNpemU+NjcwMTY3NDQgQnl0ZXM8L3NpemU+PC9zaXplcz48cmVsYXRlZElkZW50aWZpZXJzPjxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJJc0lkZW50aWNhbFRvIj4xMC42MDg0L205LmZpZ3NoYXJlLjQwMDc3NzU8L3JlbGF0ZWRJZGVudGlmaWVyPjwvcmVsYXRlZElkZW50aWZpZXJzPjxyaWdodHNMaXN0PjxyaWdodHMgcmlnaHRzVVJJPSJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLyI+Q0MtMDwvcmlnaHRzPjwvcmlnaHRzTGlzdD48L3Jlc291cmNlPg=="
      },
      "relationships": {
        "publisher": {
          "meta": {}
        },
        "member": {
          "meta": {}
        },
        "registration-agency": {
          "meta": {}
        },
        "resource-type": {
          "meta": {}
        },
        "work-type": {
          "meta": {}
        }
      }
    },
    {
      "id": "https://doi.org/10.13140/RG.2.2.17768.88326",
      "type": "works",
      "attributes": {
        "doi": "10.13140/RG.2.2.17768.88326",
        "url": null,
        "author": [
          {
            "family": "Valenzuela-Rendón",
            "given": "Manuel"
          }
        ],
        "title": "vgGA2.0 (Octave/MATLAB)",
        "container-title": "Unpublished",
        "description": null,
        "resource-type-subtype": "Code",
        "publisher-id": "rg.rg",
        "member-id": "rg",
        "registration-agency-id": "datacite",
        "resource-type-id": "dataset",
        "work-type-id": "dataset",
        "version": null,
        "license": null,
        "schema-version": "4",
        "results": [],
        "published": "2017",
        "deposited": "2017-01-04T01:53:30Z",
        "updated": "2017-01-04T01:53:30Z",
        "media": null,
        "xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxyZXNvdXJjZSB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9kYXRhY2l0ZS5vcmcvc2NoZW1hL2tlcm5lbC00IGh0dHA6Ly9zY2hlbWEuZGF0YWNpdGUub3JnL21ldGEva2VybmVsLTQvbWV0YWRhdGEueHNkIiB4bWxucz0iaHR0cDovL2RhdGFjaXRlLm9yZy9zY2hlbWEva2VybmVsLTQiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPjxpZGVudGlmaWVyIGlkZW50aWZpZXJUeXBlPSJET0kiPjEwLjEzMTQwL1JHLjIuMi4xNzc2OC44ODMyNjwvaWRlbnRpZmllcj48Y3JlYXRvcnM+PGNyZWF0b3I+PGNyZWF0b3JOYW1lPk1hbnVlbCBWYWxlbnp1ZWxhLVJlbmTDs248L2NyZWF0b3JOYW1lPjwvY3JlYXRvcj48L2NyZWF0b3JzPjx0aXRsZXM+PHRpdGxlPnZnR0EyLjAgKE9jdGF2ZS9NQVRMQUIpPC90aXRsZT48L3RpdGxlcz48cHVibGlzaGVyPlVucHVibGlzaGVkPC9wdWJsaXNoZXI+PHB1YmxpY2F0aW9uWWVhcj4yMDE3PC9wdWJsaWNhdGlvblllYXI+PHJlc291cmNlVHlwZSByZXNvdXJjZVR5cGVHZW5lcmFsPSJEYXRhc2V0Ij5Db2RlPC9yZXNvdXJjZVR5cGU+PC9yZXNvdXJjZT4="
      },
      "relationships": {
        "publisher": {
          "meta": {}
        },
        "member": {
          "meta": {}
        },
        "registration-agency": {
          "meta": {}
        },
        "resource-type": {
          "meta": {}
        },
        "work-type": {
          "meta": {}
        }
      }
    }
  ],
  "meta": {
    "resource-types": [
      {
        "id": "dataset",
        "title": "Dataset",
        "count": 2923633
      },
      {
        "id": "text",
        "title": "Text",
        "count": 1588230
      },
      {
        "id": "other",
        "title": "Other",
        "count": 882665
      },
      {
        "id": "image",
        "title": "Image",
        "count": 833098
      },
      {
        "id": "collection",
        "title": "Collection",
        "count": 381883
      },
      {
        "id": "software",
        "title": "Software",
        "count": 20790
      },
      {
        "id": "audiovisual",
        "title": "Audiovisual",
        "count": 14110
      },
      {
        "id": "event",
        "title": "Event",
        "count": 6932
      },
      {
        "id": "physical-object",
        "title": "Physical object",
        "count": 6679
      },
      {
        "id": "film",
        "title": "Film",
        "count": 947
      },
      {
        "id": "model",
        "title": "Model",
        "count": 604
      },
      {
        "id": "interactive-resource",
        "title": "Interactive resource",
        "count": 407
      },
      {
        "id": "sound",
        "title": "Sound",
        "count": 344
      },
      {
        "id": "workflow",
        "title": "Workflow",
        "count": 252
      },
      {
        "id": "service",
        "title": "Service",
        "count": 29
      }
    ],
    "years": [
      {
        "id": "2016",
        "title": "2016",
        "count": 834677
      },
      {
        "id": "2015",
        "title": "2015",
        "count": 2080251
      },
      {
        "id": "2014",
        "title": "2014",
        "count": 973996
      },
      {
        "id": "2013",
        "title": "2013",
        "count": 353263
      },
      {
        "id": "2012",
        "title": "2012",
        "count": 232386
      },
      {
        "id": "2011",
        "title": "2011",
        "count": 353464
      },
      {
        "id": "2010",
        "title": "2010",
        "count": 159988
      },
      {
        "id": "2009",
        "title": "2009",
        "count": 144549
      },
      {
        "id": "2008",
        "title": "2008",
        "count": 138810
      },
      {
        "id": "2007",
        "title": "2007",
        "count": 170651
      },
      {
        "id": "2006",
        "title": "2006",
        "count": 155580
      },
      {
        "id": "2005",
        "title": "2005",
        "count": 168750
      },
      {
        "id": "2004",
        "title": "2004",
        "count": 86246
      },
      {
        "id": "2003",
        "title": "2003",
        "count": 80393
      },
      {
        "id": "2002",
        "title": "2002",
        "count": 52403
      }
    ],
    "publishers": [
      {
        "id": "cdl.dplanet",
        "title": "Data-Planet",
        "count": 867774
      },
      {
        "id": "bl.ccdc",
        "title": "The Cambridge Crystallographic Data Centre",
        "count": 639461
      },
      {
        "id": "figshare.ars",
        "title": "figshare Academic Research System",
        "count": 527635
      },
      {
        "id": "ethz.seals",
        "title": "E-Periodica",
        "count": 513892
      },
      {
        "id": "estdoi.bio",
        "title": "TÜ Loodusmuuseum",
        "count": 487449
      },
      {
        "id": "rg.rg",
        "title": "ResearchGate",
        "count": 428070
      },
      {
        "id": "gesis.die",
        "title": "Deutsches Institut für Erwachsenenbildung",
        "count": 373193
      },
      {
        "id": "ethz.epics-ba",
        "title": "E-Pics Bildarchiv",
        "count": 361242
      },
      {
        "id": "tib.pangaea",
        "title": "PANGAEA - Publishing Network for Geoscientific and Environmental Data",
        "count": 351387
      },
      {
        "id": "dk.gbif",
        "title": "Global Biodiversity Information Facility",
        "count": 243978
      },
      {
        "id": "cern.hepdata",
        "title": "HEPData.net",
        "count": 236059
      },
      {
        "id": "cisti.ubc",
        "title": "University of British Columbia",
        "count": 198206
      },
      {
        "id": "bl.imperial",
        "title": "Imperial College London",
        "count": 191300
      },
      {
        "id": "ands.centre72",
        "title": "PARADISEC",
        "count": 153467
      },
      {
        "id": "cern.zenodo",
        "title": "ZENODO - Research. Shared.",
        "count": 116167
      }
    ],
    "schema-versions": [
      {
        "id": "4",
        "title": "Schema 4",
        "count": 108228
      },
      {
        "id": "3",
        "title": "Schema 3",
        "count": 6662751
      },
      {
        "id": "2.2",
        "title": "Schema 2.2",
        "count": 1070998
      },
      {
        "id": "2.1",
        "title": "Schema 2.1",
        "count": 5700
      },
      {
        "id": "2.0",
        "title": "Schema 2.0",
        "count": 756
      }
    ],
    "total": 7848433,
    "sources": [],
    "relation-types": []
  }
}
{
  "errors": [
    {
      "status": "404",
      "title": "The page you are looking for doesn't exist."
    }
  ]
}
 
Suggest Edits

Get Work

Returns the metadata for the specified DOI

 
gethttps://api.datacite.org/works/doi

Path Params

doi
string
required
 
curl https://api.datacite.org/works/10.5438/0012
A binary file was returned

You couldn't be authenticated

{
  "errors": [
    {
      "status": "404",
      "title": "The page you are looking for doesn't exist."
    }
  ]
}
{
  "data": {
    "id": "https://doi.org/10.5438/0012",
    "type": "works",
    "attributes": {
      "doi": "10.5438/0012",
      "url": null,
      "author": [
        {
          "literal": "DataCite Metadata Working Group"
        }
      ],
      "title": "DataCite Metadata Schema Documentation for the Publication and Citation of Research Data v4.0",
      "container-title": "DataCite e.V.",
      "description": "1 Introduction\n1.1 The DataCite Consortium\n1.2 DataCite Community Participation\n1.3 The Metadata Schema\n1.4 Version 4.0 Update\n2 DataCite Metadata Properties\n2.1 Overview\n2.2 Citation\n2.3 DataCite Properties\n3 XML Example\n4 XML Schema\n5 Other DataCite Services\nAppendices\nAppendix 1: Controlled List Definitions\nAppendix 2: Earlier Version Update Notes",
      "resource-type-subtype": "Documentation",
      "publisher-id": "datacite.datacite",
      "member-id": "datacite",
      "registration-agency-id": "datacite",
      "resource-type-id": "text",
      "work-type-id": "report",
      "version": "4.0",
      "license": null,
      "schema-version": "4",
      "results": [],
      "published": "2016",
      "deposited": "2016-09-19T21:53:56Z",
      "updated": "2016-09-19T22:16:45Z",
      "media": null,
      "xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxyZXNvdXJjZSB4bWxucz0iaHR0cDovL2RhdGFjaXRlLm9yZy9zY2hlbWEva2VybmVsLTQiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL2RhdGFjaXRlLm9yZy9zY2hlbWEva2VybmVsLTQgaHR0cDovL3NjaGVtYS5kYXRhY2l0ZS5vcmcvbWV0YS9rZXJuZWwtNC9tZXRhZGF0YS54c2QiPg0KCTxpZGVudGlmaWVyIGlkZW50aWZpZXJUeXBlPSJET0kiPjEwLjU0MzgvMDAxMjwvaWRlbnRpZmllcj4NCgk8Y3JlYXRvcnM+DQoJCTxjcmVhdG9yPg0KCQkJPGNyZWF0b3JOYW1lPkRhdGFDaXRlIE1ldGFkYXRhIFdvcmtpbmcgR3JvdXA8L2NyZWF0b3JOYW1lPg0KCQk8L2NyZWF0b3I+DQoJPC9jcmVhdG9ycz4NCgk8dGl0bGVzPg0KCQk8dGl0bGU+RGF0YUNpdGUgTWV0YWRhdGEgU2NoZW1hIERvY3VtZW50YXRpb24gZm9yIHRoZSBQdWJsaWNhdGlvbiBhbmQgQ2l0YXRpb24gb2YgUmVzZWFyY2ggRGF0YSB2NC4wPC90aXRsZT4NCgk8L3RpdGxlcz4NCgk8cHVibGlzaGVyPkRhdGFDaXRlIGUuVi48L3B1Ymxpc2hlcj4NCgk8cHVibGljYXRpb25ZZWFyPjIwMTY8L3B1YmxpY2F0aW9uWWVhcj4NCgk8Y29udHJpYnV0b3JzPg0KCQk8Y29udHJpYnV0b3IgY29udHJpYnV0b3JUeXBlPSJQcm9qZWN0TGVhZGVyIj4NCgkJCTxjb250cmlidXRvck5hbWU+U3RhcnIsIEpvYW48L2NvbnRyaWJ1dG9yTmFtZT4NCgkJCTxnaXZlbk5hbWU+Sm9hbjwvZ2l2ZW5OYW1lPg0KCQkJPGZhbWlseU5hbWU+U3RhcnI8L2ZhbWlseU5hbWU+DQoJCQk8bmFtZUlkZW50aWZpZXIgbmFtZUlkZW50aWZpZXJTY2hlbWU9Ik9SQ0lEIiBzY2hlbWVVUkk9Imh0dHA6Ly9vcmNpZC5vcmciPjAwMDAtMDAwMi03Mjg1LTAyN1g8L25hbWVJZGVudGlmaWVyPg0KCQkJPGFmZmlsaWF0aW9uPkNhbGlmb3JuaWEgRGlnaXRhbCBMaWJyYXJ5PC9hZmZpbGlhdGlvbj4NCgkJPC9jb250cmlidXRvcj4NCgkJPGNvbnRyaWJ1dG9yIGNvbnRyaWJ1dG9yVHlwZT0iUHJvamVjdExlYWRlciI+DQoJCQk8Y29udHJpYnV0b3JOYW1lPlNtYWVsZSwgTWFkZWxlaW5lIGRlPC9jb250cmlidXRvck5hbWU+DQoJCQk8Z2l2ZW5OYW1lPk1hZGVsZWluZSBkZTwvZ2l2ZW5OYW1lPg0KCQkJPGZhbWlseU5hbWU+U21hZWxlPC9mYW1pbHlOYW1lPg0KCQkJPGFmZmlsaWF0aW9uPlRVIERlbGZ0PC9hZmZpbGlhdGlvbj4NCgkJPC9jb250cmlidXRvcj4NCgkJPGNvbnRyaWJ1dG9yIGNvbnRyaWJ1dG9yVHlwZT0iRWRpdG9yIj4NCgkJCTxjb250cmlidXRvck5hbWU+QXNodG9uLCBKYW48L2NvbnRyaWJ1dG9yTmFtZT4NCgkJCTxnaXZlbk5hbWU+SmFuPC9naXZlbk5hbWU+DQoJCQk8ZmFtaWx5TmFtZT5Bc2h0b248L2ZhbWlseU5hbWU+DQoJCQk8YWZmaWxpYXRpb24+QnJpdGlzaCBMaWJyYXJ5PC9hZmZpbGlhdGlvbj4NCgkJPC9jb250cmlidXRvcj4NCgkJPGNvbnRyaWJ1dG9yIGNvbnRyaWJ1dG9yVHlwZT0iRWRpdG9yIj4NCgkJCTxjb250cmlidXRvck5hbWU+QmFydG9uLCBBbXk8L2NvbnRyaWJ1dG9yTmFtZT4NCgkJCTxnaXZlbk5hbWU+QW15PC9naXZlbk5hbWU+DQoJCQk8ZmFtaWx5TmFtZT5CYXJ0b248L2ZhbWlseU5hbWU+DQoJCQk8YWZmaWxpYXRpb24+UHVyZHVlIFVuaXZlcnNpdHkgTGlicmFyeTwvYWZmaWxpYXRpb24+DQoJCTwvY29udHJpYnV0b3I+DQoJCTxjb250cmlidXRvciBjb250cmlidXRvclR5cGU9IkVkaXRvciI+DQoJCQk8Y29udHJpYnV0b3JOYW1lPkJyYWRmb3JkLCBUaW5hPC9jb250cmlidXRvck5hbWU+DQoJCQk8Z2l2ZW5OYW1lPlRpbmE8L2dpdmVuTmFtZT4NCgkJCTxmYW1pbHlOYW1lPkJyYWRmb3JkPC9mYW1pbHlOYW1lPg0KCQkJPGFmZmlsaWF0aW9uPk5SQy9DSVNUSTwvYWZmaWxpYXRpb24+DQoJCTwvY29udHJpYnV0b3I+DQoJCTxjb250cmlidXRvciBjb250cmlidXRvclR5cGU9IkVkaXRvciI+DQoJCQk8Y29udHJpYnV0b3JOYW1lPkNpb2xla+KAkEZpZ2llbCwgQW5uZTwvY29udHJpYnV0b3JOYW1lPg0KCQkJPGdpdmVuTmFtZT5Bbm5lPC9naXZlbk5hbWU+DQoJCQk8ZmFtaWx5TmFtZT5DaW9sZWstRmlnaWVsPC9mYW1pbHlOYW1lPg0KCQkJPGFmZmlsaWF0aW9uPkluaXN04oCQQ05SUzwvYWZmaWxpYXRpb24+DQoJCTwvY29udHJpYnV0b3I+DQoJCTxjb250cmlidXRvciBjb250cmlidXRvclR5cGU9IkVkaXRvciI+DQoJCQk8Y29udHJpYnV0b3JOYW1lPkRpZXRpa2VyLCBTdGVmYW5pZTwvY29udHJpYnV0b3JOYW1lPg0KCQkJPGdpdmVuTmFtZT5TdGVmYW5pZTwvZ2l2ZW5OYW1lPg0KCQkJPGZhbWlseU5hbWU+RGlldGlrZXI8L2ZhbWlseU5hbWU+DQoJCQk8YWZmaWxpYXRpb24+RVRIIFrDvHJpY2g8L2FmZmlsaWF0aW9uPg0KCQk8L2NvbnRyaWJ1dG9yPg0KCQk8Y29udHJpYnV0b3IgY29udHJpYnV0b3JUeXBlPSJFZGl0b3IiPg0KCQkJPGNvbnRyaWJ1dG9yTmFtZT5FbGxpb3R0LCBKYW5uZWFuPC9jb250cmlidXRvck5hbWU+DQoJCQk8Z2l2ZW5OYW1lPkphbm5lYW48L2dpdmVuTmFtZT4NCgkJCTxmYW1pbHlOYW1lPkVsbGlvdDwvZmFtaWx5TmFtZT4NCgkJCTxhZmZpbGlhdGlvbj5ET0UvT1NUSTwvYWZmaWxpYXRpb24+DQoJCTwvY29udHJpYnV0b3I+DQoJCTxjb250cmlidXRvciBjb250cmlidXRvclR5cGU9IkVkaXRvciI+DQoJCQk8Y29udHJpYnV0b3JOYW1lPkdlbmF0LCBCZXJyaXQ8L2NvbnRyaWJ1dG9yTmFtZT4NCgkJCTxnaXZlbk5hbWU+QmVycml0PC9naXZlbk5hbWU+DQoJCQk8ZmFtaWx5TmFtZT5HZW5hdDwvZmFtaWx5TmFtZT4NCgkJCTxhZmZpbGlhdGlvbj5USUI8L2FmZmlsaWF0aW9uPg0KCQk8L2NvbnRyaWJ1dG9yPg0KCQk8Y29udHJpYnV0b3IgY29udHJpYnV0b3JUeXBlPSJFZGl0b3IiPg0KCQkJPGNvbnRyaWJ1dG9yTmFtZT5IYXJ6ZW5ldHRlciwgS2Fyb2xpbmU8L2NvbnRyaWJ1dG9yTmFtZT4NCgkJCTxnaXZlbk5hbWU+S2Fyb2xpbmU8L2dpdmVuTmFtZT4NCgkJCTxmYW1pbHlOYW1lPkhhcnplbmV0dGVyPC9mYW1pbHlOYW1lPg0KCQkJPGFmZmlsaWF0aW9uPkdFU0lTPC9hZmZpbGlhdGlvbj4NCgkJPC9jb250cmlidXRvcj4NCgkJPGNvbnRyaWJ1dG9yIGNvbnRyaWJ1dG9yVHlwZT0iRWRpdG9yIj4NCgkJCTxjb250cmlidXRvck5hbWU+SGlyc2NobWFubiwgQmFyYmFyYTwvY29udHJpYnV0b3JOYW1lPg0KCQkJPGdpdmVuTmFtZT5CYXJiYXJhPC9naXZlbk5hbWU+DQoJCQk8ZmFtaWx5TmFtZT5IaXJzY2htYW5uPC9mYW1pbHlOYW1lPg0KCQkJPG5hbWVJZGVudGlmaWVyIG5hbWVJZGVudGlmaWVyU2NoZW1lPSJPUkNJRCIgc2NoZW1lVVJJPSJodHRwOi8vb3JjaWQub3JnIj4wMDAwLTAwMDMtMDI4OS0wMzQ1PC9uYW1lSWRlbnRpZmllcj4NCgkJCTxhZmZpbGlhdGlvbj5FVEggWsO8cmljaDwvYWZmaWxpYXRpb24+DQoJCTwvY29udHJpYnV0b3I+DQoJCTxjb250cmlidXRvciBjb250cmlidXRvclR5cGU9IkVkaXRvciI+DQoJCQk8Y29udHJpYnV0b3JOYW1lPkpha29ic3NvbiwgU3RlZmFuPC9jb250cmlidXRvck5hbWU+DQoJCQk8Z2l2ZW5OYW1lPlN0ZWZhbjwvZ2l2ZW5OYW1lPg0KCQkJPGZhbWlseU5hbWU+SmFrb2Jzc29uPC9mYW1pbHlOYW1lPg0KCQkJPGFmZmlsaWF0aW9uPlNORDwvYWZmaWxpYXRpb24+DQoJCTwvY29udHJpYnV0b3I+DQoJCTxjb250cmlidXRvciBjb250cmlidXRvclR5cGU9IkVkaXRvciI+DQoJCQk8Y29udHJpYnV0b3JOYW1lPk1haWxsb3V4LCBKZWFu4oCQWXZlczwvY29udHJpYnV0b3JOYW1lPg0KCQkJPGdpdmVuTmFtZT5KZWFuLVl2ZXM8L2dpdmVuTmFtZT4NCgkJCTxmYW1pbHlOYW1lPk1haWxsb3V4PC9mYW1pbHlOYW1lPg0KCQkJPGFmZmlsaWF0aW9uPk5SQy9DSVNUSTwvYWZmaWxpYXRpb24+DQoJCTwvY29udHJpYnV0b3I+DQoJCTxjb250cmlidXRvciBjb250cmlidXRvclR5cGU9IkVkaXRvciI+DQoJCQk8Y29udHJpYnV0b3JOYW1lPk5ld2JvbGQsIEVsaXphYmV0aDwvY29udHJpYnV0b3JOYW1lPg0KCQkJPGdpdmVuTmFtZT5FbGl6YWJldGg8L2dpdmVuTmFtZT4NCgkJCTxmYW1pbHlOYW1lPk5ld2JvbGQ8L2ZhbWlseU5hbWU+DQoJCQk8bmFtZUlkZW50aWZpZXIgbmFtZUlkZW50aWZpZXJTY2hlbWU9Ik9SQ0lEIiBzY2hlbWVVUkk9Imh0dHA6Ly9vcmNpZC5vcmciPjAwMDAtMDAwMi04MjU1LTkwMTM8L25hbWVJZGVudGlmaWVyPg0KCQkJPGFmZmlsaWF0aW9uPkJyaXRpc2ggTGlicmFyeTwvYWZmaWxpYXRpb24+DQoJCTwvY29udHJpYnV0b3I+DQoJCQkJPGNvbnRyaWJ1dG9yIGNvbnRyaWJ1dG9yVHlwZT0iRWRpdG9yIj4NCgkJCTxjb250cmlidXRvck5hbWU+TmllbHNlbiwgTGFycyBIb2xtIDwvY29udHJpYnV0b3JOYW1lPg0KCQkJPGdpdmVuTmFtZT5MYXJzIEhvbG08L2dpdmVuTmFtZT4NCgkJCTxmYW1pbHlOYW1lPk5pZWxzZW48L2ZhbWlseU5hbWU+DQoJCQk8bmFtZUlkZW50aWZpZXIgbmFtZUlkZW50aWZpZXJTY2hlbWU9Ik9SQ0lEIiBzY2hlbWVVUkk9Imh0dHA6Ly9vcmNpZC5vcmciPjAwMDAtMDAwMS04MTM1LTM0ODk8L25hbWVJZGVudGlmaWVyPg0KCQkJPGFmZmlsaWF0aW9uPkNFUk48L2FmZmlsaWF0aW9uPg0KCQk8L2NvbnRyaWJ1dG9yPg0KCQk8Y29udHJpYnV0b3IgY29udHJpYnV0b3JUeXBlPSJFZGl0b3IiPg0KCQkJPGNvbnRyaWJ1dG9yTmFtZT5ZYWhpYSwgTW9oYW1lZDwvY29udHJpYnV0b3JOYW1lPg0KCQkJPGdpdmVuTmFtZT5Nb2hhbWVkPC9naXZlbk5hbWU+DQoJCQk8ZmFtaWx5TmFtZT5ZYWhpYTwvZmFtaWx5TmFtZT4NCgkJCTxhZmZpbGlhdGlvbj5JbmlzdC1DTlJTPC9hZmZpbGlhdGlvbj4NCgkJPC9jb250cmlidXRvcj4NCgkJPGNvbnRyaWJ1dG9yIGNvbnRyaWJ1dG9yVHlwZT0iU3VwZXJ2aXNvciI+DQoJCQk8Y29udHJpYnV0b3JOYW1lPlppZWRvcm4sIEZyYXVrZTwvY29udHJpYnV0b3JOYW1lPg0KCQkJPGdpdmVuTmFtZT5GcmF1a2U8L2dpdmVuTmFtZT4NCgkJCTxmYW1pbHlOYW1lPlppZWRvcm48L2ZhbWlseU5hbWU+DQoJCQk8bmFtZUlkZW50aWZpZXIgbmFtZUlkZW50aWZpZXJTY2hlbWU9Ik9SQ0lEIiBzY2hlbWVVUkk9Imh0dHA6Ly9vcmNpZC5vcmciPjAwMDAtMDAwMi0xMTQzLTc4MVg8L25hbWVJZGVudGlmaWVyPg0KCQkJPGFmZmlsaWF0aW9uPlRJQjwvYWZmaWxpYXRpb24+DQoJCTwvY29udHJpYnV0b3I+DQoJPC9jb250cmlidXRvcnM+DQoJPGxhbmd1YWdlPmVuZzwvbGFuZ3VhZ2U+DQoJPHJlc291cmNlVHlwZSByZXNvdXJjZVR5cGVHZW5lcmFsPSJUZXh0Ij5Eb2N1bWVudGF0aW9uPC9yZXNvdXJjZVR5cGU+DQoJPHJlbGF0ZWRJZGVudGlmaWVycz4NCgkJPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IkRvY3VtZW50cyI+MTAuNTQzOC8wMDEzPC9yZWxhdGVkSWRlbnRpZmllcj4NCgkJPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IklzTmV3VmVyc2lvbk9mIj4xMC41NDM4LzAwMTA8L3JlbGF0ZWRJZGVudGlmaWVyPg0KCTwvcmVsYXRlZElkZW50aWZpZXJzPg0KCTxzaXplcz4NCgkJPHNpemU+NDUgcGFnZXM8L3NpemU+DQoJPC9zaXplcz4NCgk8Zm9ybWF0cz4NCgkJPGZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2Zvcm1hdD4NCgk8L2Zvcm1hdHM+DQoJPHZlcnNpb24+NC4wPC92ZXJzaW9uPg0KCTxkZXNjcmlwdGlvbnM+DQoJCTxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9IlRhYmxlT2ZDb250ZW50cyI+MSBJbnRyb2R1Y3Rpb248YnIvPg0KMS4xIFRoZSBEYXRhQ2l0ZSBDb25zb3J0aXVtPGJyLz4NCjEuMiBEYXRhQ2l0ZSBDb21tdW5pdHkgUGFydGljaXBhdGlvbjxici8+DQoxLjMgVGhlIE1ldGFkYXRhIFNjaGVtYTxici8+DQoxLjQgVmVyc2lvbiA0LjAgVXBkYXRlPGJyLz4NCjIgRGF0YUNpdGUgTWV0YWRhdGEgUHJvcGVydGllczxici8+DQoyLjEgT3ZlcnZpZXc8YnIvPg0KMi4yIENpdGF0aW9uPGJyLz4NCjIuMyBEYXRhQ2l0ZSBQcm9wZXJ0aWVzPGJyLz4NCjMgWE1MIEV4YW1wbGU8YnIvPg0KNCBYTUwgU2NoZW1hPGJyLz4NCjUgT3RoZXIgRGF0YUNpdGUgU2VydmljZXM8YnIvPg0KQXBwZW5kaWNlczxici8+DQpBcHBlbmRpeCAxOiBDb250cm9sbGVkIExpc3QgRGVmaW5pdGlvbnM8YnIvPg0KQXBwZW5kaXggMjogRWFybGllciBWZXJzaW9uIFVwZGF0ZSBOb3RlczwvZGVzY3JpcHRpb24+DQoJPC9kZXNjcmlwdGlvbnM+DQo8L3Jlc291cmNlPg0K"
    },
    "relationships": {
      "publisher": {
        "meta": {}
      },
      "member": {
        "meta": {}
      },
      "registration-agency": {
        "meta": {}
      },
      "resource-type": {
        "meta": {}
      },
      "work-type": {
        "meta": {}
      }
    }
  }
}
 
Suggest Edits

Providers

 
 
 
Suggest Edits

List Providers

Returns information about DataCite providers.

 
gethttps://api.datacite.org/providers

Query Params

query
string

query string, e.g. provider name

year
string

Year member joined DataCite

 
curl https://api.datacite.org/providers?query=calif
A binary file was returned

You couldn't be authenticated

{
  "data": [
    {
      "id": "cdl",
      "type": "providers",
      "attributes": {
        "name": "California Digital Library",
        "symbol": "CDL",
        "website": "http://ezid.cdlib.org",
        "contact-name": "EZID Support Desk",
        "contact-email": "ezid@ucop.edu",
        "phone": null,
        "description": "California Digital Library (CDL) handles scholarly information at every stage of its life. CDL provides technology and expertise to help the University of California (UC) collect, publish, access, and preserve its full range of information resources. CDL partners with organizations outside the UCs on far-reaching problems.\n\nCDL offers DataCite DOIs to University of California scholars and researchers via the EZID service. EZID is also available as a general identifier service to help educational, non-profit, governmental and commercial clients create and manage globally unique identifiers for data and other sources.",
        "country": "US",
        "logo-url": "https://assets.datacite.org/images/members/cdl.png",
        "institution-type": null,
        "is-active": true,
        "has-password": true,
        "joined": "2009-12-01",
        "created": "2010-01-01T00:00:00.000Z",
        "updated": "2018-08-18T02:25:52.000Z"
      },
      "relationships": {
        "clients": {
          "meta": {}
        },
        "prefixes": {
          "meta": {}
        }
      }
    },
    {
      "id": "caltech",
      "type": "providers",
      "attributes": {
        "name": "California Institute of Technology (Caltech)",
        "symbol": "CALTECH",
        "website": "http://www.caltech.edu/",
        "contact-name": "Tom Morrell",
        "contact-email": "tmorrell@caltech.edu",
        "phone": "626-395-3827",
        "description": "Caltech is a world-renowned science and engineering Institute that marshals some of the world's brightest minds and most innovative tools to address fundamental scientific questions and pressing societal challenges. DOIs for Caltech are managed by  Caltech Library, which advances the Institute’s mission to expand human knowledge by catalyzing information discovery and sharing. The Library maintains extensive research collections, a variety of study spaces, state-of-the-art knowledge management platforms, and a user-focused program of instruction and outreach that enhances student success at Caltech. Visit the Library’s website, library.caltech.edu, to access library collections and services or request research assistance from the Library.",
        "country": "US",
        "logo-url": "https://assets.datacite.org/images/members/caltech.png",
        "institution-type": null,
        "is-active": true,
        "has-password": true,
        "joined": null,
        "created": "2018-04-11T16:27:30.000Z",
        "updated": "2018-08-18T02:25:54.000Z"
      },
      "relationships": {
        "clients": {
          "meta": {}
        },
        "prefixes": {
          "meta": {}
        }
      }
    },
    {
      "id": "usc",
      "type": "providers",
      "attributes": {
        "name": "University of Southern California",
        "symbol": "USC",
        "website": "http://usc.edu/libraries",
        "contact-name": "Carl Kesselman",
        "contact-email": "carl@isi.edu",
        "phone": "+1 310 448-9338",
        "description": "The USC Libraries actively support the discovery, creation, and preservation of knowledge. We develop collections and services that support and encourage the academic endeavors of faculty, students, and staff; build a community of critical consumers of information; and help develop engaged world citizens. Through these means, we contribute to the continued success of the University of Southern California. \n\nThe USC Libraries includes the Doheny Memorial Library and fourteen specialized libraries with an operating budget of approximately $41 million supporting researchers across the university. Library collections encompass over 4.2 million volumes, 5.9 million microforms, 3.1 million images, 49,300 linear feet of manuscripts and archives, with access to over 113,800 serials in print and electronic formats, nearly 1.3 million e-books, and 400,000 unique digital objects.",
        "country": "US",
        "logo-url": "https://assets.datacite.org/images/members/usc.png",
        "institution-type": null,
        "is-active": true,
        "has-password": true,
        "joined": "2017-06-02",
        "created": "2017-08-03T08:29:31.000Z",
        "updated": "2018-08-18T02:25:53.000Z"
      },
      "relationships": {
        "clients": {
          "meta": {}
        },
        "prefixes": {
          "meta": {}
        }
      }
    }
  ],
  "meta": {
    "total": 3,
    "total-pages": 1,
    "page": 1,
    "years": [
      {
        "id": "2010",
        "title": "2010",
        "count": 1
      },
      {
        "id": "2017",
        "title": "2017",
        "count": 1
      },
      {
        "id": "2018",
        "title": "2018",
        "count": 1
      }
    ]
  }
}
 
Suggest Edits

Get Provider

Returns information about a DataCite provider.

 
gethttps://api.datacite.org/providers/provider-id

Path Params

provider-id
string
required
 
curl https://api.datacite.org/providers/cern
A binary file was returned

You couldn't be authenticated

{
  "data": {
    "id": "cern",
    "type": "providers",
    "attributes": {
      "name": "CERN - European Organization for Nuclear Research",
      "symbol": "CERN",
      "website": "http://doi.web.cern.ch/",
      "contact-name": "Sünje Dallmeier-Tiessen",
      "contact-email": "sunje.dallmeier-tiessen@cern.ch",
      "phone": null,
      "description": "CERN, the European Organization for Nuclear Research, is the world's largest particle physics laboratory. Founded in 1954 and based on the Franco-Swiss border near Geneva, it was one of Europe's first joint ventures and now has 21 member states and more than 50 cooperation agreements and scientific contacts with other countries.\n\nAt CERN, physicists and engineers probe the fundamental structure of the universe. They use the world's largest and most complex scientific instrument, the Large Hadron Collider (LHC), to study the basic constituents of matter. The results of their experimental and theoretical work are publicly available following CERN's Open Access Policy.\n\nCERN services implementing DOIs are its institutional repository (CDS, CERN Document Server); INSPIRE-HEP, a digital library for the field of High-Energy Physics run in collaboration with other institutions; or the CERN Open Data Portal, which provides high level and analyzable data and software from the LHC experiments.\n\nFurthermore, CERN is also providing DOIs to ZENODO, a multidisciplinary data repository for the “long tail” of research results. It allows researchers to share and preserve their output independent of size, type of material or discipline.",
      "country": "CH",
      "logo-url": "https://assets.datacite.org/images/members/cern.png",
      "institution-type": null,
      "is-active": true,
      "has-password": true,
      "joined": "2014-03-25",
      "created": "2014-04-10T13:41:44.000Z",
      "updated": "2018-08-18T02:25:52.000Z"
    },
    "relationships": {
      "clients": {
        "meta": {}
      },
      "prefixes": {
        "meta": {}
      }
    }
  },
  "meta": {
    "clients": [
      {
        "id": 2011,
        "title": 2011,
        "count": 1
      },
      {
        "id": 2012,
        "title": 2012,
        "count": 1
      },
      {
        "id": 2013,
        "title": 2013,
        "count": 3
      },
      {
        "id": 2014,
        "title": 2014,
        "count": 4
      },
      {
        "id": 2015,
        "title": 2015,
        "count": 6
      },
      {
        "id": 2016,
        "title": 2016,
        "count": 12
      },
      {
        "id": 2017,
        "title": 2017,
        "count": 13
      },
      {
        "id": 2018,
        "title": 2018,
        "count": 13
      }
    ],
    "dois": [
      {
        "id": 2011,
        "title": 2011,
        "count": 2
      },
      {
        "id": 2012,
        "title": 2012,
        "count": 1
      },
      {
        "id": 2013,
        "title": 2013,
        "count": 1428
      },
      {
        "id": 2014,
        "title": 2014,
        "count": 12566
      },
      {
        "id": 2015,
        "title": 2015,
        "count": 28283
      },
      {
        "id": 2016,
        "title": 2016,
        "count": 324917
      },
      {
        "id": 2017,
        "title": 2017,
        "count": 224735
      },
      {
        "id": 2018,
        "title": 2018,
        "count": 177364
      }
    ]
  }
}
{
  "errors": [
    {
      "status": "404",
      "title": "The resource you are looking for doesn't exist."
    }
  ]
}
 
Suggest Edits

Create Provider

Requires admin permissions

 
posthttps://api.datacite.org/providers

Form Data

name
string
symbol
string
contact-name
string
contact-email
string
description
string
country
string
institution-type
string
website
string
phone
string
joined
date
is-active
string
password-input
string

Headers

Content-Type
string
 
curl --request POST \
  --url https://api.datacite.org/providers
var request = require("request");

var options = { method: 'POST', url: 'https://api.datacite.org/providers' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/providers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.datacite.org/providers");

xhr.send(data);
import requests

url = "https://api.datacite.org/providers"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Update Provider

Requires provider or admin privileges.

 
puthttps://api.datacite.org/providers/provider-id

Path Params

provider-id
string
required

Form Data

name
string
description
string
institution-type
string
country
string
website
string
phone
string
contact-name
string
contact-email
string
joined
date
is-active
string
password-input
string
 
curl --request PUT \
  --url https://api.datacite.org/providers/provider-id
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.datacite.org/providers/provider-id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/providers/provider-id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.datacite.org/providers/provider-id");

xhr.send(data);
import requests

url = "https://api.datacite.org/providers/provider-id"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Delete Provider

Requires admin privileges.

 
deletehttps://api.datacite.org/providers/provider-id

Path Params

provider-id
string
required
 
curl --request DELETE \
  --url https://api.datacite.org/providers/provider-id
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.datacite.org/providers/provider-id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/providers/provider-id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.datacite.org/providers/provider-id");

xhr.send(data);
import requests

url = "https://api.datacite.org/providers/provider-id"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

List Provider DOIs

 
gethttps://api.datacite.org/providers/provider-id/dois

Path Params

provider-id
string
required

Headers

Content-Type
string
 
curl https://api.datacite.org/providers/tib/dois
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

List Provider Prefixes

List prefixes associated with a provider

 
gethttps://api.datacite.org/providers/provider-id/prefixes

Path Params

provider-id
string
required

Query Params

query
string
prefix-id
string
state
string

Either "with-client" or "without-client"

Headers

Content-Type
string
 
curl https://api.datacite.org/providers/datacite/prefixes?state=without-client
A binary file was returned

You couldn't be authenticated

{
  "data": [
    {
      "id": "0004-wd75-2j00-0000",
      "type": "provider-prefixes",
      "attributes": {
        "created": "2018-02-22T16:21:35.000Z",
        "updated": "2018-02-22T16:21:35.000Z"
      },
      "relationships": {
        "provider": {
          "data": {
            "id": "datacite",
            "type": "providers"
          }
        },
        "prefix": {
          "data": {
            "id": "10.2899",
            "type": "prefixes"
          }
        },
        "clients": {
          "data": []
        }
      }
    },
    {
      "id": "0004-0g0q-s4ks-t3t0",
      "type": "provider-prefixes",
      "attributes": {
        "created": "2017-04-11T14:11:12.000Z",
        "updated": "2017-09-24T01:42:41.000Z"
      },
      "relationships": {
        "provider": {
          "data": {
            "id": "datacite",
            "type": "providers"
          }
        },
        "prefix": {
          "data": {
            "id": "10.25494",
            "type": "prefixes"
          }
        },
        "clients": {
          "data": []
        }
      }
    },
    {
      "id": "0003-1a7x-zqmy-1943",
      "type": "provider-prefixes",
      "attributes": {
        "created": "2013-11-05T07:22:12.000Z",
        "updated": "2017-09-24T01:42:23.000Z"
      },
      "relationships": {
        "provider": {
          "data": {
            "id": "datacite",
            "type": "providers"
          }
        },
        "prefix": {
          "data": {
            "id": "10.14454",
            "type": "prefixes"
          }
        },
        "clients": {
          "data": []
        }
      }
    }
  ],
 
  "meta": {
    "total": 7,
    "total-pages": 1,
    "page": 1,
    "states": [
      {
        "id": "without-client",
        "title": "Without client",
        "count": 7
      }
    ],
    "providers": [
      {
        "id": "datacite",
        "title": "DataCite",
        "count": 7
      }
    ],
    "years": [
      {
        "id": "2018",
        "title": "2018",
        "count": 1
      },
      {
        "id": "2017",
        "title": "2017",
        "count": 5
      },
      {
        "id": "2013",
        "title": "2013",
        "count": 1
      }
    ]
  }
}
 
Suggest Edits

Get Provider Prefix

 
gethttps://api.datacite.org/provider-prefixes/id

Path Params

id
string
required

Headers

Content-Type
string
 
curl https://api.datacite.org/provider-prefixes/0003-1a7x-zqmy-1943
A binary file was returned

You couldn't be authenticated

{
  "data": {
    "id": "0003-1a7x-zqmy-1943",
    "type": "provider-prefixes",
    "attributes": {
      "created": "2013-11-05T07:22:12.000Z",
      "updated": "2017-09-24T01:42:23.000Z"
    },
    "relationships": {
      "provider": {
        "data": {
          "id": "datacite",
          "type": "providers"
        }
      },
      "prefix": {
        "data": {
          "id": "10.14454",
          "type": "prefixes"
        }
      },
      "clients": {
        "data": []
      }
    }
  }
}
{
  "errors": [
    {
      "status": "404",
      "title": "The resource you are looking for doesn't exist."
    }
  ]
}
 
Suggest Edits

Create Provider Prefix

Requires provider or admin permissions

 
posthttps://api.datacite.org/provider-prefixes

Query Params

provider-id
string
prefix-id
string
 
curl --request POST \
  --url https://api.datacite.org/provider-prefixes
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.datacite.org/provider-prefixes' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/provider-prefixes")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.datacite.org/provider-prefixes");

xhr.send(data);
import requests

url = "https://api.datacite.org/provider-prefixes"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Delete Provider Prefix

Requires provider or admin permissions.

 
deletehttps://api.datacite.org/provider-prefixes/id

Path Params

id
string
required

Headers

Content-Type
string
 
curl --request DELETE \
  --url https://api.datacite.org/provider-prefixes/id
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.datacite.org/provider-prefixes/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/provider-prefixes/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.datacite.org/provider-prefixes/id");

xhr.send(data);
import requests

url = "https://api.datacite.org/provider-prefixes/id"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
 
 
 
Suggest Edits

List Clients

Returns information about clients.

 
gethttps://api.datacite.org/clients

Query Params

query
string

Query string, e.g. data center name

provider-id
string

Member that the data center is associated with

page[number]
int32
page[size]
int32
include
string

Comma-separated list from provider, repository

 
http://api.datacite.org/clients?query=rki
A binary file was returned

You couldn't be authenticated

{
  "data": [
    {
      "id": "gesis.rki",
      "type": "clients",
      "attributes": {
        "name": "'Health Monitoring' Research Data Centre at the Robert Koch Institute",
        "symbol": "GESIS.RKI",
        "year": 2012,
        "contact-name": "dara",
        "contact-email": "dara@gesis.org",
        "domains": "kiggs-studie.de,degs-studie.de,geda-studie.de,rki.de,krebsdaten.de,edoc.rki.de",
        "url": null,
        "is-active": true,
        "has-password": true,
        "created": "2012-11-15T15:21:43Z",
        "updated": "2018-08-18T02:35:15Z"
      },
      "relationships": {
        "prefixes": {
          "meta": {}
        },
        "provider": {
          "data": {
            "id": "gesis",
            "type": "providers"
          }
        },
        "repository": {
          "data": {
            "id": "r3d100010436",
            "type": "repositories"
          }
        }
      }
    },
    {
      "id": "tib.hu-rki",
      "type": "clients",
      "attributes": {
        "name": "Humboldt Universität zu Berlin",
        "symbol": "TIB.HU-RKI",
        "year": 2018,
        "contact-name": "Niels Fromm",
        "contact-email": "fromm@hu-berlin.de",
        "domains": "rki.de",
        "url": null,
        "is-active": true,
        "has-password": true,
        "created": "2018-02-05T08:30:40Z",
        "updated": "2018-08-18T02:36:11Z"
      },
      "relationships": {
        "prefixes": {
          "meta": {}
        },
        "provider": {
          "data": {
            "id": "tib",
            "type": "providers"
          }
        },
        "repository": {
          "data": null
        }
      }
    }
  ],
 
  "meta": {
    "total": 2,
    "total-pages": 1,
    "page": 1,
    "years": [
      {
        "id": "2012",
        "title": "2012",
        "count": 1
      },
      {
        "id": "2018",
        "title": "2018",
        "count": 1
      }
    ],
    "providers": [
      {
        "id": "gesis",
        "title": "GESIS - Leibniz Institute for the Social Sciences",
        "count": 1
      },
      {
        "id": "tib",
        "title": "German National Library of Science and Technology",
        "count": 1
      }
    ]
  }
}
 
Suggest Edits

Get Client

Returns information about a specific client.

 
gethttps://api.datacite.org/clients/client-id

Path Params

client-id
string
required

Query Params

include
string

Comma-separated list from "provider", "repository"

 
https://api.datacite.org/clients/dryad.dryad
A binary file was returned

You couldn't be authenticated

{
  "data": {
    "id": "dryad.dryad",
    "type": "clients",
    "attributes": {
      "name": "DRYAD",
      "symbol": "DRYAD.DRYAD",
      "year": 2018,
      "contact-name": "Dryad Administrator",
      "contact-email": "admin@datadryad.org",
      "domains": "*",
      "url": null,
      "is-active": true,
      "has-password": true,
      "created": "2018-04-24T20:59:15Z",
      "updated": "2018-08-18T02:36:18Z"
    },
    "relationships": {
      "prefixes": {
        "meta": {}
      },
      "provider": {
        "data": {
          "id": "dryad",
          "type": "providers"
        }
      },
      "repository": {
        "data": {
          "id": "r3d100000044",
          "type": "repositories"
        }
      }
    }
  },
  "meta": {
    "dois": [
      {
        "id": 2011,
        "title": 2011,
        "count": 4213
      },
      {
        "id": 2012,
        "title": 2012,
        "count": 3941
      },
      {
        "id": 2013,
        "title": 2013,
        "count": 5880
      },
      {
        "id": 2014,
        "title": 2014,
        "count": 16965
      },
      {
        "id": 2015,
        "title": 2015,
        "count": 18389
      },
      {
        "id": 2016,
        "title": 2016,
        "count": 18955
      },
      {
        "id": 2017,
        "title": 2017,
        "count": 20696
      },
      {
        "id": 2018,
        "title": 2018,
        "count": 13960
      }
    ]
  }
}
{
  "errors": [
    {
      "status": "404",
      "title": "The resource you are looking for doesn't exist."
    }
  ]
}
 
Suggest Edits

Create Client

 
posthttps://api.datacite.org/clients

Form Data

name
string
symbol
string
provider-id
string
repository-id
string
contact-name
string
contact-email
string
url
string
domains
string
is-active
boolean
password-input
string
 
curl --request POST \
  --url https://api.datacite.org/clients
var request = require("request");

var options = { method: 'POST', url: 'https://api.datacite.org/clients' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/clients")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.datacite.org/clients");

xhr.send(data);
import requests

url = "https://api.datacite.org/clients"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Update Client

 
puthttps://api.datacite.org/clients/client-id

Path Params

client-id
string
required

Form Data

name
string
repository-id
string
contact-name
string
contact-email
string
url
string
domains
string
is-active
boolean
password-input
string

Headers

Content-Type
string
 
curl --request PUT \
  --url https://api.datacite.org/clients/client-id
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.datacite.org/clients/client-id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/clients/client-id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.datacite.org/clients/client-id");

xhr.send(data);
import requests

url = "https://api.datacite.org/clients/client-id"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Delete Client

 
deletehttps://api.datacite.org/clients/client-id

Path Params

client-id
string
required

Headers

Content-Type
string
 
curl --request DELETE \
  --url https://api.datacite.org/clients/client-id
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.datacite.org/clients/client-id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/clients/client-id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.datacite.org/clients/client-id");

xhr.send(data);
import requests

url = "https://api.datacite.org/clients/client-id"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

List Client DOIs

 
gethttps://api.datacite.org/clients/client-id/dois

Path Params

client-id
string
required

Headers

Content-Type
string
 
curl https://api.datacite.org/clients/datacite.datacite/dois
A binary file was returned

You couldn't be authenticated

{
  "data": [
    {
      "id": "10.5438/z5w2-gk80",
      "type": "dois",
      "attributes": {
        "doi": "10.5438/z5w2-gk80",
        "prefix": "10.5438",
        "suffix": "z5w2-gk80",
        "identifier": "https://doi.org/10.5438/z5w2-gk80",
        "url": "https://blog.datacite.org/metrics-for-metadata/",
        "author": [
          {
            "type": "Person",
            "id": "https://orcid.org/0000-0003-3585-6733",
            "name": "Habermann, Ted",
            "given-name": "Ted",
            "family-name": "Habermann"
          }
        ],
        "title": "Metrics for Characterizing Metadata Collections",
        "publisher": "DataCite",
        "resource-type-subtype": "BlogPosting",
        "description": "This is a guest blog post written by Ted Habermann, Director of Business and Community Development for The HDF Group. Dr. Habermann is currently leading International Standards Organization (ISO) projects developing XML Schema and transforms for ISO...",
        "version": "1.0",
        "metadata-version": 9,
        "schema-version": "http://datacite.org/schema/kernel-4",
        "state": "findable",
        "is-active": true,
        "reason": null,
        "source": "fabrica",
        "landing-page": {
          "status": 200,
          "content-type": "text/html",
          "checked": "2018-08-15T21:33:45.000Z"
        },
        "xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTQzOC9aNVcyLUdLODA8L2lkZW50aWZpZXI+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5IYWJlcm1hbm4sIFRlZDwvY3JlYXRvck5hbWU+CiAgICAgIDxnaXZlbk5hbWU+VGVkPC9naXZlbk5hbWU+CiAgICAgIDxmYW1pbHlOYW1lPkhhYmVybWFubjwvZmFtaWx5TmFtZT4KICAgICAgPG5hbWVJZGVudGlmaWVyIHNjaGVtZVVSST0iaHR0cDovL29yY2lkLm9yZy8iIG5hbWVJZGVudGlmaWVyU2NoZW1lPSJPUkNJRCI+aHR0cHM6Ly9vcmNpZC5vcmcvMDAwMC0wMDAzLTM1ODUtNjczMzwvbmFtZUlkZW50aWZpZXI+CiAgICA8L2NyZWF0b3I+CiAgPC9jcmVhdG9ycz4KICA8dGl0bGVzPgogICAgPHRpdGxlPk1ldHJpY3MgZm9yIENoYXJhY3Rlcml6aW5nIE1ldGFkYXRhIENvbGxlY3Rpb25zPC90aXRsZT4KICA8L3RpdGxlcz4KICA8cHVibGlzaGVyPkRhdGFDaXRlPC9wdWJsaXNoZXI+CiAgPHB1YmxpY2F0aW9uWWVhcj4yMDE4PC9wdWJsaWNhdGlvblllYXI+CiAgPHJlc291cmNlVHlwZSByZXNvdXJjZVR5cGVHZW5lcmFsPSJUZXh0Ij5CbG9nUG9zdGluZzwvcmVzb3VyY2VUeXBlPgogIDxzdWJqZWN0cz4KICAgIDxzdWJqZWN0Pm1ldGFkYXRhPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+ZGF0YWNpdGU8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5mZWF0dXJlZDwvc3ViamVjdD4KICA8L3N1YmplY3RzPgogIDxkYXRlcz4KICAgIDxkYXRlIGRhdGVUeXBlPSJDcmVhdGVkIj4yMDE4LTA4LTE1PC9kYXRlPgogICAgPGRhdGUgZGF0ZVR5cGU9Iklzc3VlZCI+MjAxOC0wOC0xNTwvZGF0ZT4KICAgIDxkYXRlIGRhdGVUeXBlPSJVcGRhdGVkIj4yMDE4LTA4LTE1PC9kYXRlPgogIDwvZGF0ZXM+CiAgPHJlbGF0ZWRJZGVudGlmaWVycz4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJJc1BhcnRPZiI+MTAuNTQzOC8wMDAwLTAwc3M8L3JlbGF0ZWRJZGVudGlmaWVyPgogIDwvcmVsYXRlZElkZW50aWZpZXJzPgogIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KICA8cmlnaHRzTGlzdD4KICAgIDxyaWdodHMgcmlnaHRzVVJJPSJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvNC4wLyI+aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzQuMC88L3JpZ2h0cz4KICA8L3JpZ2h0c0xpc3Q+CiAgPGRlc2NyaXB0aW9ucz4KICAgIDxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9IkFic3RyYWN0Ij5UaGlzIGlzIGEgZ3Vlc3QgYmxvZyBwb3N0IHdyaXR0ZW4gYnkgVGVkIEhhYmVybWFubiwgRGlyZWN0b3Igb2YgQnVzaW5lc3MgYW5kIENvbW11bml0eSBEZXZlbG9wbWVudCBmb3IgVGhlIEhERiBHcm91cC4gRHIuIEhhYmVybWFubiBpcyBjdXJyZW50bHkgbGVhZGluZyBJbnRlcm5hdGlvbmFsIFN0YW5kYXJkcyBPcmdhbml6YXRpb24gKElTTykgcHJvamVjdHMgZGV2ZWxvcGluZyBYTUwgU2NoZW1hIGFuZCB0cmFuc2Zvcm1zIGZvciBJU08uLi48L2Rlc2NyaXB0aW9uPgogIDwvZGVzY3JpcHRpb25zPgo8L3Jlc291cmNlPg==",
        "published": "2018-08-15",
        "created": "2018-08-15T10:02:14.000Z",
        "registered": "2018-08-15T21:26:02.000Z",
        "updated": "2018-08-15T21:33:45.000Z"
      },
      "relationships": {
        "client": {
          "data": {
            "id": "datacite.datacite",
            "type": "clients"
          }
        },
        "provider": {
          "data": {
            "id": "datacite",
            "type": "providers"
          }
        },
        "resource-type": {
          "data": {
            "id": "text",
            "type": "resource-types"
          }
        },
        "media": {
          "meta": {}
        }
      }
    }
  ],
  "meta": {
    "total": 143,
    "total-pages": 6,
    "page": 1
  }
}
 
Suggest Edits

Get Client DOI

 
gethttps://api.datacite.org/dois/doi

Path Params

doi
string
required

Headers

Content-Type
string
 
curl -H "Content-Type: application/vnd.api+json" https://api.datacite.org/dois/10.5061/dryad.940m2.2
A binary file was returned

You couldn't be authenticated

{
  "data": {
    "id": "10.5061/dryad.940m2.2",
    "type": "dois",
    "attributes": {
      "doi": "10.5061/dryad.940m2.2",
      "prefix": "10.5061",
      "suffix": "dryad.940m2.2",
      "identifier": "https://doi.org/10.5061/dryad.940m2.2",
      "url": "https://datadryad.org/resource/doi:10.5061/dryad.940m2.2",
      "author": [
        {
          "type": "Person",
          "name": "Marta Vidal Garcia",
          "given-name": "Marta",
          "family-name": "Vidal Garcia"
        },
        {
          "type": "Person",
          "name": "J. Scott Keogh",
          "given-name": "J. Scott",
          "family-name": "Keogh"
        }
      ],
      "title": "Data from: Invasive cane toads are unique in shape but overlap in ecological niche compared to Australian native frogs",
      "publisher": "Dryad Digital Repository",
      "resource-type-subtype": "DataPackage",
      "description": null,
      "version": "2",
      "metadata-version": 2,
      "schema-version": "http://datacite.org/schema/kernel-4",
      "state": "findable",
      "is-active": true,
      "reason": null,
      "source": "ez",
      "landing-page": {
        "status": 200,
        "content-type": "text/html",
        "checked": "2018-08-18T17:48:51.000Z"
      },
      "xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6bWV0cz0iaHR0cDovL3d3dy5sb2MuZ292L01FVFMvIiB4bWxuczpkc3BhY2U9Imh0dHA6Ly93d3cuZHNwYWNlLm9yZy94bWxucy9kc3BhY2UvZGltIiB4bWxuczpkaW09Imh0dHA6Ly93d3cuZHNwYWNlLm9yZy94bWxucy9kc3BhY2UvZGltIiB4bWxuczpkcnlhZD0iaHR0cDovL3B1cmwub3JnL2RyeWFkL3Rlcm1zLyIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTA2MS9EUllBRC45NDBNMi4yPC9pZGVudGlmaWVyPgogIDx2ZXJzaW9uPjI8L3ZlcnNpb24+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5WaWRhbCBHYXJjaWEsIE1hcnRhPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+S2VvZ2gsIEouIFNjb3R0PC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICA8L2NyZWF0b3JzPgogIDx0aXRsZXM+CiAgICA8dGl0bGU+RGF0YSBmcm9tOiBJbnZhc2l2ZSBjYW5lIHRvYWRzIGFyZSB1bmlxdWUgaW4gc2hhcGUgYnV0IG92ZXJsYXAgaW4gZWNvbG9naWNhbCBuaWNoZSBjb21wYXJlZCB0byBBdXN0cmFsaWFuIG5hdGl2ZSBmcm9nczwvdGl0bGU+CiAgPC90aXRsZXM+CiAgPHB1Ymxpc2hlcj5EcnlhZCBEaWdpdGFsIFJlcG9zaXRvcnk8L3B1Ymxpc2hlcj4KICA8cHVibGljYXRpb25ZZWFyPjIwMTg8L3B1YmxpY2F0aW9uWWVhcj4KICA8c3ViamVjdHM+CiAgICA8c3ViamVjdD5hbXBoaWJpYW48L3N1YmplY3Q+CiAgICA8c3ViamVjdD5iaW9sb2dpY2FsIGludmFzaW9uczwvc3ViamVjdD4KICAgIDxzdWJqZWN0PmJvZHkgc2hhcGU8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5lbXB0eSBuaWNoZTwvc3ViamVjdD4KICAgIDxzdWJqZWN0Pm1vcnBob2xvZ3k8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5uaWNoZSBicmVhZHRoPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+QXVzdHJhbGlhPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+UmhpbmVsbGEgbWFyaW5hPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+QnVmbyBtYXJpbnVzPC9zdWJqZWN0PgogIDwvc3ViamVjdHM+CiAgPHJlc291cmNlVHlwZSByZXNvdXJjZVR5cGVHZW5lcmFsPSJEYXRhc2V0Ij5EYXRhUGFja2FnZTwvcmVzb3VyY2VUeXBlPgogIDxhbHRlcm5hdGVJZGVudGlmaWVycz4KICAgIDxhbHRlcm5hdGVJZGVudGlmaWVyIGFsdGVybmF0ZUlkZW50aWZpZXJUeXBlPSJjaXRhdGlvbiI+VmlkYWwtR2FyY8OtYSBNLCBLZW9naCBKUyAoMjAxNykgSW52YXNpdmUgY2FuZSB0b2FkcyBhcmUgdW5pcXVlIGluIHNoYXBlIGJ1dCBvdmVybGFwIGluIGVjb2xvZ2ljYWwgbmljaGUgY29tcGFyZWQgdG8gQXVzdHJhbGlhbiBuYXRpdmUgZnJvZ3MuIEVjb2xvZ3kgYW5kIEV2b2x1dGlvbiA3KDE5KTogNzYwOS03NjE5LjwvYWx0ZXJuYXRlSWRlbnRpZmllcj4KICA8L2FsdGVybmF0ZUlkZW50aWZpZXJzPgogIDxyZWxhdGVkSWRlbnRpZmllcnM+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSGFzUGFydCI+MTAuNTA2MS9EUllBRC45NDBNMi4yLzIuMjwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSGFzUGFydCI+MTAuNTA2MS9EUllBRC45NDBNMi4yLzMuMjwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSXNSZWZlcmVuY2VkQnkiPjEwLjEwMDIvRUNFMy4zMjUzPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJJc1N1cHBsZW1lbnRUbyI+MTAuMTAwMi9FQ0UzLjMyNTM8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IklzTmV3VmVyc2lvbk9mIj4xMC41MDYxL0RSWUFELjk0ME0yLjE8L3JlbGF0ZWRJZGVudGlmaWVyPgogIDwvcmVsYXRlZElkZW50aWZpZXJzPgogIDxyaWdodHNMaXN0PgogICAgPHJpZ2h0cyByaWdodHNVUkk9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8iLz4KICA8L3JpZ2h0c0xpc3Q+CjwvcmVzb3VyY2U+",
      "published": "2018",
      "created": "2018-08-17T20:45:14.000Z",
      "registered": "2018-08-17T20:46:25.000Z",
      "updated": "2018-08-18T03:01:01.000Z"
    },
    "relationships": {
      "client": {
        "data": {
          "id": "dryad.dryad",
          "type": "clients"
        }
      },
      "provider": {
        "data": {
          "id": "dryad",
          "type": "providers"
        }
      },
      "resource-type": {
        "data": {
          "id": "dataset",
          "type": "resource-types"
        }
      },
      "media": {
        "meta": {}
      }
    }
  }
}
{
  "errors": [
    {
      "status": "404",
      "title": "The resource you are looking for doesn't exist."
    }
  ]
}
 
Suggest Edits

Create Client DOI

 
posthttps://api.datacite.org/dois

Form Data

doi
string
client-id
string
provider-id
string
resource-type-id
string
url
string
title
string
author
object
 
author.id
string
author.name
string
author.given-name
string
author.family-name
string
publisher
string
published
date
resource-type-subtype
string
description
string
version
string
xml
string

Headers

Content-Type
string
 
curl -X POST --user USERNAME:PASSWORD --data "{ 
  \"data\": { 
    \"type\": \"dois\", 
    \"attributes\": {
      \"doi\": \"10.5072/rd4t-1a57\",
    },
    \"relationships\": {
       \"client\":  {
         \"data\": {
           \"type\": \"clients\",
           \"id\": \"demo.datacite\"
        }
      }
    }
 }
}" https://api.datacite.org/dois
A binary file was returned

You couldn't be authenticated

 
Suggest Edits

Update Client DOI

 
puthttps://api.datacite.org/dois/doi

Path Params

doi
string
required

Form Data

url
string
client-id
string
provider-id
string
resource-type-id
string
title
string
author
object
 
author.id
string
author.name
string
author.given-name
string
author.family-name
string
publisher
string
published
date
resource-type-subtype
string
description
string
version
string
xml
string

Headers

Content-Type
string
 
curl --request PUT \
  --url https://api.datacite.org/dois/doi
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.datacite.org/dois/doi' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/dois/doi")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.datacite.org/dois/doi");

xhr.send(data);
import requests

url = "https://api.datacite.org/dois/doi"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

 
Suggest Edits

Delete Client DOI

 
deletehttps://api.datacite.org/dois/doi

Path Params

doi
string
required
 
curl --request DELETE \
  --url https://api.datacite.org/dois/doi
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.datacite.org/dois/doi' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/dois/doi")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.datacite.org/dois/doi");

xhr.send(data);
import requests

url = "https://api.datacite.org/dois/doi"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

List Client Prefixes

 
gethttps://api.datacite.org/client-prefixes

Query Params

query
string
client-id
string
prefix-id
string
year
string

Headers

Content-Type
string
 
curl --request GET \
  --url https://api.datacite.org/client-prefixes
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.datacite.org/client-prefixes' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/client-prefixes")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.datacite.org/client-prefixes");

xhr.send(data);
import requests

url = "https://api.datacite.org/client-prefixes"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Get Client Prefix

 
gethttps://api.datacite.org/prefixes/id

Path Params

id
string
required
 
curl --request GET \
  --url https://api.datacite.org/prefixes/id
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.datacite.org/prefixes/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/prefixes/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.datacite.org/prefixes/id");

xhr.send(data);
import requests

url = "https://api.datacite.org/prefixes/id"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
 
 
 
Suggest Edits

List Prefixes

 
gethttps://api.datacite.org/prefixes

Query Params

query
string
provider-id
string
client-id
string
state
string

Either "with-client", "without-client" or "unassigned"

year
string

Headers

Content-Type
string
 
curl https://api.datacite.org/prefixes?client-id=datacite.datacite
A binary file was returned

You couldn't be authenticated

{
  "data": [
    {
      "id": "10.5438",
      "type": "prefixes",
      "attributes": {
        "registration-agency": "DataCite",
        "created": "2011-03-30T08:56:21.000Z",
        "updated": null
      },
      "relationships": {
        "clients": {
          "data": [
            {
              "id": "datacite.datacite",
              "type": "clients"
            }
          ]
        },
        "providers": {
          "data": [
            {
              "id": "datacite",
              "type": "providers"
            }
          ]
        }
      }
    }
  ],
  "included": [
    {
      "id": "datacite.datacite",
      "type": "clients",
      "attributes": {
        "name": "DataCite",
        "symbol": "DATACITE.DATACITE",
        "year": 2011,
        "contact-name": "DataCite",
        "contact-email": "support@datacite.org",
        "domains": "*",
        "url": null,
        "is-active": true,
        "has-password": true,
        "created": "2011-12-07T13:43:39Z",
        "updated": "2018-08-18T02:35:11Z"
      },
      "relationships": {
        "prefixes": {
          "meta": {}
        },
        "provider": {
          "meta": {}
        },
        "repository": {
          "meta": {}
        }
      }
    },
    {
      "id": "datacite",
      "type": "providers",
      "attributes": {
        "name": "DataCite",
        "symbol": "DATACITE",
        "website": null,
        "contact-name": "DataCite Support",
        "contact-email": "info@datacite.org",
        "phone": null,
        "description": null,
        "country": "DE",
        "logo-url": null,
        "institution-type": null,
        "is-active": true,
        "has-password": true,
        "joined": null,
        "created": "2011-12-07T13:41:07.000Z",
        "updated": "2018-08-18T02:25:52.000Z"
      },
      "relationships": {
        "clients": {
          "meta": {}
        },
        "prefixes": {
          "meta": {}
        }
      }
    }
  ],
  "meta": {
    "total": 1,
    "total-pages": 1,
    "page": 1,
    "states": [
      {
        "id": "unassigned",
        "title": "Unassigned",
        "count": 0
      },
      {
        "id": "without-client",
        "title": "Without client",
        "count": 0
      },
      {
        "id": "with-client",
        "title": "With client",
        "count": 1
      }
    ],
    "providers": [
      {
        "id": "datacite",
        "title": "DataCite",
        "count": 1
      }
    ],
    "years": [
      {
        "id": "2011",
        "title": "2011",
        "count": 1
      }
    ]
  }
}
 
Suggest Edits

Get Prefix

Get information about a prefix. Works for prefixes from all DOI registration agencies, but returns more information for DataCite prefixes.

 
gethttps://api.datacite.org/prefixes/prefix

Path Params

prefix
string
required

The DOI prefix in the format 10.xxxx

Headers

Content-Type
string
 
curl https://api.datacite.org/prefixes/10.5438
A binary file was returned

You couldn't be authenticated

{
  "data": {
    "id": "10.5438",
    "type": "prefixes",
    "attributes": {
      "registration-agency": "DataCite",
      "created": "2011-03-30T08:56:21.000Z",
      "updated": null
    },
    "relationships": {
      "clients": {
        "data": [
          {
            "id": "datacite.datacite",
            "type": "clients"
          }
        ]
      },
      "providers": {
        "data": [
          {
            "id": "datacite",
            "type": "providers"
          }
        ]
      }
    }
  }
{
  "errors": [
    {
      "status": "404",
      "title": "The resource you are looking for doesn't exist."
    }
  ]
}
 
Suggest Edits

Create Prefix

Requires admin permissions

 
posthttps://api.datacite.org/prefixes

Headers

Content-Type
string
 
curl --request POST \
  --url https://api.datacite.org/prefixes
var request = require("request");

var options = { method: 'POST', url: 'https://api.datacite.org/prefixes' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/prefixes")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.datacite.org/prefixes");

xhr.send(data);
import requests

url = "https://api.datacite.org/prefixes"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Delete Prefix

Requires admin permissions

 
deletehttps://api.datacite.org/prefixes/prefix

Path Params

prefix
string
required

DOI prefix in the format 10.xxxx

Headers

Content-Type
string
 
curl --request DELETE \
  --url https://api.datacite.org/prefixes/prefix
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.datacite.org/prefixes/prefix' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/prefixes/prefix")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.datacite.org/prefixes/prefix");

xhr.send(data);
import requests

url = "https://api.datacite.org/prefixes/prefix"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
 
 
Suggest Edits

List People

Returns information about a list of people.

 
gethttps://api.datacite.org/people

Query Params

page[size]
int32
page[number]
int32
sort
string

can be deposited, published, updated or score

order
string

can be asc or desc

 
curl https://api.datacite.org/people
A binary file was returned

You couldn't be authenticated

{
  "data": [
    
    {
      "id": "https://orcid.org/0000-0003-3173-8852",
      "type": "people",
      "attributes": {
        "given": "muna",
        "family": "A M Elnemr",
        "literal": "muna A M Elnemr",
        "orcid": "https://orcid.org/0000-0003-3173-8852",
        "github": null,
        "updated": "2018-01-24T11:36:09.000Z"
      }
    },
    {
      "id": "https://orcid.org/0000-0002-0320-360X",
      "type": "people",
      "attributes": {
        "given": "Dr Abba",
        "family": "A. Abba",
        "literal": "Dr Abba A. Abba",
        "orcid": "https://orcid.org/0000-0002-0320-360X",
        "github": null,
        "updated": "2018-05-11T18:19:20.000Z"
      }
    },
    {
      "id": "https://orcid.org/0000-0002-4166-4263",
      "type": "people",
      "attributes": {
        "given": "Sreejith",
        "family": "A. G.",
        "literal": "Sreejith A. G.",
        "orcid": "https://orcid.org/0000-0002-4166-4263",
        "github": null,
        "updated": "2016-11-01T04:46:18.000Z"
      }
    }
  ],
  "links": {
    "self": "https://api.datacite.org/people?page%5Bnumber%5D=1&page%5Bsize%5D=25",
    "first": "https://api.datacite.org/people?page%5Bnumber%5D=1&page%5Bsize%5D=25",
    "prev": null,
    "next": "https://api.datacite.org/people?page%5Bnumber%5D=2&page%5Bsize%5D=25",
    "last": "https://api.datacite.org/people?page%5Bnumber%5D=2498&page%5Bsize%5D=25"
  },
  "meta": {
    "total": 62432,
    "total-pages": 2498,
    "page": 1
  }
}
{
  "errors": [
    {
      "status": "404",
      "title": "The page you are looking for doesn't exist."
    }
  ]
}
 
Suggest Edits

Get Person

Returns information about a person.

 
gethttps://api.datacite.org/people/orcid

Path Params

orcid
string
required

Headers

Content-Type
string
 
curl https://api.datacite.org/people/0000-0003-1419-2405
A binary file was returned

You couldn't be authenticated

 to examples
{
  "data": {
    "id": "0000-0003-1419-2405",
    "type": "people",
    "attributes": {
      "given": "Martin",
      "family": "Fenner",
      "literal": "Martin Fenner",
      "orcid": "https://orcid.org/0000-0003-1419-2405",
      "github": "mfenner",
      "updated": "2018-08-13T08:46:00.000Z"
    }
  }
}
{
  "errors": [
    {
      "status": "404",
      "title": "The page you are looking for doesn't exist."
    }
  ]
}
 
Suggest Edits

Usage Reports

 

The DataCite REST API provides usage reports in SUSHI format. The API closely follows the RESEARCH_DATA_SUSHI specification.

 
Suggest Edits

List Reports

 
get/reports

Query Params

created-by
string

The creator of the report

client-id
string

The client ID of the report creator

year
string

The year the report was created

 
curl --request GET \
  --url https://api.test.datacite.org/reports
require 'uri'
require 'net/http'

url = URI("https://api.test.datacite.org/reports")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.test.datacite.org/reports"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Get Report

 
get/reports/report_id

Path Params

report_id
string
required

The report ID is a UUID

 
curl --request GET \
  --url https://api.test.datacite.org/reports/21fd2e8e-5481-4bbd-b2ef-742d8b270a66
require 'uri'
require 'net/http'

url = URI("https://api.test.datacite.org/reports")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.test.datacite.org/reports"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Create Report

 
post/reports

Body Params

json

Headers

Content-Type
string
Accept
string
 
curl --request POST \
  --url https://api.test.datacite.org/reports
require 'uri'
require 'net/http'

url = URI("https://api.test.datacite.org/reports")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.test.datacite.org/reports"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Update Report

 
put/reports/report_id

Path Params

report_id
string
required

The UUID of the report

Body Params

json

Headers

Content-Type
string
Accept
string
 
curl --request POST \
  --url https://api.test.datacite.org/reports
require 'uri'
require 'net/http'

url = URI("https://api.test.datacite.org/reports")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.test.datacite.org/reports"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Event Data

 

The DataCite REST API provides a query API for the Event Data service. Event Data is a joint service by Crossref and Datacite to collect and expose links to Crossref and DataCite DOIs.

 
Suggest Edits

List Events

List Event Data events, optionally filtered by one or more query parameters

 
gethttps://api.datacite.org/events

Query Params

query
string

Query for any event information

subj-id
string

Filter by subj-id

obj-id
string

Filter by obj-id

doi
string

Filter by DOI in subj-id or obj-id

prefix
string

Filter by DOI prefix of subj-id or obj-id

source-id
string

Filter by source

relation-type-id
string

Filter by relation type

registrant-id
string

Filter by Crossref or DataCite ID (e.g. crossref.340 or datacite.dryad.dryad)

subtype
string

Filter by subtype (e.g. dataset)

citation-type
string

Filter by subtype pair (e.g. dataset-scholarly-article)

year-month
string

Filter by year and month when event occurred

Headers

Content-Type
string

Please use the Event Data Query API Guide for more information about query filters.

curl https://api.datacite.org/events
A binary file was returned

You couldn't be authenticated

{
  "data": [
    {
      "id": "c2ecf7fe-6989-46eb-8bef-18535c0340f5",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/44eh-nrw4",
        "obj-id": "https://doi.org/10.5438/0000-00ss",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "is-part-of",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2017-05-17T17:58:07.000Z",
        "timestamp": "2018-08-14T20:03:11.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "9299df92-eeb7-4648-aff2-1e8cdba1e946",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/fje8-da83",
        "obj-id": "https://doi.org/10.5438/0000-00ss",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "is-part-of",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-04-30T17:39:51.000Z",
        "timestamp": "2018-08-14T20:43:07.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "f273c9bb-be59-4d8f-a9b7-72b365fe9856",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/h16y-3d72",
        "obj-id": "https://doi.org/10.1511/2014.106.6",
        "message-action": "create",
        "source-token": "28276d12-b320-41ba-9272-bb0adc3466ff",
        "relation-type-id": "references",
        "source-id": "datacite-crossref",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-06-01T20:36:52.000Z",
        "timestamp": "2018-08-14T21:52:19.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "d8a4d23b-7dbc-4f36-b0b0-24ed46a3b032",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/h16y-3d72",
        "obj-id": "https://doi.org/10.1056/nejmsb1616595",
        "message-action": "create",
        "source-token": "28276d12-b320-41ba-9272-bb0adc3466ff",
        "relation-type-id": "references",
        "source-id": "datacite-crossref",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-06-01T20:36:52.000Z",
        "timestamp": "2018-08-14T21:52:19.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "c9318a3f-19f1-4e0e-8141-19435aaf97aa",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/h16y-3d72",
        "obj-id": "https://doi.org/10.5438/0000-00ss",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "is-part-of",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-06-01T20:36:52.000Z",
        "timestamp": "2018-08-14T21:52:19.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "a77a52a1-45dd-497b-b230-ab2339e5fa0e",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/h16y-3d72",
        "obj-id": "https://doi.org/10.5281/zenodo.1063636",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "references",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-06-01T20:36:52.000Z",
        "timestamp": "2018-08-14T21:52:19.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "68670232-9cc0-4c90-8263-5a5468773109",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/h16y-3d72",
        "obj-id": "https://doi.org/10.25490/a97f-egyk",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "references",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-06-01T20:36:52.000Z",
        "timestamp": "2018-08-14T21:52:20.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "c5be6e48-5f4e-4195-bf92-d05774afc1d9",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/h16y-3d72",
        "obj-id": "https://doi.org/10.1371/journal.pone.0063184",
        "message-action": "create",
        "source-token": "28276d12-b320-41ba-9272-bb0adc3466ff",
        "relation-type-id": "references",
        "source-id": "datacite-crossref",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-06-01T20:36:52.000Z",
        "timestamp": "2018-08-14T21:52:20.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "a2f8d0fb-7a87-499f-aa42-0464d7211881",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/h16y-3d72",
        "obj-id": "https://doi.org/10.5438/f17b-45vz",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "references",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-06-01T20:36:52.000Z",
        "timestamp": "2018-08-14T21:52:20.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "b85a7d15-8b81-43ff-bd4a-c4afc1d9e5ce",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/h16y-3d72",
        "obj-id": "https://doi.org/10.5438/0014",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "references",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-06-01T20:36:52.000Z",
        "timestamp": "2018-08-14T21:52:20.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "80ebe913-d617-4a26-bf0a-fb06133fd0a8",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/4dcz-de44",
        "obj-id": "https://doi.org/10.5438/0000-00ss",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "is-part-of",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-06-12T05:55:54.000Z",
        "timestamp": "2018-08-14T21:52:49.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "d60e20f3-346b-484a-ac4d-04eb8f41ebb3",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/pre3-2f25",
        "obj-id": "https://doi.org/10.5438/0000-00ss",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "is-part-of",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-06-08T08:39:06.000Z",
        "timestamp": "2018-08-14T22:02:16.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "e272a587-6e22-45ec-aa6c-9eb13ac74473",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/0014",
        "obj-id": "https://doi.org/10.5438/0012",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "is-new-version-of",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2017-10-23T12:39:03.000Z",
        "timestamp": "2018-08-14T22:31:31.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "7724a2ab-da4c-4d76-8624-cd1d4fce86bd",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/0014",
        "obj-id": "https://doi.org/10.5438/0015",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "documents",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2017-10-23T12:39:03.000Z",
        "timestamp": "2018-08-14T22:31:31.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "8a10faf0-28dd-45ef-bcb8-f363c27b8e64",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/0015",
        "obj-id": "https://doi.org/10.5438/0014",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "is-documented-by",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-03-03T11:58:09.000Z",
        "timestamp": "2018-08-14T22:43:15.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "9f64bf32-ce73-4b91-8e9d-b0bb8bb662f3",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.5438/0015",
        "obj-id": "https://doi.org/10.5438/0013",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "is-new-version-of",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-03-03T11:58:09.000Z",
        "timestamp": "2018-08-14T22:43:16.000Z",
        "subj": {},
        "obj": {}
      }
    },
    {
      "id": "82717a1d-759b-4901-9645-0efa71ece940",
      "type": "events",
      "attributes": {
        "subj-id": "https://doi.org/10.4232/10.fisuzida2015.2",
        "obj-id": "https://doi.org/10.5438/0008",
        "message-action": "create",
        "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
        "relation-type-id": "references",
        "source-id": "datacite-related",
        "total": 1,
        "license": "https://creativecommons.org/publicdomain/zero/1.0/",
        "occurred-at": "2018-03-01T12:34:48.000Z",
        "timestamp": "2018-08-14T23:08:43.000Z",
        "subj": {},
        "obj": {}
      }
    }
  ],
  "meta": {
    "total": 17,
    "total_pages": 1,
    "sources": [
      {
        "id": "datacite-related",
        "title": "DataCite Related Identifiers",
        "count": 14
      },
      {
        "id": "datacite-crossref",
        "title": "DataCite to Crossref",
        "count": 3
      }
    ],
    "prefixes": [
      {
        "id": "10.5438",
        "title": "10.5438",
        "count": 17
      },
      {
        "id": "10.1056",
        "title": "10.1056",
        "count": 1
      },
      {
        "id": "10.1371",
        "title": "10.1371",
        "count": 1
      },
      {
        "id": "10.1511",
        "title": "10.1511",
        "count": 1
      },
      {
        "id": "10.25490",
        "title": "10.25490",
        "count": 1
      },
      {
        "id": "10.4232",
        "title": "10.4232",
        "count": 1
      },
      {
        "id": "10.5281",
        "title": "10.5281",
        "count": 1
      }
    ],
    "relation_types": [
      {
        "id": "references",
        "title": "references",
        "count": 8,
        "year-months": [
          {
            "id": "2018-03",
            "title": "March 2018",
            "sum": 1
          },
          {
            "id": "2018-06",
            "title": "June 2018",
            "sum": 7
          }
        ]
      },
      {
        "id": "is-part-of",
        "title": "is-part-of",
        "count": 5,
        "year-months": [
          {
            "id": "2017-05",
            "title": "May 2017",
            "sum": 1
          },
          {
            "id": "2018-04",
            "title": "April 2018",
            "sum": 1
          },
          {
            "id": "2018-06",
            "title": "June 2018",
            "sum": 3
          }
        ]
      },
      {
        "id": "is-new-version-of",
        "title": "is-new-version-of",
        "count": 2,
        "year-months": [
          {
            "id": "2017-10",
            "title": "October 2017",
            "sum": 1
          },
          {
            "id": "2018-03",
            "title": "March 2018",
            "sum": 1
          }
        ]
      },
      {
        "id": "documents",
        "title": "documents",
        "count": 1,
        "year-months": [
          {
            "id": "2017-10",
            "title": "October 2017",
            "sum": 1
          }
        ]
      },
      {
        "id": "is-documented-by",
        "title": "is-documented-by",
        "count": 1,
        "year-months": [
          {
            "id": "2018-03",
            "title": "March 2018",
            "sum": 1
          }
        ]
      }
    ]
  },
  "links": {
    "self": "https://api.datacite.org/events?prefix=10.5438",
    "next": "https://api.datacite.org/events?page%5Bcursor%5D=1534288123000&prefix=10.5438"
  }
}
 
Suggest Edits

Get Event

Get a single Event Data event

 
gethttps://api.datacite.org/events/id

Path Params

id
string
required

ID of the event (a UUID)

Headers

Content-Type
string
 
curl https://api.datacite.org/events/c2ecf7fe-6989-46eb-8bef-18535c0340f5
A binary file was returned

You couldn't be authenticated

{
  "data": {
    "id": "c2ecf7fe-6989-46eb-8bef-18535c0340f5",
    "type": "events",
    "attributes": {
      "subj-id": "https://doi.org/10.5438/44eh-nrw4",
      "obj-id": "https://doi.org/10.5438/0000-00ss",
      "message-action": "create",
      "source-token": "29a9a478-518f-4cbd-a133-a0dcef63d547",
      "relation-type-id": "is-part-of",
      "source-id": "datacite-related",
      "total": 1,
      "license": "https://creativecommons.org/publicdomain/zero/1.0/",
      "occurred-at": "2017-05-17T17:58:07.000Z",
      "timestamp": "2018-08-14T20:03:11.000Z",
      "subj": {},
      "obj": {}
    }
  }
}
{
  "errors": [
    {
      "status": "404",
      "title": "The resource you are looking for doesn't exist."
    }
  ]
}
 
Suggest Edits

Create Event

Create an Event Data event. Requires admin permission.

 
posthttps://api.datacite.org/events

Query Params

uuid
string

The ID for the event

subj-id
string
obj-id
string
subj
object
 
obj
object
 
source-id
string
source-token
string
relation-type-id
string
message-action
string

One of "create" or "delete"

callback
string

Optional URL of callback webhook

total
int32
license
string
occurred-at
date-time

Headers

Content-Type
string
 
curl --request POST \
  --url https://api.datacite.org/events
var request = require("request");

var options = { method: 'POST', url: 'https://api.datacite.org/events' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.datacite.org/events");

xhr.send(data);
import requests

url = "https://api.datacite.org/events"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Update Event

Upsert (update or create) an Event Data event. Requires admin permission.

 
puthttps://api.datacite.org/events/id

Path Params

id
string
required

ID of the event (a UUID)

Headers

Content-Type
string
 
curl --request PUT \
  --url https://api.datacite.org/events/id
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.datacite.org/events/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/events/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.datacite.org/events/id");

xhr.send(data);
import requests

url = "https://api.datacite.org/events/id"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Delete Event

Delete an Event Data event. Requires admin permission.

 
deletehttps://api.datacite.org/events/id

Path Params

id
string
required

ID of the event (a UUID)

Headers

Content-Type
string
 
curl --request DELETE \
  --url https://api.datacite.org/events/id
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.datacite.org/events/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.datacite.org/events/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.datacite.org/events/id");

xhr.send(data);
import requests

url = "https://api.datacite.org/events/id"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Other Resources

 
  • DataCite web pages (currently only the DataCite blog)
  • milestones and user stories used in the DataCite product roadmap.
 
Suggest Edits

List Resource Types

 
gethttps://api.datacite.org/resource-types

Headers

Content-Type
string
 
curl https://api.datacite.org/resource-types
A binary file was returned

You couldn't be authenticated

{
  "data": [
    {
      "id": "audiovisual",
      "type": "resource-types",
      "attributes": {
        "title": "Audiovisual",
        "updated": "2016-09-21T00:00:00Z"
      }
    },
    {
      "id": "collection",
      "type": "resource-types",
      "attributes": {
        "title": "Collection",
        "updated": "2016-09-21T00:00:00Z"
      }
    },
    {
      "id": "data-paper",
      "type": "resource-types",
      "attributes": {
        "title": "DataPaper",
        "updated": "2016-09-21T00:00:00Z"
      }
    }
  ],
  "meta": {
    "total": 3,
    "total-pages": 1,
    "page": 1
  }
}
 
Suggest Edits

Get Resource Type

 
gethttps://api.datacite.org/resource-types/id

Path Params

id
string
required

Headers

Content-Type
string
 
curl https://api.datacite.org/resource-types/dataset
A binary file was returned

You couldn't be authenticated

{
  "data": {
    "id": "dataset",
    "type": "resource-types",
    "attributes": {
      "title": "Dataset",
      "updated": "2016-09-21T00:00:00Z"
    }
  }
}
{
  "errors": [
    {
      "status": "404",
      "title": "The resource you are looking for doesn't exist."
    }
  ]
}
 
Suggest Edits

List Pages

List DataCite web pages (currently only blog posts)

 
gethttps://api.datacite.org/pages

Headers

Content-Type
string
 
curl https://api.datacite.org/pages
A binary file was returned

You couldn't be authenticated

{  
  "data": [
    {
      "id": "https://doi.org/10.5438/z5w2-gk80",
      "type": "page",
      "attributes": {
        "id": "https://doi.org/10.5438/z5w2-gk80",
        "author": [
          {
            "given": "Ted",
            "family": "Habermann",
            "orcid": "https://orcid.org/0000-0003-3585-6733"
          }
        ],
        "title": "Metrics for Characterizing Metadata Collections",
        "container-title": {
          "@type": "Organization",
          "name": "DataCite"
        },
        "description": "<em>This is a guest blog post written by Ted Habermann, Director of Business and Community Development for The HDF Group. Dr. Habermann is currently leading International Standards Organization (ISO) projects developing XML Schema and transforms for ISO...</em>",
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "url": "https://blog.datacite.org/metrics-for-metadata/",
        "image-url": "https://blog.datacite.org/images/uploads/habermann-blogpost.jpg",
        "tags": [
          "metadata",
          "datacite",
          "featured"
        ],
        "issued": "2018-08-15",
        "updated": "2018-08-15"
      }
    },
    {
      "id": "https://doi.org/10.5438/67sj-4y05",
      "type": "page",
      "attributes": {
        "id": "https://doi.org/10.5438/67sj-4y05",
        "author": [
          {
            "given": "John",
            "family": "Chodacki",
            "orcid": "https://orcid.org/0000-0002-7378-2408"
          },
          {
            "given": "Patricia",
            "family": "Cruse",
            "orcid": "https://orcid.org/0000-0002-9300-5278"
          },
          {
            "given": "Ed",
            "family": "Pentz",
            "orcid": "https://orcid.org/0000-0002-5993-8592"
          },
          {
            "given": "Laure",
            "family": "Haak",
            "orcid": "https://orcid.org/0000-0001-5109-3700"
          }
        ],
        "title": "Org ID: a recap and a hint of things to come",
        "container-title": {
          "@type": "Organization",
          "name": "DataCite"
        },
        "description": "Over the past couple of years, a group of organizations with a shared purpose – California Digital Library, Crossref, DataCite, and ORCID – invested our time and energy into launching the Org ID initiative, with the goal of defining requirements for...",
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "url": "https://blog.datacite.org/org-id-recap-and-hint-of-things/",
        "image-url": "https://blog.datacite.org/images/uploads/doors.jpg",
        "tags": [
          "organization identifier",
          "featured"
        ],
        "issued": "2018-08-02",
        "updated": "2018-08-02"
      }
    },
    {
      "id": "https://doi.org/10.5438/8syz-ym47",
      "type": "page",
      "attributes": {
        "id": "https://doi.org/10.5438/8syz-ym47",
        "author": [
          {
            "given": "Patricia",
            "family": "Cruse",
            "orcid": "https://orcid.org/0000-0002-9300-5278"
          }
        ],
        "title": "Welcome Helena Cousijn - DataCite’s Director of Community Engagement and Communications",
        "container-title": {
          "@type": "Organization",
          "name": "DataCite"
        },
        "description": "We’re pleased to announce that Helena Cousijn has joined our team, bringing a wealth of experience and knowledge to her position as DataCite’s Director of Community Engagement and Communications. Prior to joining DataCite, Helena worked as Senior Product...",
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "url": "https://blog.datacite.org/welcome-helena-cousijn/",
        "image-url": null,
        "tags": [
          "datacite"
        ],
        "issued": "2018-06-18",
        "updated": "2018-06-18"
      }
    }
  ],
  "meta": {
    "total": 99,
    "total-pages": 4,
    "page": 1,
    "tags": {
      "datacite": 23,
      "featured": 17,
      "metadata": 14,
      "orcid": 14,
      "thor": 13,
      "doi": 11,
      "crossref": 7,
      "data-level metrics": 6,
      "rda": 6,
      "re3data": 6,
      "citation": 6,
      "infrastructure": 6,
      "organization identifier": 4,
      "members": 4,
      "software citation": 4
    }
  }
}
 
Suggest Edits

List Milestones

List milestones from DataCite product roadmap

 
gethttps://api.datacite.org/milestones

Headers

Content-Type
string
 
curl https://api.datacite.org/milestones
A binary file was returned

You couldn't be authenticated

{
  "data": [
    {
      "id": "27",
      "type": "milestone",
      "attributes": {
        "id": 27,
        "url": "https://github.com/datacite/datacite/milestone/27",
        "title": "Upgraded database infrastructure",
        "description": "<p>We have consolidated all our databases into two mirrored data centers hosted in the DataCite virtual private cloud. We have also upgraded all databases to MySQL 5.6.</p>\n\n<p>These changes simplify data management for DataCite services, increase reliability and provide increased security for DataCite data.</p>\n",
        "open-issues": 0,
        "closed-issues": 0,
        "year": 2017,
        "quarter": 1,
        "created": "2017-06-08T05:20:06Z",
        "updated": "2017-06-08T05:20:12Z",
        "closed": "2017-06-08T05:20:12Z",
        "released": "2017-01-22T08:00:00Z"
      }
    },
    {
      "id": "25",
      "type": "milestone",
      "attributes": {
        "id": 25,
        "url": "https://github.com/datacite/datacite/milestone/25",
        "title": "Added sitemap for Search",
        "description": "<p>A sitemap provides a list of all pages that indexers can use to harvest links. For a search portal this will greatly improve the indexing in search engines such as Google and Bing. We also embedded schema.org metadata in all pages for DOIs, again helping with indexing by search engines.</p>\n",
        "open-issues": 0,
        "closed-issues": 0,
        "year": 2017,
        "quarter": 1,
        "created": "2017-06-08T05:01:20Z",
        "updated": "2017-06-13T07:40:55Z",
        "closed": "2017-06-08T05:01:27Z",
        "released": "2017-02-28T08:00:00Z"
      }
    },
    {
      "id": "26",
      "type": "milestone",
      "attributes": {
        "id": 26,
        "url": "https://github.com/datacite/datacite/milestone/26",
        "title": "Launched Event Data Crossref agent",
        "description": "<p>We have launched the Event Data Crossref agent, which automatically extracts all Crossref DOIs from newly registered or updated metadata, and sends these DataCite DOI -&gt; Crossref DOI links to the Event Data backend service jointly run by Crossref and DataCite. </p>\n\n<p>We are now collecting all DataCite DOI -&gt; Crossref DOI links in a central service that will also host Crossref DOI -&gt; DataCite DOI links provided by Crossref, and going forward can build user-facing services using these data.</p>\n\n<p>This work was done as part of the DataCite contribution to the Research Data Alliance (RDA) Scholarly Link Exchange Working Group. </p>\n",
        "open-issues": 0,
        "closed-issues": 0,
        "year": 2017,
        "quarter": 1,
        "created": "2017-06-08T05:08:03Z",
        "updated": "2017-06-13T07:41:23Z",
        "closed": "2017-06-08T05:08:26Z",
        "released": "2017-03-11T08:00:00Z"
      }
    }
  ],
  "meta": {
    "total": 3
  }
}
 
Suggest Edits

Get Milestone

Get milestone from DataCite product roadmap

 
gethttps://api.datacite.org/milestones/id

Path Params

id
string
required

Headers

Content-Type
string
 
curl https://api.datacite.org/milestones/25
A binary file was returned

You couldn't be authenticated

{
  "data": {
    "id": "25",
    "type": "milestone",
    "attributes": {
      "id": 25,
      "url": "https://github.com/datacite/datacite/milestone/25",
      "title": "Added sitemap for Search",
      "description": "<p>A sitemap provides a list of all pages that indexers can use to harvest links. For a search portal this will greatly improve the indexing in search engines such as Google and Bing. We also embedded schema.org metadata in all pages for DOIs, again helping with indexing by search engines.</p>\n",
      "open-issues": 0,
      "closed-issues": 0,
      "year": 2017,
      "quarter": 1,
      "created": "2017-06-08T05:01:20Z",
      "updated": "2017-06-13T07:40:55Z",
      "closed": "2017-06-08T05:01:27Z",
      "released": "2017-02-28T08:00:00Z"
    }
  }
}
{
  "errors": [
    {
      "status": "404",
      "title": "The resource you are looking for doesn't exist."
    }
  ]
}
 
Suggest Edits

List User Stories

List user stories

 
gethttps://api.datacite.org/user-stories

Headers

Content-Type
string
 
curl https://api.datacite.org/user-stories
A binary file was returned

You couldn't be authenticated

{
  "data": [
    {
      "id": "361",
      "type": "user-stories",
      "attributes": {
        "id": 361,
        "url": "https://github.com/datacite/datacite/issues/361",
        "title": "Add labels for prefixes",
        "description": "<p>As a client I want to be able to add a label to each of my prefixes, so I that I can keep track of what the prefix applies to, like one for a journal, one for ETDs, one for regular pubs, etc.</p>\n\n<p><img src=\"https://frontapp.com/assets/img/icons/favicon-32x32.png\" height=\"16\" width=\"16\" alt=\"Front logo\" /> <a href=\"https://app.frontapp.com/open/top_cfy3\">Front conversations</a></p>\n",
        "comments": 0,
        "projects": [
          "DOI Fabrica"
        ],
        "stakeholders": [],
        "state": "planning",
        "inactive": [],
        "milestone": null,
        "created": "2018-05-10T17:35:00Z",
        "updated": "2018-06-28T15:50:47Z",
        "closed": null
      }
    },
    {
      "id": "357",
      "type": "user-stories",
      "attributes": {
        "id": 357,
        "url": "https://github.com/datacite/datacite/issues/357",
        "title": "Logo upload",
        "description": "<p>As a provider, I want to upload my logo in DOI Fabrica, so that it can be seen on the DataCite member page.</p>\n",
        "comments": 0,
        "projects": [],
        "stakeholders": [
          "member"
        ],
        "state": "planning",
        "inactive": [],
        "milestone": "New DOI registration form web interface",
        "created": "2018-05-04T17:45:18Z",
        "updated": "2018-05-04T17:46:04Z",
        "closed": null
      }
    },
    {
      "id": "346",
      "type": "user-stories",
      "attributes": {
        "id": 346,
        "url": "https://github.com/datacite/datacite/issues/346",
        "title": "Access to previous metadata versions",
        "description": "<p>As a client, I want to have easy access to previous metadata versions for a DOI so that I can make comparisons between versions or investigate potential errors. </p>\n\n<p>child of datacite/datacite#437.</p>\n",
        "comments": 0,
        "projects": [
          "DOI Fabrica"
        ],
        "stakeholders": [
          "data center"
        ],
        "state": "planning",
        "inactive": [],
        "milestone": null,
        "created": "2018-04-10T08:24:36Z",
        "updated": "2018-08-06T22:40:39Z",
        "closed": null
      }
    }
  ],
  "meta": {
    "total": 51,
    "projects": {
      "DOI Fabrica": 13,
      "FREYA": 5,
      "Make Data Count": 2
    },
    "milestones": {
      "Add DOI stats to DOI registration service": 6,
      "Develop new DOI Fabrica service": 5,
      "Status service improvements": 5,
      "New DOI registration form web interface": 2,
      "DOI registration testing": 2,
      "Integrate Event Data connections into DataCite Search": 2,
      "Bulk download of all public DOI metadata": 1,
      "Launch EZID-compatible API": 1,
      "New service status overview page": 1
    },
    "stakeholders": {
      "data center": 12,
      "member": 8,
      "national library": 3,
      "funder": 1
    },
    "state": {
      "discussion": 21,
      "planning": 12,
      "done": 17
    }
  }
}
 
Suggest Edits

Get User Story

 
gethttps://api.datacite.org/user-stories/id

Path Params

id
string
required

User story identifier, same as GitHub issue number for that user story

Headers

Content-Type
string
 
curl https://api.datacite.org/user-stories/361
A binary file was returned

You couldn't be authenticated

{
  "data": {
    "id": "361",
    "type": "user-stories",
    "attributes": {
      "id": 361,
      "url": "https://github.com/datacite/datacite/issues/361",
      "title": "Add labels for prefixes",
      "description": "<p>As a client I want to be able to add a label to each of my prefixes, so I that I can keep track of what the prefix applies to, like one for a journal, one for ETDs, one for regular pubs, etc.</p>\n\n<p><img src=\"https://frontapp.com/assets/img/icons/favicon-32x32.png\" height=\"16\" width=\"16\" alt=\"Front logo\" /> <a href=\"https://app.frontapp.com/open/top_cfy3\">Front conversations</a></p>\n",
      "comments": 0,
      "projects": [
        "DOI Fabrica"
      ],
      "stakeholders": [],
      "state": "planning",
      "inactive": [],
      "milestone": null,
      "created": "2018-05-10T17:35:00Z",
      "updated": "2018-06-28T15:50:47Z",
      "closed": null
    }
  }
}
{
  "errors": [
    {
      "status": "404",
      "title": "The resource you are looking for doesn't exist."
    }
  ]
}
 
 

Version History

  • v.2: September 1, 2011
  • v3: July 16, 2018

Overview

The MDS (Metadata Store) API can be used to register and manage DOI names and associated metadata. The API requires authentication and is available to DataCite providers and their clients. The basic API endpoint is at https://mds.datacite.org, with the following three resource endpoints:

  • https://mds.datacite.org/doi
  • https://mds.datacite.org/metadata
  • https://mds.datacite.org/media

Authentication

All requests to the MDS API require authentication. For this reason, only traffic via a secure connection (HTTPS) is supported. The DataCite Metadata Store (MDS) uses HTTP Basic authentication.

To start interacting with our DataCite Metadata Store (MDS) API you must request an account:

  • If you are a DataCite Provider, DataCite will provide you a username and password
  • If you are a DataCite Client, your Provider will provide you a username and password
  • If you are not yet a DataCite Provider or Client, you can obtain a demo account

Remember that you will be allowed to register DOI names only under the prefixes that have been assigned to you.

API Response Codes

  • 200 OK - operation successful
  • 201 OK - content created
  • 204 No Content - DOI is known to MDS, but is not registered
  • 401 Unauthorized - no login
  • 403 Forbidden - login problem or DOI belongs to another party
  • 404 Not Found - DOI does not exist in our database
  • 422 Unprocessable Entity - metadata not validating against DataCite schema
  • 500 Internal Server Error - internal server error

Testing

There are three ways you can test the MDS without registering a permanent DOI:

Use draft DOIs

DOIs with registered metadata, but no URL registered, are in draft state, and can be deleted. Read more about DOI states here. Note that draft DOIs will behave like any other DOI, but will not be registered in the Handle system, our Search index, or any other DataCite service outside of DOI registration.

Use demo DOIs with prefix 10.5072

The special demo prefix 10.5072 is available to all clients. All DOIs with this prefix are draft DOIs. In addition, these DOIs can not be transitioned to other DOI states, and are automatically deleted after 30 days. All demo accounts use only the demo prefix.

Use the test MDS

The test MDS at https://mds.test.datacite.org is available to all providers and clients, but special registration is necessary. Please contact [DataCite Support](mailto:support@datacite.org}. DOIs registered in the test MDS will not resolve using the doi.org proxy.

Your own prefixes should not be used for testing DOIs in the production MDS service.

 
Suggest Edits

Get URL for DOI

This request returns an URL associated with a given DOI.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://mds.test.datacite.org/doi/doi

Path Params

doi
string
required
 
curl --user USERNAME:PASSWORD https://mds.test.datacite.org/doi/10.5438/0012 
A binary file was returned

You couldn't be authenticated

https://schema.datacite.org/meta/kernel-4.0/index.html
An Authentication object was not found in the SecurityContext
DOI not found
 
Suggest Edits

List all DOIs

This request returns a list of all DOIs for the requesting datacentre. There is no guaranteed order.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://mds.test.datacite.org/doi
 
curl --user USERNAME:PASSWORD https://mds.test.datacite.org/doi 
A binary file was returned

You couldn't be authenticated

10.23725/0000-03VC
10.23725/0000-0A53
10.23725/GQZDGNZW
 
Suggest Edits

Create DOI

Will register a new DOI if the specified DOI doesn’t exist. This method will attempt to update the URL if you specify an existing DOI. Creating a DOI requires authentication credentials.
Note that metadata must be registered for a DOI first, using the create metadata call

 

Basic Auth

 Authentication is required for this endpoint.
puthttps://mds.test.datacite.org/doi/doi

Path Params

doi
string
required

Form Data

string

doi and url separated by newline, e.g. "doi=10.5072/0000-03VC\nurl=http://example.org/"

Headers

Content-Type
string
required
charset
string
required

The MDS API also accepts POST requests using the same format.

curl  -X PUT -H "Content-Type: text/plain;charset=UTF-8" --user USERNAME:PASSWORD --data $'doi=10.5072/0000-03VC\nurl=http://example.org/' https://mds.test.datacite.org/doi/10.5072/0000-03VC 
A binary file was returned

You couldn't be authenticated

 
Suggest Edits

Delete DOI

Deletes a DOI if DOI is in draft status.

 

Basic Auth

 Authentication is required for this endpoint.
deletehttps://mds.test.datacite.org/doi/doi

Path Params

doi
string
required

Headers

Content-Type
string
charset
string
 
curl  -X DELETE -H "Content-Type: text/plain;charset=UTF-8" --user USERNAME:PASSWORD https://mds.test.datacite.org/doi/10.5072/0000-03VC 
A binary file was returned

You couldn't be authenticated

 
Suggest Edits

Get Metadata for DOI

This request returns the most recent version of metadata associated with a given DOI.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://mds.test.datacite.org/metadata/doi

Path Params

doi
string
required

Headers

Accept
string
required
 
curl -H "Content-Type: application/xml" --user USERNAME:PASSWORD https://mds.test.datacite.org/metadata/10.5072/0000-03VC 
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="UTF-8"?>
<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
  <identifier identifierType="DOI">10.5072/0000-03VC</identifier>
  <creators>
    <creator>
      <creatorName>Miller, Elizabeth</creatorName>
      <givenName>Elizabeth</givenName>
      <familyName>Miller</familyName>
      <nameIdentifier schemeURI="http://orcid.org/" nameIdentifierScheme="ORCID">0000-0001-5000-0007</nameIdentifier>
    </creator>
  </creators>
  <titles>
    <title>Full DataCite XML Example</title>
  </titles>
  <publisher>DataCite</publisher>
  <publicationYear>2014</publicationYear>
  <resourceType resourceTypeGeneral="Software">XML</resourceType>
  <dates/>
</resource>
 
Suggest Edits

Create Metadata for DOI

This request stores a new version of metadata. The request body must contain valid DataCite XML, or another supported metadata format. Authentication credentials are required.

 

Basic Auth

 Authentication is required for this endpoint.
puthttps://mds.test.datacite.org/metadata/doi

Path Params

doi
string
required

DOI. Auto-generates random DOI if only prefix is provided.

Form Data

string

Metadata in DataCite XML, or another supported metadata format.

Headers

Content-Type
string
required
charset
string
required

The MDS API also accepts POST requests using the same format.

curl -X PUT -H "Content-Type:application/xml;charset=UTF-8" -i --user USERNAME:PASSWORD  -d @10.5072/0000-03VC.xml https://mds.test.datacite.org/metadata/10.5072/0000-03VC
A binary file was returned

You couldn't be authenticated

OK (10.5072/0000-03VC)
 
Suggest Edits

Delete Metadata for DOI

This request marks a dataset as inactive. To activate it again, PUT new metadata.

 

Basic Auth

 Authentication is required for this endpoint.
deletehttps://mds.test.datacite.org/metadata/doi

Path Params

doi
string
required
 
curl -X DELETE --user USERNAME:PASSWORD  https://mds.test.datacite.org/metadata/10.5072/0000-03VC 
A binary file was returned

You couldn't be authenticated

 
Suggest Edits

Get Media for DOI

This request returns list of pairs of media type and URLs associated with a given DOI.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://mds.test.datacite.org/media/doi

Path Params

doi
string
required

Headers

head
string
 
curl --user USERNAME:PASSWORD https://mds.test.datacite.org/media/10.5072/0000-03VC 
A binary file was returned

You couldn't be authenticated

application/pdf=http://www.datacite.org/cirneco-test.pdf
 
Suggest Edits

Create Media for DOI

POST will add media type/URLs pairs to a DOI. Standard domain restrictions check will be performed.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://mds.test.datacite.org/media/doi

Path Params

doi
string
required

Headers

Content-Type
string
required
charset
string
required
 
curl -X POST -H "Content-Type: text/plain" --user USERNAME:PASSWORD --data "application/pdf=http://www.datacite.org/cirneco-test.pdf" https://mds.datacite.org/media/10.5072/0000-03VC 
A binary file was returned

You couldn't be authenticated

 
Suggest Edits

Delete Media for DOI

DELETE will delete media type/URLs pair for a DOI.

 

Basic Auth

 Authentication is required for this endpoint.
deletehttps://mds.test.datacite.org/doi/doi/media/id

Path Params

doi
string
required
id
string
required

Headers

Content-Type
string
 
curl -X DELETE -H "Content-Type: text/plain" --user USERNAME:PASSWORD https://mds.test.datacite.org/doi/10.5072/0000-03VC/media/0000-0000-0000-n070
A binary file was returned

You couldn't be authenticated

Try the API to see results
 

The DataCite EZ API allows registration of DOIs and DOI metadata, and tries to be as compatible as possible with the EZID API from the California Digital Library. The service launched in March 2018. While we try to implement features added to the EZID service going forward, no guarantees are made doing so. Because of some fundamental differences between the services provided by EZID and DataCite, some functionalities make no sense as a DataCite service and have not been implemented, including

  • Registration of identifiers other than DataCite DOIs, including ARKs
  • Crossref registration

Some features have not yet been implemented as of March 2018, but are planned for Q1 and Q2 2018 (see DataCite roadmap for details):

  • Registration of metadata in other formats, e.g. Dublin Core
  • Tombstone page for all registered DOIs

Requests for the functionality of the EZID service not (yet) implemented will return appropriate error codes, e.g. a status 501 not implemented.

Some features of the DataCite service are not available in the EZID service, for example the following metadata profiles:

  • bibtex
  • ris
  • schema.org (use profile schema_org)
  • Citeproc JSON (using profile citeproc)

The crossref metadata profile will register a DataCite DOI using metadata in Crossref Unixref format instead of registering the DOI with Crossref.

The base URL of the service is https://ez.datacite.org.

API vs. UI

The EZID-compatible API provided by DataCite is complemented by the user interface of the DOI Fabrica service available at https://doi.datacite.org. The UI can be used to manage registered DOIs, and to reset the password.

Authentication

Most requests require authentication. The API supports HTTP Basic authentication, using the same username and password as for the Metadata Store (MDS) and DOI Fabrica service. With this method, the client supplies HTTP Basic authentication credentials on every request.

In contrast to the EZID API, the DataCite EZ API does not support one-time login via the /login path, with login credentials then stored in a session cookie. Instead, an error message will be returned.

For example, credentials for HTTP basic authentication can be added manually in Python as follows:

import base64, urllib2
r = urllib2.Request("https://ez.datacite.org/...")
r.add_header("Authorization", "Basic " + base64.b64encode("username:password"))

But most programming libraries provide higher-level support for authentication. For example, Python provides HTTPBasicAuthHandler:

import urllib2
h = urllib2.HTTPBasicAuthHandler()
h.add_password("ez.datacite.org", "https://ez.datacite.org", "username", "password")
o = urllib2.build_opener(h)
o.open("https://ez.datacite.org/...")

The downside of using higher-level authentication mechanisms is that they often do not supply credentials initially, but only in response to a challenge from the service, thus doubling the number of HTTP transactions.

To manually provide credentials in Java, using Apache Commons Codec to do the Base64 encoding:

import java.net.*;
import org.apache.commons.codec.binary.*;

URL u = new URL("https://ez.datacite.org.org/...);
URLConnection c = u.openConnection();
c.setRequestProperty("Accept", "text/plain");
c.setRequestProperty("Authorization", "Basic " +
  new String(Base64.encodeBase64("username:password".getBytes())));
c.connect();

Java also provides an Authenticator class:

import java.net.*;

class MyAuthenticator extends Authenticator {
  protected PasswordAuthentication getPasswordAuthentication () {
    return new PasswordAuthentication("username", "password".toCharArray());
  }
}

Authenticator.setDefault(new MyAuthenticator());

If authentication is required and credentials are either missing or invalid, the service returns a 401 HTTP status code and the status line "error: unauthorized" (see Error handling below). If authentication is successful but the request is still not authorized, the service returns a 403 HTTP status code and the status line "error: forbidden".

Request & response bodies

Request and response bodies are used to transmit identifier metadata. The HTTP content type for all bodies is "text/plain" using UTF-8 charset encoding. In request bodies, if no charset encoding is declared in the HTTP Content-Type header, it is assumed to be UTF-8.

The service's data model for metadata is a dictionary of element name/value pairs. The dictionary is single-valued: an element name may not be repeated. Names and values are strings. Leading and trailing whitespace in names and values is not significant. Neither element names nor element values may be empty. (When modifying an identifier, an uploaded empty value is treated as a command to delete the element entirely.)

Metadata dictionaries are serialized using a subset of A Name-Value Language (ANVL) rules:

  • One element name/value pair per line.
  • Names separated from values by colons.

For example:

who: Proust, Marcel
what: Remembrance of Things Past
when: 1922

In addition, two ANVL features may be used when uploading metadata to the service (but clients can safely assume that DataCite will never use these features when returning metadata):

  • A line beginning with a number sign ("#", U+0023) is a comment and will be ignored.
  • A line beginning with whitespace continues the previous line (the intervening line terminator and whitespace are converted to a single space).

For example:

# The following two elements are identical:
who: Proust,
  Marcel
who: Proust, Marcel

Care must be taken to escape structural characters that appear in element names and values, specifically, line terminators (both newlines ("\n", U+000A) and carriage returns ("\r", U+000D)) and, in element names, colons (":", U+003A). EZID employs percent-encoding as the escaping mechanism, and thus percent signs ("%", U+0025) must be escaped as well. In Python, a dictionary of Unicode metadata element names and values, metadata, is serialized into a UTF-8 encoded string, anvl, with the following code:

import re

def escape (s):
  return re.sub("[%:\r\n]", lambda c: "%%%02X" % ord(c.group(0)), s)

anvl = "\n".join("%s: %s" % (escape(name), escape(value)) for name,
  value in metadata.items()).encode("UTF-8")

Conversely, to parse a UTF-8 encoded string, anvl, producing a dictionary, metadata:

import re

def unescape (s):
  return re.sub("%([0-9A-Fa-f][0-9A-Fa-f])",
    lambda m: chr(int(m.group(1), 16)), s)

metadata = dict(tuple(unescape(v).strip() for v in l.split(":", 1)) \
  for l in anvl.decode("UTF-8").splitlines())

In Java, to serialize a HashMap of metadata element names and values, metadata, into an ANVL-formatted Unicode string, anvl:

import java.util.*;

String escape (String s) {
  return s.replace("%", "%25").replace("\n", "%0A").
    replace("\r", "%0D").replace(":", "%3A");
}

Iterator<Map.Entry<String, String>> i = metadata.entrySet().iterator();
StringBuffer b = new StringBuffer();
while (i.hasNext()) {
  Map.Entry<String, String> e = i.next();
  b.append(escape(e.getKey()) + ": " + escape(e.getValue()) + "\n");
}
String anvl = b.toString();

And conversely, to parse a Unicode ANVL-formatted string, anvl, producing a HashMap, metadata:

import java.util.*;

String unescape (String s) {
  StringBuffer b = new StringBuffer();
  int i;
  while ((i = s.indexOf("%")) >= 0) {
    b.append(s.substring(0, i));
    b.append((char) Integer.parseInt(s.substring(i+1, i+3), 16));
    s = s.substring(i+3);
  }
  b.append(s);
  return b.toString();
}

HashMap<String, String> metadata = new HashMap<String, String>();
for (String l : anvl.split("[\\r\\n]+")) {
  String[] kv = l.split(":", 2);
  metadata.put(unescape(kv[0]).trim(), unescape(kv[1]).trim());
}

The first line of an EZID response body is a status indicator consisting of "success" or "error", followed by a colon, followed by additional information. Two examples:

success: ark:/99999/fk4test
error: bad request - no such identifier

Error handling

An error is indicated by both an HTTP status code and an error status line of the form "error: reason". For example:

⇒ GET /id/doi:/10.5072/bogus HTTP/1.1
⇒ Host: ez.datacite.org

⇐ HTTP/1.1 400 BAD REQUEST
⇐ Content-Type: text/plain; charset=UTF-8
⇐ Content-Length: 39
⇐
⇐ error: bad request - no such identifier

Some programming libraries make it a little difficult to read the content following an error status code. For example, from Java, it is necessary to explicitly switch between the input and error streams based on the status code:

java.net.HttpURLConnection c;
java.io.InputStream s;
...
if (c.getResponseCode() < 400) {
  s = c.getInputStream();
} else {
  s = c.getErrorStream();
}
// read from s...

Ownership model

The service maintains ownership information about identifiers and uses that information to enforce access control.

The ownership model employed by DataCite is based on clients: each identifier is owned by one client. Permission to create identifiers is governed by the prefixes that have been assigned to a client by it's DOI Service Provider. But once created, permission to subsequently modify an identifier is governed solely by the identifier's ownership.

Clients in turn are managed by DOI service providers, including the assignment of prefixes and users to clients.

Identifier status

Each identifier in the service has a status. The status is recorded as the value of the "_status" reserved metadata element (see Internal metadata below) and may be one of:

  • public. The default value.
  • reserved. The identifier is known only to DataCite. This status may be used to reserve an identifier name within DataCite without advertising the identifier's existence to resolvers and other external services. A reserved identifier may be deleted.
  • unavailable. The identifier is public, but the object referenced by the identifier is not available. A reason for the object's unavailability may optionally follow the status separated by a pipe character ("|", U+007C), e.g., "unavailable | withdrawn by author". The identifier redirects to a "tombstone" page (an HTML page that displays the identifier's citation metadata and the reason for the object's unavailability) regardless of its target URL.

An identifier's status may be changed by setting a new value for the aforementioned "_status" metadata element. DataCite permits only certain status transitions:

  • A status of "reserved" may be specified only at identifier creation time.
  • A reserved identifier may be made public. At this time the identifier will be registered with resolvers and other external services.
  • A public identifier may be marked as unavailable. At this time the identifier will be removed from any external services.
  • An unavailable identifier may be returned to public status. At this time the identifier will be re-registered with resolvers and other external services.
 
Suggest Edits

Get Metadata for DOI

This request returns metadata for a given DOI.

 

Metadata can be retrieved for any existing identifier; no authentication is required. Simply issue a GET request to the identifier's URL.

⇒ GET /id/doi:10.5072/test9999 HTTP/1.1
⇒ Host: ez.datacite.org

⇐ HTTP/1.1 200 OK
⇐ Content-Type: text/plain; charset=UTF-8
⇐ Content-Length: 208
⇐
⇐ success: doi:10.5072/test9999
⇐ _created: 1300812337
⇐ _updated: 1300913550
⇐ _target: http://www.gutenberg.org/ebooks/7178
⇐ _profile: datacite

The first line of the response body is a status line. Assuming success, the remainder of the status line echoes the canonical form of the requested identifier.

The remaining lines are metadata element name/value pairs serialized per ANVL rules; see Request & response bodies above. The order of elements is undefined. Element names beginning with an underscore ("_", U+005F) are reserved for use by the system; their meanings are described in Internal metadata below. Some elements may be drawn from citation metadata standards; see Metadata profiles.

 
Suggest Edits

Create DOI

Will register a new DOI if the specified DOI doesn’t exist. Will not update an existing DOI, but will return an error.

 

An identifier can be "created" by sending a PUT request to the identifier's URL. Here, identifier creation means establishing a record of the identifier (to be successful, no such record can already exist). Authentication is required, and the user must have permission to create DOIs using the DOI prefix. Users can view the prefixes available to them by visiting the DOI Fabrica service and navigating to the Prefixes tab.

A request body is optional; if present, it defines the identifier's starting metadata. There are no restrictions on what metadata elements can be submitted, but a convention has been established for naming metadata elements, and the service has built-in support for certain sets of metadata elements; see Metadata profiles. A few of the internal service metadata elements may be set; see Internal metadata.

⇒ PUT /id/doi:10.5072/test9999 HTTP/1.1
⇒ Host: ez.datacite.org
⇒ Content-Type: text/plain; charset=UTF-8
⇒ Content-Length: 30
⇒
⇒ _target: https://ez.datacite.org/
⇒ _status: reserved

⇐ HTTP/1.1 201 CREATED
⇐ Content-Type: text/plain; charset=UTF-8
⇐ Content-Length: 27
⇐
⇐ success: doi:/10.5072/test9999

The return is a status line. If a DOI was created successfully, the normalized form of the identifier is returned as shown above.

 
Suggest Edits

Mint DOI

Will register a new DOI, but instead of supplying a complete identifier, the client specifies only a partial namespace (shoulder).

 

Minting an identifier is the same as creating an identifier, but instead of supplying a complete identifier, the client specifies only a namespace (or "shoulder") that forms the first part of the identifier's suffix, and the service generates an opaque, random string for the full identifier suffix. An identifier can be minted by sending a POST request to the URL https://ez.datacite.org/shoulder/myshoulder where myshoulder is the desired namespace.

⇒ POST /shoulder/doi:10.5072 HTTP/1.1
⇒ Host: ez.datacite.org
⇒ Content-Type: text/plain; charset=UTF-8
⇒ Content-Length: 30
⇒
⇒ _target: https://ez.datacite.org/
⇒ _status: reserved

⇐ HTTP/1.1 201 CREATED
⇐ Content-Type: text/plain; charset=UTF-8
⇐ Content-Length: 29
⇐
⇐ success: doi:10.5072/testc9cz3dh0

Aside from specifying a complete identifier versus specifying a shoulder only, the create and mint operations operate identically. Authentication is required to mint an identifier; namespace permission is required, and prefixes can be viewed in the DOI Fabrica service under the Prefixes tab. The request and response bodies are identical.

The service automatically embeds the newly-minted identifier in certain types of uploaded metadata. See Metadata profiles for when this is performed.

 
Suggest Edits

Modify DOI

 

An identifier's metadata can be modified by sending a POST request to the identifier's URL. Authentication is required; only the identifier's owner and certain other users may modify the identifier (see Ownership model below).

Metadata elements are operated on individually. If the identifier already has a value for a metadata element included in the request body, the value is overwritten, otherwise, the element and its value are added. Only a few of the reserved metadata elements may be modified; see Internal metadata.

⇒ POST /id/doi:10.5072/test9999 HTTP/1.1
⇒ Host: ez.datacite.org
⇒ Content-Type: text/plain; charset=UTF-8
⇒ Content-Length: 30
⇒
⇒ _target: https://ez.datacite.org/

⇐ HTTP/1.1 200 OK
⇐ Content-Type: text/plain; charset=UTF-8
⇐ Content-Length: 29
⇐
⇐ success: doi:10.5072/test9999

The return is a status line. Assuming success (see Error handling), the remainder of the status line echoes the canonical form of the identifier in question.

To delete a metadata element, set its value to an empty string.

 
Suggest Edits

Delete DOI

 

A reserved DOI can be deleted by sending a DELETE request to the identifier's URL. We emphasize that only reserved identifiers may be deleted; see Identifier status. Authentication is required; only the identifier's owner and certain other users may delete the identifier (see Ownership model).

⇒ DELETE /id/doi:10.5072/test9999 HTTP/1.1
⇒ Host: ez.datacite.org

⇐ HTTP/1.1 200 OK
⇐ Content-Type: text/plain; charset=UTF-8
⇐ Content-Length: 29
⇐
⇐ success: doi:/10.5072/test9999

The return is a status line. Assuming success (see Error handling), the remainder of the status line echoes the canonical form of the identifier just deleted.