orcid_client 0.6.0 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/.env.example +0 -1
  3. data/.github/workflows/build.yml +39 -0
  4. data/.github/workflows/changelog.yml +36 -0
  5. data/.github/workflows/release.yml +48 -0
  6. data/CHANGELOG.md +157 -0
  7. data/Gemfile.lock +136 -119
  8. data/README.md +6 -6
  9. data/lib/orcid_client/api.rb +1 -1
  10. data/lib/orcid_client/external_identifier.rb +1 -1
  11. data/lib/orcid_client/version.rb +1 -1
  12. data/lib/orcid_client/work.rb +1 -1
  13. data/orcid_client.gemspec +9 -10
  14. data/resources/README.md +48 -43
  15. data/resources/common_3.0/common-3.0.xsd +998 -0
  16. data/resources/common_3.0/samples/common-3.0.xml +8 -0
  17. data/resources/common_3.0/samples/common-3.0_external-identifier.xml +11 -0
  18. data/resources/notification_3.0/README.md +130 -0
  19. data/resources/notification_3.0/images/notification-intro.jpg +0 -0
  20. data/resources/notification_3.0/images/notification-subject.jpg +0 -0
  21. data/resources/notification_3.0/notification-custom-3.0.xsd +38 -0
  22. data/resources/notification_3.0/notification-permission-3.0.xsd +134 -0
  23. data/resources/notification_3.0/samples/notification-custom-3.0.xml +27 -0
  24. data/resources/notification_3.0/samples/notification-permission-3.0.xml +58 -0
  25. data/resources/record_3.0/README.md +408 -0
  26. data/resources/record_3.0/activities-3.0.xsd +456 -0
  27. data/resources/record_3.0/address-3.0.xsd +73 -0
  28. data/resources/record_3.0/bulk-3.0.xsd +57 -0
  29. data/resources/record_3.0/distinction-3.0.xsd +51 -0
  30. data/resources/record_3.0/education-3.0.xsd +51 -0
  31. data/resources/record_3.0/email-3.0.xsd +76 -0
  32. data/resources/record_3.0/employment-3.0.xsd +51 -0
  33. data/resources/record_3.0/error-3.0.xsd +84 -0
  34. data/resources/record_3.0/expanded-search-3.0.xsd +114 -0
  35. data/resources/record_3.0/funding-3.0.xsd +204 -0
  36. data/resources/record_3.0/history-3.0.xsd +185 -0
  37. data/resources/record_3.0/invited-position-3.0.xsd +50 -0
  38. data/resources/record_3.0/keyword-3.0.xsd +72 -0
  39. data/resources/record_3.0/membership-3.0.xsd +51 -0
  40. data/resources/record_3.0/other-name-3.0.xsd +78 -0
  41. data/resources/record_3.0/peer-review-3.0.xsd +263 -0
  42. data/resources/record_3.0/person-3.0.xsd +85 -0
  43. data/resources/record_3.0/person-external-identifier-3.0.xsd +63 -0
  44. data/resources/record_3.0/personal-details-3.0.xsd +162 -0
  45. data/resources/record_3.0/preferences-3.0.xsd +50 -0
  46. data/resources/record_3.0/qualification-3.0.xsd +50 -0
  47. data/resources/record_3.0/record-3.0.xsd +91 -0
  48. data/resources/record_3.0/research-resource-3.0.xsd +144 -0
  49. data/resources/record_3.0/researcher-url-3.0.xsd +86 -0
  50. data/resources/record_3.0/samples/read_samples/activities-3.0.xml +742 -0
  51. data/resources/record_3.0/samples/read_samples/address-3.0.xml +16 -0
  52. data/resources/record_3.0/samples/read_samples/addresses-3.0.xml +32 -0
  53. data/resources/record_3.0/samples/read_samples/biography-3.0.xml +10 -0
  54. data/resources/record_3.0/samples/read_samples/bulk-work-err.xml +45 -0
  55. data/resources/record_3.0/samples/read_samples/credit-name-3.0.xml +5 -0
  56. data/resources/record_3.0/samples/read_samples/distinction-3.0.xml +55 -0
  57. data/resources/record_3.0/samples/read_samples/distinctions-3.0.xml +106 -0
  58. data/resources/record_3.0/samples/read_samples/education-3.0.xml +55 -0
  59. data/resources/record_3.0/samples/read_samples/education-full-3.0.xml +55 -0
  60. data/resources/record_3.0/samples/read_samples/educations-3.0.xml +118 -0
  61. data/resources/record_3.0/samples/read_samples/email-3.0.xml +16 -0
  62. data/resources/record_3.0/samples/read_samples/emails-3.0.xml +31 -0
  63. data/resources/record_3.0/samples/read_samples/employment-3.0.xml +55 -0
  64. data/resources/record_3.0/samples/read_samples/employment-full-3.0.xml +55 -0
  65. data/resources/record_3.0/samples/read_samples/employments-3.0.xml +108 -0
  66. data/resources/record_3.0/samples/read_samples/error-3.0.xml +8 -0
  67. data/resources/record_3.0/samples/read_samples/external-identifier-3.0.xml +21 -0
  68. data/resources/record_3.0/samples/read_samples/external-identifiers-3.0.xml +38 -0
  69. data/resources/record_3.0/samples/read_samples/full-record-3.0.json +2332 -0
  70. data/resources/record_3.0/samples/read_samples/funding-3.0.xml +75 -0
  71. data/resources/record_3.0/samples/read_samples/funding-full-3.0.xml +75 -0
  72. data/resources/record_3.0/samples/read_samples/fundings-3.0.xml +139 -0
  73. data/resources/record_3.0/samples/read_samples/history-3.0.xml +22 -0
  74. data/resources/record_3.0/samples/read_samples/invited-position-3.0.xml +55 -0
  75. data/resources/record_3.0/samples/read_samples/invited-positions-3.0.xml +106 -0
  76. data/resources/record_3.0/samples/read_samples/keyword-3.0.xml +18 -0
  77. data/resources/record_3.0/samples/read_samples/keywords-3.0.xml +34 -0
  78. data/resources/record_3.0/samples/read_samples/membership-3.0.xml +55 -0
  79. data/resources/record_3.0/samples/read_samples/memberships-3.0.xml +106 -0
  80. data/resources/record_3.0/samples/read_samples/name-3.0.xml +12 -0
  81. data/resources/record_3.0/samples/read_samples/other-name-3.0.xml +16 -0
  82. data/resources/record_3.0/samples/read_samples/other-names-3.0.xml +31 -0
  83. data/resources/record_3.0/samples/read_samples/peer-review-3.0.xml +59 -0
  84. data/resources/record_3.0/samples/read_samples/peer-review-full-3.0.xml +59 -0
  85. data/resources/record_3.0/samples/read_samples/peer-reviews-3.0.xml +76 -0
  86. data/resources/record_3.0/samples/read_samples/person-3.0.xml +122 -0
  87. data/resources/record_3.0/samples/read_samples/personal-details-3.0.xml +47 -0
  88. data/resources/record_3.0/samples/read_samples/preferences-3.0.xml +4 -0
  89. data/resources/record_3.0/samples/read_samples/qualification-3.0.xml +55 -0
  90. data/resources/record_3.0/samples/read_samples/qualifications-3.0.xml +106 -0
  91. data/resources/record_3.0/samples/read_samples/record-3.0.xml +770 -0
  92. data/resources/record_3.0/samples/read_samples/research-resource-3.0.xml +138 -0
  93. data/resources/record_3.0/samples/read_samples/research-resources-3.0.xml +143 -0
  94. data/resources/record_3.0/samples/read_samples/researcher-url-3.0.xml +19 -0
  95. data/resources/record_3.0/samples/read_samples/researcher-urls-3.0.xml +21 -0
  96. data/resources/record_3.0/samples/read_samples/search-3.0.xml +14 -0
  97. data/resources/record_3.0/samples/read_samples/service-3.0.xml +55 -0
  98. data/resources/record_3.0/samples/read_samples/services-3.0.xml +106 -0
  99. data/resources/record_3.0/samples/read_samples/work-3.0.xml +65 -0
  100. data/resources/record_3.0/samples/read_samples/work-full-3.0.xml +65 -0
  101. data/resources/record_3.0/samples/read_samples/works-3.0.xml +148 -0
  102. data/resources/record_3.0/samples/write_samples/address-3.0.xml +6 -0
  103. data/resources/record_3.0/samples/write_samples/bulk-work-3.0.json +53 -0
  104. data/resources/record_3.0/samples/write_samples/bulk-work-3.0.xml +47 -0
  105. data/resources/record_3.0/samples/write_samples/distinction-3.0.xml +46 -0
  106. data/resources/record_3.0/samples/write_samples/education-3.0.xml +45 -0
  107. data/resources/record_3.0/samples/write_samples/employment-3.0.xml +45 -0
  108. data/resources/record_3.0/samples/write_samples/external-identifier-3.0.xml +11 -0
  109. data/resources/record_3.0/samples/write_samples/funding-3.0.xml +44 -0
  110. data/resources/record_3.0/samples/write_samples/invited-position-3.0.xml +45 -0
  111. data/resources/record_3.0/samples/write_samples/keyword-3.0.xml +7 -0
  112. data/resources/record_3.0/samples/write_samples/membership-3.0.xml +45 -0
  113. data/resources/record_3.0/samples/write_samples/other-name-3.0.xml +6 -0
  114. data/resources/record_3.0/samples/write_samples/peer-review-full-3.0.xml +48 -0
  115. data/resources/record_3.0/samples/write_samples/peer-review-full-award-subject-type-3.0.xml +48 -0
  116. data/resources/record_3.0/samples/write_samples/peer-review-simple-3.0.xml +32 -0
  117. data/resources/record_3.0/samples/write_samples/qualification-3.0.xml +45 -0
  118. data/resources/record_3.0/samples/write_samples/research-resource-3.0.xml +110 -0
  119. data/resources/record_3.0/samples/write_samples/researcher-url-3.0-no-name.xml +6 -0
  120. data/resources/record_3.0/samples/write_samples/researcher-url-3.0.xml +7 -0
  121. data/resources/record_3.0/samples/write_samples/service-3.0.xml +45 -0
  122. data/resources/record_3.0/samples/write_samples/work-full-3.0.xml +60 -0
  123. data/resources/record_3.0/samples/write_samples/work-simple-3.0.xml +18 -0
  124. data/resources/record_3.0/search-3.0.xsd +62 -0
  125. data/resources/record_3.0/service-3.0.xsd +51 -0
  126. data/resources/record_3.0/work-3.0.xsd +269 -0
  127. data/spec/api_spec.rb +3 -3
  128. data/spec/author_spec.rb +1 -1
  129. data/spec/external_identifier_spec.rb +3 -3
  130. data/spec/fixtures/external_identifier.xml +1 -1
  131. data/spec/fixtures/vcr_cassettes/OrcidClient/works/get/should_get_works.yml +20 -11
  132. data/spec/fixtures/vcr_cassettes/OrcidClient/works/post/should_create_work.yml +67 -42
  133. data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/data.yml +37 -28
  134. data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_data.yml +37 -28
  135. data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_item_type_work.yml +31 -37
  136. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/literal.yml +46 -31
  137. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/multiple_titles.yml +36 -27
  138. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/valid.yml +36 -27
  139. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/with_ORCID_IDs.yml +30 -22
  140. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/data.yml +37 -28
  141. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/publication_date.yml +37 -28
  142. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_ORCID_IDs_for_contributors.yml +30 -22
  143. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_data.yml +36 -27
  144. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_work_from_DataCite_test_system.yml +30 -22
  145. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_work_type_data-set.yml +31 -37
  146. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/user_example/fail/valid.yml +30 -22
  147. data/spec/fixtures/work.xml +1 -1
  148. data/spec/notification_spec.rb +2 -2
  149. data/spec/spec_helper.rb +1 -1
  150. data/spec/work_spec.rb +3 -3
  151. metadata +188 -77
  152. data/.travis.yml +0 -17
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <common:application-group-orcid
3
+ xmlns:common="http://www.orcid.org/ns/common" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="http://www.orcid.org/ns/common ../common-3.0.xsd ">
5
+ <common:uri>https://orcid.org/8888-8888-8888-8880</common:uri>
6
+ <common:path>8888-8888-8888-8880</common:path>
7
+ <common:host>orcid.org</common:host>
8
+ </common:application-group-orcid>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <common:external-ids xmlns:common="http://www.orcid.org/ns/common">
3
+ <common:external-id>
4
+ <common:external-id-type>doi</common:external-id-type>
5
+ <common:external-id-value>value</common:external-id-value>
6
+ <common:external-id-normalized transient="true">normalized-value</common:external-id-normalized>
7
+ <common:external-id-url>http://orcid.org</common:external-id-url>
8
+ <common:external-id-relationship>self</common:external-id-relationship>
9
+ </common:external-id>
10
+ </common:external-ids>
11
+
@@ -0,0 +1,130 @@
1
+
2
+ # ORCID API v3.0 Notifications Permission Guide
3
+ The ORCID API supports functionality to enable member organizations to add permission requests to a user's ORCID Inbox. These requests provide a "snapshot" example of the type of activities that will be added to the user's ORCID record as a result of granting the permission.
4
+
5
+ _**User-friendly implementation detail**: Several fields described below are displayed directly to the end user. The ORCID user interface is currently available in 10+ languages, and emails sent to the user are also presented in the user's language of choice. The language preference of the user is available via the ORCID API, and is always public. We strongly recommend that you read and consider the user's language when providing messages to them, providing user-displayed fields in their preferred language when feasible._
6
+
7
+ ## Notifications Permission XML
8
+ XML for the ```permission``` notifications follows the [notification-permission-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/notification_3.0/notification-permission-3.0.xsd) and consists of the following sections:
9
+
10
+ - **notification:notification-type**: The type of notification - for this type of notification, the value is always ```permission```.
11
+
12
+ - **notification:authorization-url**: This field is the URL string that you would call if you were asking for the permission from the user from your own application. It is formatted as a URL string, using the format found for the call [GET OAUTH/AUTHORIZE](http://members.orcid.org/api/get-oauthauthorize). _Note: one may specify only the URL path if desired. This approach is useful if you want to use identical code in multiple environments, for example on the ORCID Sandbox and Production environments._
13
+
14
+ - **notification:notification-subject**: DISPLAYED TO END USER. A plain text value for describing to the user the type of items that you'll plan to add to his/her record once permission is granted. This value should be short (fewer than 25 characters), and can be a bit more descriptive, for example, "your recent publications", or "validated affiliations", or it can simply mirror the value used for ```notification:item-type``` below (education, employment, etc. You should assume that this text will be used in the middle of a sentence _(for example, the message subject line of "Add &lt;notification:item-type&gt; to your ORCID record")_, so you should use discretion on capitalization and length.
15
+
16
+ <p align="center">
17
+ <img src='https://raw.githubusercontent.com/ORCID/orcid-model/master/src/main/resources/notification_3.0/images/notification-subject.jpg' alt='notification-subject' width='600'>
18
+ </p>
19
+
20
+ - **notification:notification-intro**: DISPLAYED TO END USER. A short message that will be included in the inbox message to the end-user. This message will be presented before the list of activities that you have included in the message. Your intro message should not exceed 1000 characters.
21
+
22
+ <p align="center">
23
+ <img src='https://raw.githubusercontent.com/ORCID/orcid-model/master/src/main/resources/notification_3.0/images/notification-intro.jpg' alt='notification-intro' width='600'>
24
+ </p>
25
+
26
+ **notification:items block**
27
+
28
+ Consists of one or more ```notification:item``` elements, which contain the following sub-elements:
29
+
30
+ - **notification:item-type**: The type of ORCID item represented by this ```item``` element. Chosen from the following: ```education```, ```employment```, ```funding```, ```work```, or ```peer-review```.
31
+
32
+ - **notification:item-name**: DISPLAYED TO END USER. The name that should be shown to the end user to describe the item. This field is usually the name of the item that might be added once permission is granted (for example, the title of an article), but it also could include other identifying information, for example, _"Article Title (as published in journal ABC)"_, where "(as published in journal ABC)" is additional infomration that the client application would like to present to the user.
33
+
34
+ - **notification:external-identifier**: DISPLAYED TO END USER. An external identifier for the item. While this field is not required, it is very helpful information to provide to the end user, as it distinguishes the item from others that may be similar. Note that, when adding the item to the ORCID record, at least one external identifier is required, even if an internal reference identifier is used for this purpose.
35
+
36
+ For an example XML file, see [notification-permission-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/notification_3.0/samples/notification-permission-3.0.xml)
37
+
38
+ ***Note:*** *Sample files contain system-generated elements/attributes that are returned when reading items from ORCID. The following items should not be included when posting items to ORCID. These fields will be present when reading notifications using this API:*
39
+
40
+ - **put-code** - ORCID_internal identifier for this notification. _(exception: you must include the put-code when updating items using the PUT method to update an item previously added)_
41
+ - **source** - the system will include your client application as the source
42
+ - **created-date** - date that you created this notification; automatically assigned by the system
43
+ - **sent-date** - date that the notification was sent to the end user from the inbox _(note that usually inbox messages are sent in batch to the user at an interval that the user specifies.)_
44
+ - **read-date** - date that the user read your notification in the ORCID Inbox, OR took action on the notification sent through the users email
45
+ - **actioned-date** - Date the user took action on the notification _(note that some notifications will not have explicit actions, in this case, reading the notification would update both the read & actioned date)_.
46
+ - **archived-date** - date that the user archived your notification
47
+
48
+
49
+ ## Notifications Permission Reference
50
+ ```permission``` notifications are available only in ORCID API v2.0_rcX, which uses a slightly different data structure from previous API versions.
51
+
52
+ In v2.0_rcX, items are read, added, and modified on an individual basis (rather than as a list), using a ```put-code```, which is a system-generated identifier used within the ORCID database.
53
+
54
+ The ```put-code``` for a specific item can be obtained by reading notifications.
55
+
56
+ Other notable differences between v2.0_rcX previous versions include:
57
+
58
+ - An explicit ```DELETE``` method is used to remove record items
59
+
60
+ ### Request a notification access token
61
+
62
+ Authorized client applications may obtain a notification access token from the ORCID server (using a 2-legged, or "client_credentials" OAuth flow) as described below. If your client is not yet authorized, please [contact support](http://orcid.org/help/contact-us) to request this feature to be turned on for your client.
63
+
64
+ _Please note that ORCID reserves the right to limit the client applications with authorization to send messages directly to ORCID iD holders using the ORCID Inbox._
65
+
66
+ **Resource URL**
67
+
68
+ | Environment | Resource URL |
69
+ | ----------- | ------------ |
70
+ |Developers Sandbox | https://api.sandbox.orcid.org/oauth/token |
71
+ | Production Registry | https://api.orcid.org/oauth/token |
72
+
73
+ **Parameters**
74
+
75
+ | Field | Value|
76
+ | ---- | ---- |
77
+ | client_id<br/>*required* | The client id value &lt;client-id&gt; from ORCID client application registration |
78
+ | client_secret<br/>*required* | The client secret value &lt;client-secret&gt; from ORCID client application registration |
79
+ | scope<br/>*required* | The authorization scope for the requested access token. Value must be ```/premium-notification``` |
80
+ | grant_type<br/>*required* | Specifies the authorization mechanism for the granting the access token. Value for this call must be ```client_credentials``` |
81
+
82
+ **Header**
83
+
84
+ | Field | Value|
85
+ | ---- | ---- |
86
+ | Accept<br/>_required_ | The format for the call response. Must be ```Accept: application/json``` |
87
+
88
+ ### REST API for notifications
89
+
90
+ | Action | HTTP method | Scope | URL |
91
+ |-------------------------|-------------|--------------------------|----------------------------------------------------------|
92
+ | Add a notification | POST | /premium-notification | http://api.sandbox.orcid.org/v3.0/[ORCID]/notification-permission |
93
+ | Read a notification | GET | /premium-notification | http://api.sandbox.orcid.org/v3.0/[ORCID]/notification-permission/[PUT-CODE] |
94
+ | Flag an unread notification as archived | DELETE | /premium-notification | http://api.sandbox.orcid.org/v3.0/[ORCID]/notification-permission/[PUT-CODE] |
95
+
96
+ - **[ORCID]** is the ORCID iD for the record, formatted as XXXX-XXXX-XXXX-XXXX
97
+ - **[PUT-CODE]** is the ```put-code``` attribute for the specific ```notification``` that you wish to read or modify.
98
+
99
+ ### Example cURL Statements
100
+ #### Request a notification access token
101
+ ```
102
+ curl -i -L -H 'Accept: application/json' \
103
+ -d 'client_id=APP-...' \
104
+ -d 'client_secret=...' \
105
+ -d 'scope=/premium-notification' \
106
+ -d 'grant_type=client_credentials' \
107
+ 'http://api.sandbox.orcid.org/oauth/token'
108
+ ```
109
+
110
+ #### Add a notification
111
+ ```
112
+ curl -i -H 'Authorization: Bearer ...' \
113
+ -H 'Content-Type: application/orcid+xml' \
114
+ -X POST -d '@[FILE-PATH]/notification-permission.xml' \
115
+ https://api.sandbox.orcid.org/v3.0/[ORCID]/notification-permission
116
+ ```
117
+
118
+ #### Read a notification
119
+ ```
120
+ curl -i -H 'Authorization: Bearer ...' \
121
+ -H 'Content-Type: application/orcid+xml' \
122
+ https://api.sandbox.orcid.org/v3.0/[ORCID]/notification-permission/[PUT-CODE]
123
+ ```
124
+
125
+ #### Flag an unread notification as archived
126
+ ```
127
+ curl -i -H 'Authorization: Bearer ...' \
128
+ -H 'Content-Type: application/orcid+xml' \
129
+ -X DELETE https://api.sandbox.orcid.org/v3.0/[ORCID]/notification-permission/[PUT-CODE]
130
+ ```
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
3
+ targetNamespace="http://www.orcid.org/ns/notification" xmlns:notification="http://www.orcid.org/ns/notification"
4
+ xmlns:common="http://www.orcid.org/ns/common"
5
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
6
+ xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1">
7
+ <xs:import namespace="http://www.orcid.org/ns/common" schemaLocation="../common_2.1/common-2.1.xsd" />
8
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="../xml.xsd"/>
9
+ <xs:element name="notification">
10
+ <xs:complexType>
11
+ <xs:sequence>
12
+ <xs:element name="notification-type">
13
+ <xs:simpleType>
14
+ <xs:restriction base="xs:string">
15
+ <xs:enumeration value="custom"/>
16
+ </xs:restriction>
17
+ </xs:simpleType>
18
+ </xs:element>
19
+ <xs:element name="subject">
20
+ <xs:simpleType>
21
+ <xs:restriction base="xs:string">
22
+ <xs:maxLength value="200" />
23
+ </xs:restriction>
24
+ </xs:simpleType>
25
+ </xs:element>
26
+ <xs:element type="xs:string" name="body-text"/>
27
+ <xs:element type="xs:string" name="body-html"/>
28
+ <xs:element ref="common:created-date" minOccurs="0"/>
29
+ <xs:element ref="common:sent-date"/>
30
+ <xs:element ref="common:read-date" minOccurs="0"/>
31
+ <xs:element ref="common:archived-date" minOccurs="0"/>
32
+ <xs:element ref="common:source" minOccurs="0"/>
33
+ </xs:sequence>
34
+ <xs:attribute name="put-code" type="common:put-code" use="optional" />
35
+ <xs:attribute ref="xml:lang" use="optional" />
36
+ </xs:complexType>
37
+ </xs:element>
38
+ </xs:schema>
@@ -0,0 +1,134 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema attributeFormDefault="unqualified"
3
+ elementFormDefault="qualified" targetNamespace="http://www.orcid.org/ns/notification"
4
+ xmlns:notification="http://www.orcid.org/ns/notification" xmlns:common="http://www.orcid.org/ns/common"
5
+ xmlns:activities="http://www.orcid.org/ns/activities" xmlns:xs="http://www.w3.org/2001/XMLSchema"
6
+ xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1">
7
+ <xs:import namespace="http://www.orcid.org/ns/common"
8
+ schemaLocation="../common_2.1/common-2.1.xsd" />
9
+ <xs:import namespace="http://www.orcid.org/ns/activities"
10
+ schemaLocation="../record_2.1/activities-2.1.xsd" />
11
+
12
+ <xs:element name="notifications">
13
+ <xs:annotation>
14
+ <xs:documentation>Notification container</xs:documentation>
15
+ </xs:annotation>
16
+ <xs:complexType>
17
+ <xs:sequence>
18
+ <xs:element name="notification" type="notification:notification"
19
+ minOccurs="0" maxOccurs="unbounded" />
20
+ </xs:sequence>
21
+ </xs:complexType>
22
+ </xs:element>
23
+
24
+ <xs:element name="notification">
25
+ <xs:annotation>
26
+ <xs:documentation>Notification element
27
+ </xs:documentation>
28
+ </xs:annotation>
29
+ <xs:complexType>
30
+ <xs:complexContent>
31
+ <xs:extension base="notification:notification"></xs:extension>
32
+ </xs:complexContent>
33
+ </xs:complexType>
34
+ </xs:element>
35
+
36
+ <xs:complexType name="notification">
37
+ <xs:sequence>
38
+ <xs:element name="notification-type" type="notification:notification-type" />
39
+ <xs:element name="authorization-url" type="notification:authorization-url" />
40
+ <xs:element ref="notification:notification-subject" />
41
+ <xs:element ref="notification:notification-intro" />
42
+ <xs:element name="items" type="notification:items" />
43
+ <xs:element ref="common:created-date" minOccurs="0" />
44
+ <xs:element ref="common:sent-date" minOccurs="0" />
45
+ <xs:element ref="common:read-date" minOccurs="0" />
46
+ <xs:element name="actioned-date" type="notification:actioned-date"
47
+ minOccurs="0" />
48
+ <xs:element ref="common:archived-date" minOccurs="0" />
49
+ <xs:element ref="common:source" minOccurs="0" />
50
+ </xs:sequence>
51
+ <xs:attribute name="put-code" type="common:put-code"
52
+ use="optional" />
53
+ </xs:complexType>
54
+
55
+ <xs:simpleType name="notification-type">
56
+ <xs:restriction base="xs:string">
57
+ <xs:enumeration value="permission" />
58
+ </xs:restriction>
59
+ </xs:simpleType>
60
+
61
+ <xs:complexType name="authorization-url">
62
+ <xs:sequence>
63
+ <xs:choice>
64
+ <xs:sequence>
65
+ <xs:element name="uri" type="xs:anyURI" />
66
+ <xs:element name="path" type="xs:string" minOccurs="0" />
67
+ </xs:sequence>
68
+ <xs:element name="path" type="xs:string" />
69
+ </xs:choice>
70
+ <xs:element name="host" type="xs:string" minOccurs="0" />
71
+ </xs:sequence>
72
+ </xs:complexType>
73
+
74
+ <xs:element name="notification-subject">
75
+ <xs:annotation>
76
+ <xs:documentation>The subject line for the message (displayed to the
77
+ end user)
78
+ </xs:documentation>
79
+ </xs:annotation>
80
+ <xs:simpleType>
81
+ <xs:restriction base="xs:string" />
82
+ </xs:simpleType>
83
+ </xs:element>
84
+ <xs:element name="notification-intro">
85
+ <xs:annotation>
86
+ <xs:documentation>A text-only introductory message to be displayed to
87
+ the end user, and displayed before the example list of items.
88
+ </xs:documentation>
89
+ </xs:annotation>
90
+ <xs:simpleType>
91
+ <xs:restriction base="xs:string">
92
+ <xs:maxLength value="1000" />
93
+ </xs:restriction>
94
+ </xs:simpleType>
95
+ </xs:element>
96
+ <xs:complexType name="items">
97
+ <xs:sequence>
98
+ <xs:element name="item" type="notification:item"
99
+ maxOccurs="unbounded" />
100
+ </xs:sequence>
101
+ </xs:complexType>
102
+ <xs:complexType name="item">
103
+ <xs:sequence>
104
+ <xs:element name="item-type" type="notification:activity-type" />
105
+ <xs:element name="item-name">
106
+ <xs:simpleType>
107
+ <xs:restriction base="xs:string">
108
+ <xs:maxLength value="1000" />
109
+ </xs:restriction>
110
+ </xs:simpleType>
111
+ </xs:element>
112
+ <xs:element ref="common:external-id" minOccurs="0" />
113
+ </xs:sequence>
114
+ </xs:complexType>
115
+ <xs:simpleType name="activity-type">
116
+ <xs:restriction base="xs:string">
117
+ <xs:enumeration value="education"></xs:enumeration>
118
+ <xs:enumeration value="employment"></xs:enumeration>
119
+ <xs:enumeration value="funding"></xs:enumeration>
120
+ <xs:enumeration value="work"></xs:enumeration>
121
+ <xs:enumeration value="peer-review"></xs:enumeration>
122
+ </xs:restriction>
123
+ </xs:simpleType>
124
+ <xs:complexType name="actioned-date">
125
+ <xs:annotation>
126
+ <xs:documentation>The date time when the user took action on the
127
+ notification.
128
+ </xs:documentation>
129
+ </xs:annotation>
130
+ <xs:simpleContent>
131
+ <xs:extension base="xs:dateTime" />
132
+ </xs:simpleContent>
133
+ </xs:complexType>
134
+ </xs:schema>
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <notification:notification put-code="1"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="http://www.orcid.org/ns/notification ../notification-custom-3.0.xsd"
5
+ xmlns:notification="http://www.orcid.org/ns/notification"
6
+ xmlns:common="http://www.orcid.org/ns/common"
7
+ xml:lang="en-gb">
8
+ <notification:notification-type>custom</notification:notification-type>
9
+ <notification:subject>Important Notification from ORCID</notification:subject>
10
+ <notification:body-text>This is an email with important info.
11
+ </notification:body-text>
12
+ <notification:body-html><![CDATA[
13
+ <p>
14
+ This is an email with <em>important</em> info.
15
+ </p>]]>
16
+ </notification:body-html>
17
+ <common:created-date>2014-01-01T09:17:56</common:created-date>
18
+ <common:sent-date>2014-01-01T14:45:32</common:sent-date>
19
+ <common:source>
20
+ <common:source-orcid>
21
+ <common:uri>https://orcid.org/2111-1111-1111-1114</common:uri>
22
+ <common:path>2111-1111-1111-1114</common:path>
23
+ <common:host>orcid.org</common:host>
24
+ </common:source-orcid>
25
+ <common:source-name>Member 1</common:source-name>
26
+ </common:source>
27
+ </notification:notification>
@@ -0,0 +1,58 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <!--
3
+
4
+ =============================================================================
5
+
6
+ ORCID (R) Open Source
7
+ http://orcid.org
8
+
9
+ Copyright (c) 2012-2014 ORCID, Inc.
10
+ Licensed under an MIT-Style License (MIT)
11
+ http://orcid.org/open-source-license
12
+
13
+ This copyright and license information (including a link to the full license)
14
+ shall be included in its entirety in all copies or substantial portion of
15
+ the software.
16
+
17
+ =============================================================================
18
+
19
+ -->
20
+ <notification:notification put-code="1" xsi:schemaLocation="http://www.orcid.org/ns/notification ../notification-permission-3.0.xsd" xmlns:common="http://www.orcid.org/ns/common" xmlns:notification="http://www.orcid.org/ns/notification" xmlns:activities="http://www.orcid.org/ns/activities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
21
+ <notification:notification-type>permission</notification:notification-type>
22
+ <notification:authorization-url>
23
+ <!-- API user can specify just the path if they want, and leave out the uri element. -->
24
+ <notification:uri>https://orcid.org/oauth/authorize?client_id=APP-U4UKCNSSIM1OCVQY&amp;response_type=code&amp;scope=/orcid-works/create&amp;redirect_uri=http://somethirdparty.com</notification:uri>
25
+ <notification:path>/oauth/authorize?client_id=APP-U4UKCNSSIM1OCVQY&amp;response_type=code&amp;scope=/orcid-works/create&amp;redirect_uri=http://somethirdparty.com</notification:path>
26
+ <notification:host>orcid.org</notification:host>
27
+ </notification:authorization-url>
28
+ <notification:notification-subject>Subject</notification:notification-subject>
29
+ <notification:notification-intro>Intro</notification:notification-intro>
30
+ <notification:items>
31
+ <notification:item>
32
+ <notification:item-type>work</notification:item-type>
33
+ <notification:item-name>A Really Interesting Research Article</notification:item-name>
34
+ <common:external-id>
35
+ <common:external-id-type>doi</common:external-id-type>
36
+ <common:external-id-value>http://10.5555/12345ABCDE</common:external-id-value>
37
+ <common:external-id-relationship>self</common:external-id-relationship>
38
+ </common:external-id>
39
+ </notification:item>
40
+ <notification:item>
41
+ <notification:item-type>employment</notification:item-type>
42
+ <notification:item-name>Head of Research at NanoBiologica</notification:item-name>
43
+ </notification:item>
44
+ </notification:items>
45
+ <!-- Read only for API user -->
46
+ <common:created-date>2014-01-01T09:17:56</common:created-date>
47
+ <!-- Read only for API user -->
48
+ <common:sent-date>2014-01-01T14:45:32</common:sent-date>
49
+ <common:source>
50
+ <!-- Read only for API user - will only be able to see notifications for which they are the source -->
51
+ <common:source-client-id>
52
+ <common:uri>https://orcid.org/client/APP-U4UKCNSSIM1OCVQY</common:uri>
53
+ <common:path>APP-U4UKCNSSIM1OCVQY</common:path>
54
+ <common:host>orcid.org</common:host>
55
+ </common:source-client-id>
56
+ <common:source-name>Member 1</common:source-name>
57
+ </common:source>
58
+ </notification:notification>
@@ -0,0 +1,408 @@
1
+ # ORCID API v3.0 Guide
2
+
3
+ ## Endpoints
4
+
5
+ - activities (read only)
6
+ - address
7
+ - biography (read only)
8
+ - distinction/distinctions
9
+ - education/educations
10
+ - email (read only)
11
+ - employment/employments
12
+ - external-identifiers
13
+ - funding/fundings
14
+ - invited-position/invited-positions
15
+ - keywords
16
+ - membership/memberships
17
+ - other-names
18
+ - peer-review/peer-reviews
19
+ - person (read only)
20
+ - personal-details (read only)
21
+ - qualification/qualifications
22
+ - record (read only)
23
+ - research-resource/research-resources
24
+ - researcher-urls
25
+ - service/services
26
+ - work/works
27
+
28
+ ## XSDs and current state (all stable)
29
+ - [activities-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/activities-3.0.xsd)
30
+ **stable**
31
+ - [address-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/address-3.0.xsd)
32
+ **stable**
33
+ - [bulk-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/bulk-3.0.xsd)
34
+ **stable**
35
+ - [common-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/common_3.0/common-3.0.xsd)
36
+ **stable**
37
+ - [distinction-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/distinction-3.0.xsd)
38
+ **stable**
39
+ - [education-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/education-3.0.xsd)
40
+ **stable**
41
+ - [email-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/email-3.0.xsd)
42
+ **stable**
43
+ - [employment-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/employment-3.0.xsd)
44
+ **stable**
45
+ - [error-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/error-3.0.xsd)
46
+ **stable**
47
+ - [funding-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/funding-3.0.xsd)
48
+ **stable**
49
+ - [invited-position-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/invited-position-3.0.xsd)
50
+ **stable**
51
+ - [keyword-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/keyword-3.0.xsd)
52
+ **stable**
53
+ - [membership-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/membership-3.0.xsd)
54
+ **stable**
55
+ - [other-names-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/other-name-3.0.xsd)
56
+ **stable**
57
+ - [peer-review-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/peer-review-3.0.xsd)
58
+ **stable**
59
+ - [person-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/person-3.0.xsd)
60
+ **stable**
61
+ - [person-external-identifier-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/person-external-identifier-3.0.xsd)
62
+ **stable**
63
+ - [personal-details-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/personal-details-3.0.xsd)
64
+ **stable**
65
+ - [qualification-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/qualification-3.0.xsd)
66
+ **stable**
67
+ - [research-resource-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/research-resource-3.0.xsd)
68
+ **stable**
69
+ - [researcher-url-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/researcher-url-3.0.xsd)
70
+ **stable**
71
+ - [search-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/search-3.0.xsd)
72
+ **stable**
73
+ - [service-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/service-3.0.xsd)
74
+ **stable**
75
+ - [work-3.0.xsd](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/work-3.0.xsd)
76
+ **stable**
77
+
78
+ ## Tutorials
79
+
80
+ - [General guide to the ORCID API](https://github.com/ORCID/ORCID-Source/tree/master/orcid-api-web)
81
+ - [Tutorials for reading and writing to ORCID records](https://github.com/ORCID/ORCID-Source/tree/master/orcid-api-web/tutorial)
82
+
83
+
84
+ ## Changes from Version 2.1:
85
+
86
+ ### JSON
87
+ - JSON enumerated types are now expressed in lowercase with dashes instead of underscores, matching the existing XML enums (ie *JOURNAL_ARTICLE* is now expressed as *journal-article*). This affects enums for visibility, locale, work types, contributor roles, citation types, external identifier relationship, funding types, peer review types, and peer review role
88
+
89
+ ### Assertion Origin Source information
90
+ - Member clients can now generating tokens that allow another client to update an ORCID record on behalf of the original client. This process is described in the [Token Delegation tutorial](https://github.com/ORCID/ORCID-Source/blob/master/orcid-api-web/tutorial/token_delegation.md).
91
+ - Items added using token delegation have additional source fields *common:assertion-origin-client-id* and *common:assertion-origin-name*.
92
+ - Items added by clients associated with a Search and Link Wizard have the client listed as the source of the item and the user as the source of the assertion with the fields *common:assertion-origin-orcid* and *common:assertion-origin-orcid*
93
+
94
+ ### Identifiers
95
+ - Addition of new identifier relationship *version-of*, which is intended to map works to identifiers of different versions and instances of the same work. Works with the same *version-of* identifier are grouped together.
96
+
97
+ ### Activities external identifiers
98
+ - Addition of *common:external-id-normalized* for work and peer-review identifiers. The common:external-id-normalized field is a transient, system generated field which expresses the identifier in a standard format that is used for grouping. In general, normalized identifiers trim extraneous text such as the identifier type or the expression of the identifier as a url. Additional normalization is done based on the rules of the identifier type and may include setting all alpha characters to lower case, or transforming spaces, dashes, periods and other characters that can be treated as equivalent. [See the full normalization rules](https://github.com/ORCID/ORCID-Source/tree/master/orcid-core/src/main/java/org/orcid/core/utils/v3/identifiers). Identifiers which can not be normalized will return a error message when reading them.
99
+
100
+ ### Affiliations
101
+ - Addition of new affiliation sections: Distinction, Invited-position, Membership, Qualification, and Service in addition to the existing Education and Employment sections. For more information see [Affiliations tutorial](https://github.com/ORCID/ORCID-Source/blob/master/orcid-api-web/tutorial/affiliations.md)
102
+ - Summary information now available for each section including affiliation source, role-title, department-name, dates, organization and external-ids
103
+ - Addition of optional element *common:external-ids* for identifiers that apply to the affiliation itself (*common:disambiguated-organization-identifier* should continue to be be used for organizational identifiers)
104
+ - Grouping of affiliations using external-ids, including returning affiliations in the *activities:affiliation-group* tag when reading an entire section.
105
+ - *common:start-date* is required if *common:end-date* is provided
106
+ - Addition of optional element *common:url* for recording links about the affiliation
107
+ - Addition of optional element *common:external-ids* for recording identifiers for the affiliation
108
+ - Disambiguated organization identifier is now required and must be a valid Ringgold, FundRef, or GRID identifier
109
+ - Use of common namespace for *common:department-name*, *common:role-title* and *common:organization*
110
+
111
+ ### Research-resources
112
+ - This new section of the ORCID record captures information about things that researchers use for their research which require a specific proposal process or credential to access, such as collections, equipment, infrastructure, and services. For more information see the [Research-resource tutorial](https://github.com/ORCID/ORCID-Source/blob/master/orcid-api-web/tutorial/research-resources.md).
113
+
114
+ ### Works
115
+ - an external-id with a *self* relationship is now required when posting works
116
+ - *work:journal-title* field is returned with the work summary
117
+ - Addition of *common:external-id-normalized* when reading works for normalized work identifiers
118
+ - Use of common namespace for *common:url* replacing *work:url* and this field is now returned in the work summary
119
+ - Addition of *annotation*, *software* and *physical object* to the list of [supported work types](https://members.orcid.org/api/resources/work-types)
120
+ - work type *dissertation* has been migrated to *dissertation-thesis*
121
+
122
+ ### Fundings
123
+ - Disambiguated organization identifier is now required and must be a valid Ringgold, FundRef, or GRID identifier
124
+ - Use of common namespace for *common:organization*, replacing *funding:organization*
125
+ - Use of common namespace for *common:url* replacing *funding:url* and this field is now returned in the funding summary
126
+ - *common:start-date* is required if *common:end-date* is provided
127
+
128
+ ### Peer-review
129
+ - *reviewer-role* and *review-type* are returned with the peer-review summary
130
+ - Disambiguated organization identifier is now required and must be a valid Ringgold, FundRef, or GRID identifier
131
+ - Addition of *common:external-id-normalized* when reading peer-reviews for normalized peer-review identifiers
132
+ - Addition of *grant*, *contract*, *award*, *salary-award*, and *research-resource-proposal* to supported subject types
133
+
134
+ ## Sample files:
135
+
136
+ - [read activities-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/activities-3.0.xml)
137
+ - [read address-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/address-3.0.xml)
138
+ - [write address-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/address-3.0.xml)
139
+ - [write bulk-work xml-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/bulk-work-3.0.xml)
140
+ - [write bulk-work-3.0.json](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/bulk-work-3.0.json)
141
+ - [read biography-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/biography-3.0.xml)
142
+ - [distinction-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/distinction-3.0.xml)
143
+ - [write distinction-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/distinction-3.0.xml)
144
+ - [read distinctions-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/distinctions-3.0.xml)
145
+ - [read education-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/education-3.0.xml)
146
+ - [write education-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/education-3.0.xml)
147
+ - [read educations-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/educations-3.0.xml)
148
+ - [read email-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/email-3.0.xml)
149
+ - [read emails-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/emails-3.0.xml)
150
+ - [read employment-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/employment-3.0.xml)
151
+ - [write employment-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/employment-3.0.xml)
152
+ - [read employments-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/employments-3.0.xml)
153
+ - [error-message-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/error-3.0.xml)
154
+ - [read external-identifier-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/external-identifier-3.0.xml)
155
+ - [write external-identifier-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/external-identifier-3.0.xml)
156
+ - [read external-identifiers-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/external-identifiers-3.0.xml)
157
+ - [read funding-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/funding-3.0.xml)
158
+ - [write funding-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/funding-3.0.xml)
159
+ - [read fundings-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/fundings-3.0.xml)
160
+ - [read invited-position-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/invited-position-3.0.xml)
161
+ - [write invited-position-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/invited-position-3.0.xml)
162
+ - [read invited-positions-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/invited-positions-3.0.xml)
163
+ - [read keyword-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/keyword-3.0.xml)
164
+ - [write keyword-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/keyword-3.0.xml)
165
+ - [read keywords-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/keywords-3.0.xml)
166
+ - [read membership-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/membership-3.0.xml)
167
+ - [write membership-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/membership-3.0.xml)
168
+ - [read memberships-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/memberships-3.0.xml)
169
+ - [read other-name-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/other-name-3.0.xml)
170
+ - [write other-name-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/other-name-3.0.xml)
171
+ - [read other-names-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/other-names-3.0.xml)
172
+ - [read peer-review-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/peer-review-3.0.xml)
173
+ - [write full peer-review-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/peer-review-full-3.0.xml)
174
+ - [write simple peer-review-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/peer-review-simple-3.0.xml)
175
+ - [read peer-reviews-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/peer-reviews-3.0.xml)
176
+ - [read person-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/person-3.0.xml)
177
+ - [read personal-details-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/personal-details-3.0.xml)
178
+ - [read qualification-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/qualification-3.0.xml)
179
+ - [write qualification-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/qualification-3.0.xml)
180
+ - [read qualifications-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/qualification-3.0.xml)
181
+ - [read research-resource-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/research-resource-3.0.xml)
182
+ - [write research-resource-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/research-resource-3.0.xml)
183
+ - [read research-resources-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/research-resource-3.0.xml)
184
+ - [read researcher-url-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/researcher-url-3.0.xml)
185
+ - [write researcher-url-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/researcher-url-3.0.xml)
186
+ - [read researcher-urls-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/researcher-urls-3.0.xml)
187
+ - [search-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/search-3.0.xml)
188
+ - [read service-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/service-3.0.xml)
189
+ - [write service-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/service-3.0.xml)
190
+ - [read services-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/services-3.0.xml)
191
+ - [read work-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/work-3.0.xml)
192
+ - [write full work-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/work-full-3.0.xml)
193
+ - [write simple work-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/write_samples/work-simple-3.0.xml)
194
+ - [read works-3.0.xml](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/works-3.0.xml)
195
+
196
+ For working with json see [ORCID conversion util](https://github.com/ORCID/orcid-conversion-lib)
197
+
198
+ ## REST API Reference
199
+
200
+ ### API Tutorials
201
+ - [General guide to the ORCID API](https://github.com/ORCID/ORCID-Source/tree/master/orcid-api-web)
202
+ - [Tutorials for reading and writing to ORCID records](https://github.com/ORCID/ORCID-Source/tree/master/orcid-api-web/tutorial)
203
+
204
+ ### Swagger
205
+
206
+ The swagger interfaces to the API available at:
207
+ - [member](https://api.orcid.org/v3.0/)
208
+ - [public](https://pub.orcid.org/v3.0/)
209
+
210
+ ### Scopes
211
+ | Scope | Request method | Obtain Access Token Through | Expires In | API |
212
+ |-----------------|-------------|--------------------------|----------------------------------|-------------|
213
+ | /authenticate | GET| [3-legged OAuth](https://github.com/ORCID/ORCID-Source/tree/master/orcid-api-web#authenticating-users-and-using-oauth--openid-connect)| When expired or revoked by user | Public API and Member API |
214
+ | /activities/update |POST, PUT, DELETE| [3-legged OAuth](https://github.com/ORCID/ORCID-Source/tree/master/orcid-api-web#authenticating-users-and-using-oauth--openid-connect)| When expired or revoked by user | Member API |
215
+ | /person/update |POST, PUT, DELETE| [3-legged OAuth](https://github.com/ORCID/ORCID-Source/tree/master/orcid-api-web#authenticating-users-and-using-oauth--openid-connect)| When expired or revoked by user | Member API |
216
+ | /read-limited |GET| [3-legged OAuth](https://github.com/ORCID/ORCID-Source/tree/master/orcid-api-web#authenticating-users-and-using-oauth--openid-connect)| When expired or revoked by user | Member API |
217
+ | /read-public |GET| [Client credentials](https://github.com/ORCID/ORCID-Source/tree/master/orcid-api-web#generate-a-two-step-read-public-access-token) | When revoked by ORCID | Public API and Member API |
218
+ | /webhook |PUT, DELETE| [Client credentials](https://github.com/ORCID/ORCID-Source/tree/master/orcid-api-web#generate-a-two-step-read-public-access-token) | When revoked by ORCID | Premium Member API |
219
+ | openid | GET | [OpenID Connect 1.0](https://github.com/ORCID/ORCID-Source/blob/master/orcid-web/ORCID_AUTH_WITH_OPENID_CONNECT.md) | When expired or revoked by user | Public API and Member API |
220
+
221
+ Multiple scopes can be requested with a single access token by listing the requested scopes with a space between each in the authorization URL.
222
+
223
+
224
+ ### Calls
225
+ | Action | HTTP method | Scope | URL |
226
+ |-------------------------|-------------|--------------------------|----------------------------------------------------------|
227
+ | Read the entire record | GET | /read-limited or /read-public | https://[HOST]/v3.0/[ORCID]/record |
228
+ | Read an activities section | GET | /read-limited or /read-public | https://[HOST]/v3.0/[ORCID]/[SECTION]s |
229
+ | Read a person section | GET | /read-limited or /read-public | https://[HOST]/v3.0/[ORCID]/[SECTION] |
230
+ | Read a single item | GET | /read-limited or /read-public | https://[HOST]/v3.0/[ORCID]/[SECTION]/[PUT-CODE] |
231
+ | Add a person item | POST | /person/update | https://[HOST]/v3.0/[ORCID]/[SECTION] |
232
+ | Update a person item | PUT | /person/update | https://[HOST]/v3.0/[ORCID]/[SECTION]/[PUT-CODE] |
233
+ | Delete a person item | DELETE | /person/update | https://[HOST]/v3.0/[ORCID]/[SECTION]/[PUT-CODE] |
234
+ | Add an activity | POST | /activities/update | https://[HOST]/[ORCID]/[SECTION] |
235
+ | Update an activity | PUT | /activities/update | https://[HOST]/v3.0/[ORCID]/[SECTION]/[PUT-CODE] |
236
+ | Delete an activity | DELETE | /activities/update | https://[HOST]/v3.0/[ORCID]/[SECTION]/[PUT-CODE] |
237
+ | Add multiple works| POST | /read-limited or /read-public | https://[HOST]/v3.0/[ORCID]/works |
238
+ | Read multiple works| GET | /activities/update | https://[HOST]/v3.0/[ORCID]/works/[PUT-CODE1],[PUT-CODE2] |
239
+ | Search records | GET | /read-public | https://[HOST]/v3.0/search?q=[SOLR-QUERY]* |
240
+
241
+ [HOST] is the ORCID environment you are using
242
+ - api.sandbox.orcid.org for the Member API on the ORCID Sandbox
243
+ - pub.sandbox.orcid.org for the Public API on the ORCID Sandbox (/read-public scope only)
244
+ - api.orcid.org for the Member API on the production ORCID Registry
245
+ - pub.orcid.org for the Public API on the production ORCID Registry (/read-public scope only)
246
+
247
+ [ORCID] is the ORCID iD for the record.
248
+
249
+ [SECTION] can be one of the following:
250
+ - activities
251
+ - address
252
+ - biography *
253
+ - distinction
254
+ - education
255
+ - email *
256
+ - employment
257
+ - external-identifiers
258
+ - funding
259
+ - invited-position
260
+ - keywords
261
+ - membership
262
+ - other-names
263
+ - peer-review
264
+ - person *
265
+ - personal-details *
266
+ - qualification
267
+ - research-resource
268
+ - researcher-urls
269
+ - service
270
+ - work
271
+
272
+ **Notes:**
273
+ - biography, email, person and personal-details sections are read only
274
+ - when reading and posting multiple works a maximum of 100 works can be accessed with a single call.
275
+ - When searching by default a maximum of 100 results will be returned. The `rows` parameter can be used to increase the number or results, but only up to 200. The `start` parameter (integer pointing to the zero-based position of the first result to be returned) can be used to page through larger results sets. See [Searching the API tutorial](https://github.com/ORCID/ORCID-Source/blob/master/orcid-api-web/tutorial/search.md)
276
+
277
+ ## OpenID Connect
278
+ In addition to the REST API, ORCID Supports [OpenID Connect](https://github.com/ORCID/ORCID-Source/blob/master/orcid-web/ORCID_AUTH_WITH_OPENID_CONNECT.md) and an [Implicit workflow](https://github.com/ORCID/ORCID-Source/blob/master/orcid-web/ORCID_AUTH_WITH_OPENID_CONNECT.md#implicit-flow).
279
+
280
+ ## Examples
281
+
282
+ ### Read sections
283
+
284
+ | Item |Scope | Example cURL Statement |
285
+ |--------------------|--------------------------|----------------------------------------------------------------|
286
+ | Entire record | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/record'```|
287
+ | Activities summary | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/activities'```|
288
+ | Addresses | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/address'```|
289
+ | Distinction summary | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/distinctions'```|
290
+ | Education summary | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/educations'```|
291
+ | Emails | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/email'```|
292
+ | Employment summary | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/employments'```|
293
+ | External identifiers | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/external-identifiers'```|
294
+ | Funding summary | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/fundings'```|
295
+ | Invited position summary | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/invited-position'```|
296
+ | Keywords | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/keywords'```|
297
+ | Membership summary | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/memberships'```|
298
+ | Other names | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/other-names'```|
299
+ | Peer review summary| /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/peer-reviews'```|
300
+ | Personal details | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/personal-details'```|
301
+ | Person | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/person'```|
302
+ | Qualification summary | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/qualifications'```|
303
+ | Research-resource summary | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/research-resources'```|
304
+ | Researcher URLs | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/researcher-urls'```|
305
+ | Service summary | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/services'```|
306
+ | Works summary | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/works'```|
307
+
308
+
309
+ ### Read Record Items
310
+ | Item |Scope | Example cURL Statement |
311
+ |--------------------|--------------------------|----------------------------------------------------------------|
312
+ | Address | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/address/4556'```|
313
+ | Biography | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/biography'```|
314
+ | Distinction | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/distinction/29770'```|
315
+ | Education | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/education/22423'```|
316
+ | Employment | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/employment/22411'```|
317
+ | External identifier| /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/external-identifiers/3193'```|
318
+ | Funding | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/funding/4413'```|
319
+ | Invited position | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/invited-position/29778'```|
320
+ | Keyword | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/keywords/4504'```|
321
+ | Membership | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/membership/29779'```|
322
+ | Other names | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/other-names/15812'```|
323
+ | Peer review | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/peer-review/1374'```|
324
+ | Qualification | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/peer-review/29769'```|
325
+ | Research-resource | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/research-resource/1000'```|
326
+ | Researcher URL | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/researcher-urls/41387'```|
327
+ | Service | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/service/29773'```|
328
+ | Work | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/work/733536'```|
329
+ | Multiple Works | /read-limited or /read-public|```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/works/733535,733536'```|
330
+
331
+ When reading multiple works the contents of each work is returned or an error code is returned if there is an issue with a single work.
332
+
333
+
334
+ ### Add Record Items
335
+ |Item |Scope | Example cURL Statement |
336
+ |---------|----------------|-------------------------|
337
+ | Address |/person/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/address.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/address```|
338
+ | Distinction |/activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/distinction-item.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/distinction' ```|
339
+ | Education |/activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/education-item.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/education' ```|
340
+ | Employment | /activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/employment-item.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/employment' ```|
341
+ | External identifiers | /person/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/external_identifier.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/external-identifiers```|
342
+ | Funding |/activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/funding-item.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/funding'```|
343
+ | Invited position |/activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/invited-position-item.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/invited-position'```|
344
+ | Keywords |/person/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/keyword.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/keywords```|
345
+ | Membership |/person/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/membership-item.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/membership ```|
346
+ | Other names |/person/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/other-name.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/other-names'```|
347
+ | Peer review |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/peer-review-item.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/peer-review'```|
348
+ | Qualification |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/qualification-item.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/qualification'```|
349
+ | Research-resource |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/qualification-item.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/research-resource'```|
350
+ | Researcher URL |/person/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/researcher-url.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/researcher-urls'```|
351
+ | Service |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/service-item.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/service'```|
352
+ | Work |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/work.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/work'```|
353
+ | Multiple works |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/works.xml' -X POST 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/works'```|
354
+
355
+ When posting multiple works the contents of each work is returned or an error code is returned if there is an issue with a single work, see [bulk work error sample](https://github.com/ORCID/orcid-model/blob/master/src/main/resources/record_3.0/samples/read_samples/bulk-work-error.xml).
356
+
357
+ ### Update Record Items
358
+ |Item |Scope | Example cURL Statement |
359
+ |------|----------------|---------------------|
360
+ | Address |/person/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/address.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/address/[PUT-CODE]```|
361
+ | Distinction |/activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/distinction-item-updated.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/distinction/[PUT-CODE]' ```|
362
+ | Education |/activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/education-item-updated.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/education/[PUT-CODE]' ```|
363
+ | Employment | /activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/employment-item-updated.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/employment/[PUT-CODE]' ```|
364
+ | External identifiers |/person/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/external_identifier.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/external-identifiers/[PUT-CODE]```|
365
+ | Funding |/activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/funding-item-updated.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/funding/[PUT-CODE]'```|
366
+ | Invited position |/activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/invited-position-updated.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/invited-position/[PUT-CODE]'```|
367
+ | Keywords |/person/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/keyword.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/keywords/[PUT-CODE]```|
368
+ | Membership |/activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/membership-updated.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/membership/[PUT-CODE]'```|
369
+ | Other names |/person/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/other-name.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/other-names/[PUT-CODE]'```|
370
+ | Peer review |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/peer-review-item-updated.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/peer-review/[PUT-CODE]'```|
371
+ | Qualification |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/qualification-updated.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/qualification/[PUT-CODE]'```|
372
+ | Research-resource |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/qualification-updated.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/research-resource/[PUT-CODE]'```|
373
+ | Researcher URL |/person/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/researcher-url.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/researcher-urls/[PUT-CODE]'```|
374
+ | Service |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/service-updated.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/service/[PUT-CODE]'```|
375
+ | Work |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -d '@[FILE-PATH]/work-updated.xml' -X PUT 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/work/[PUT-CODE]'```|
376
+
377
+ When updating a record item, include the put code as an attribute in the root element, ex: ```<education:education put-code="14775" xmlns:common="http://www.orcid.org/ns/common" xmlns:education="http://www.orcid.org/ns/education" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.orcid.org/ns/education ../education-3.0.xsd ">```
378
+
379
+ ### Delete Record Items
380
+ |Item | Scope | Example cURL Statement |
381
+ |------|----------------|-------------------------|
382
+ | Address | /person/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/address/[PUT-CODE]```|
383
+ | Distinction | /activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/distinction/[PUT-CODE]' ```|
384
+ | Education | /activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/education/[PUT-CODE]' ```|
385
+ | Employment | /activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/employment/[PUT-CODE]' ```|
386
+ | External identifiers | /person/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/external-identifiers/[PUT-CODE]```|
387
+ | Funding | /activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/funding/[PUT-CODE]'```|
388
+ | Invited Position | /activities/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/invited-position/[PUT-CODE]'```|
389
+ | Keywords | /person/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/keywords/[PUT-CODE]```|
390
+ | Membership | /person/update |```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/membership/[PUT-CODE]```|
391
+ | Other names | /person/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/researcher-urls/[PUT-CODE]'```|
392
+ | Peer review | /activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/peer-review/[PUT-CODE]'```|
393
+ | Qualifiation | /activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/qualification/[PUT-CODE]'```|
394
+ | Research-resource | /activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/research-resource/[PUT-CODE]'```|
395
+ | Researcher URL | /person/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/researcher-urls/[PUT-CODE]'```|
396
+ | Service |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/service/[PUT-CODE]'```|
397
+ | Work |/activities/update|```curl -i -H 'Content-type: application/vnd.orcid+xml' -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'https://api.sandbox.orcid.org/v3.0/0000-0002-9227-8514/work/[PUT-CODE]'```|
398
+
399
+ ### Webhooks
400
+ |Item | Scope | Example cURL Statement |
401
+ |------|----------------|-------------------------|
402
+ | Register a webhook | /webhook|```curl -v -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X PUT 'http://api.sandbox.orcid.org/0000-0002-9227-8514/webhook/http%3A%2F%2Fencoded.url%2F0000-0002-9227-8514'```|
403
+ | Delete a webhook | /webhook |```curl -v -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' -X DELETE 'http://api.sandbox.orcid.org/0000-0002-9227-8514/webhook/http%3A%2F%2Fencoded.url%2F0000-0002-9227-8514' ```|
404
+
405
+ ### Search
406
+ | Item | Scope | Example cURL Statement |
407
+ |--------------------|--------------------------|-------------------------------------------------------|
408
+ | Search records | /read-public | ```curl -i -H "Accept: application/vnd.orcid+xml" -H 'Authorization: Bearer dd91868d-d29a-475e-9acb-bd3fdf2f43f4' 'https://api.sandbox.orcid.org/v3.0/search?q=Simpson'```|