-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcrossref-swagger.json
3944 lines (3944 loc) · 241 KB
/
crossref-swagger.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"swagger": "2.0",
"info": {
"title": "Crossref Unified Resource API",
"version": "0.1",
"description": "## Preamble\n\nThe Crossref REST API is one of [a variety of tools and APIs](https://www.crossref.org/services/metadata-retrieval/) that allow anybody to search and reuse our members' metadata in sophisticated ways.\n\nIf you read nothing else, please at least look at the [API TIPs](https://crossref.org/documentation/retrieve-metadata/rest-api/tips-for-using-the-crossref-rest-api/) document and the \"Etiquette\" section of this document. It will save you (and us) much heartburn.\n\n## Meta\n\n### Frequency of indexing\n\nRecords typically appear in the REST API within 20 minutes of their having been successfully deposited with Crossref.\n\nSummary information (e.g. counts, etc.) are processed in batch every 24 hours.\n\n### Learning about performance or availability problems\n\nWe record and report service issues on our [status page](http://status.crossref.org).\n\nYou might want to check this to see if we are already aware of a problem before you report it.\n\nWe also post notice of any ongoing performance problems with our services on our twitter feeds at [CrossrefOrg](https://twitter.com/CrossrefOrg) and [CrossrefSupport](https://twitter.com/@CrossrefSupport).\n\n### Reporting performance or availability problems\n\nReport performance/availability at our [support site](https://www.crossref.org/contact/).\n\n### Reporting bugs, requesting features\n\nPlease report bugs with the API or the documentation on our [issue tracker](https://gitlab.com/crossref/issues).\n\n### Documentation License\n\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by/4.0/88x31.png\" /></a><br />This work is licensed under a <a rel=\"license\" href=\"http://creativecommons.org/licenses/by/4.0/\">Creative Commons Attribution 4.0 International License</a>.\n\n### Metadata License\n\nCrossref asserts no claims of ownership to individual items of bibliographic metadata and associated Digital Object Identifiers (DOIs) acquired through the use of the Crossref Free Services. Individual items of bibliographic metadata and associated DOIs may be cached and incorporated into the user's content and systems.\n\n### Privacy\n\nWe also have a [privacy policy](https://www.crossref.org/privacy/).\n\n### Libraries\n\nYou might be able to get to a quick start with this API if you instead use one of the several libraries that have been written for the Crossref REST API. For example: \n\n- [crossref-commons](https://gitlab.com/crossref/crossref_commons_py) (Python, developed by Crossref)\n- [habanero](https://github.com/sckott/habanero) (Python)\n- [serrano](https://github.com/sckott/serrano) (Ruby)\n- [rcrossref](https://github.com/ropensci/rcrossref) (R)\n- [crossrefapi](https://github.com/fabiobatalha/crossrefapi) (Python)\n- [crossref-rs](https://github.com/MattsSe/crossref-rs) (rust)\n- [pitaya](https://github.com/naustica/Pitaya) (Julia)\n- [Crossref API Typescript client](https://www.npmjs.com/package/@jamesgopsill/crossref-client) (Typescript)\n\nThe above libraries are not necessarily maintained nor endorsed by Crossref. If you know of another library you would like to see listed here, please let us know by contacting us at [[email protected]](mailto:[email protected]).\n\n### Etiquette\n\nWe want to provide a public, open, and free API for all. And we don't want to unnecessarily burden developers (or ourselves) with cumbersome API tokens or registration processes in order to use the public REST API. For that to work, we ask that you be polite and try not to do anything that will take the public REST API down or otherwise make it unusable for others. Specifically, we encourage the following polite behaviour:\n\n- Cache data so you don't request the same data over and over again.\n- Actively monitor API response times. If they start to go up, back-off for a while. For example, add pauses between requests and/or reduce the number of parallel requests.\n- Specify a `User-Agent` header that properly identifies your script or tool and that provides a means of contacting you via email using \"mailto:\". For example: `GroovyBib/1.1 (https://example.org/GroovyBib/; mailto:[email protected]) BasedOnFunkyLib/1.4`. This way we can contact you if we see a problem.\n- report problems and/or ask questions on our [issue tracker](https://gitlab.com/crossref/issues).\n\nAlas, not all people are polite. And for this reason we reserve the right to impose rate limits and/or to block clients that are disrupting the public service.\n\n### Good manners = more reliable service\n\nBut we prefer carrots to sticks. As of September 18th 2017 any API queries that **use HTTPS and have appropriate contact information** will be directed to a special pool of API machines that are reserved for polite users.\n\nWhy are we doing this? Well- we don't want to force users to have to register with us. But this means that if some user of the public server writes a buggy script or ignores timeouts and errors- they can really bring the API service to its knees. What's more, it is very hard for us to identify these problem users because they tend to work off multiple parallel machines and use generic User-Agent headers. They are effectively anonymous. We're starting to have to spend a lot of time dealing with these problems and the degraded performance of the public API is affecting all the polite users as well.\n\nSo... we are keeping the public service as is. It will probably continue to fluctuate widely in performance. But now, if a client connects to the API using HTTPS and provides contact information either in their User-Agent header or as a parameter on their queries, then we will send them to a separate pool of machines. We expect to be able to better control the performance of these machines because, if a script starts causing problems, we can contact the people responsible for the script to ask them to fix it. Or, in extremis, we can block it.\n\nHow does it work? Simple. You can do one of two things to get directed to the \"polite pool\":\n\n1) Include a \"mailto\" parameter in your query. For example: `https://api.crossref.org/works?filter=has-full-text:true&[email protected]`\n2) Include a \"mailto:\" in your User-Agent header. For example: `GroovyBib/1.1 (https://example.org/GroovyBib/; mailto:[email protected]) BasedOnFunkyLib/1.4`.\n\nNote that this only works if you query the API using HTTPS. You really should be doing that anyway (wags finger).\n\n#### Frequently anticipated questions\n\n**Q:** Will you spam me with marketing [bumf](https://en.oxforddictionaries.com/definition/bumf) once you have our contact info?\n\n**A:** No. We will only use it to contact you about problems with your scripts.\n\n\n**Q:** Is this a secret plot to kill public access to your API?\n\n**A:** No. It is an attempt to keep the public API reliable.\n\n\n**Q:** What if I provide fake or incorrect contact info?\n\n**A:** That is not very polite. If there is a problem and you don't respond, we'll block you.\n\n\n**Q:** Does the contact info have to be a real name?\n\n**A:** No. As long as somebody actually receives and pays attention to email at the address, it can be pseudo-anonymous, or whatever.\n\n\n**Q:** How can I make sure that I am using the right pool?\n\n**A:** Every API response contains an `x-api-pool` HTTP header indicating the pool that was used to generate the response.\n\n#### Rate limits\n\nFrom time to time Crossref needs to impose rate limits to ensure that the free API is usable by all. Any rate limits that are in effect will be advertised in the `X-Rate-Limit-Limit` and `X-Rate-Limit-Interval` HTTP headers.\n\nFor ease-of-parsing, the `X-Rate-Limit-Interval` will always be expressed in seconds. So, for example the following tells you that you should expect to be able to perform 50 requests a second:\n\n```\nX-Rate-Limit-Limit: 50\nX-Rate-Limit-Interval: 1s\n```\n\nNote that if we wanted to adjust the measurement window, we could specify:\n\n```\nX-Rate-Limit-Limit: 3000\nX-Rate-Limit-Interval: 60s\n```\n\n#### Blocking\n\nThis is always our last resort, and you can generally avoid it if you include contact information in the `User-Agent` header or `mailto` parameter as described above.\n\nBut seriously... this is a bummer. We really want you to use the API. If you are polite about it, you shouldn't have any problems.\n\n### Use for production services\n\nWhat if you want to use our API for a production service that cannot depend on the performance uncertainties of the free and open public API? What if you don't want to be affected by impolite people who do not follow the API Etiquette guidelines? Well, if you’re interested in using these tools or APIs for production services, we [have a service-level offering](https://www.crossref.org/services/metadata-retrieval/metadata-plus/) called \"Plus\". This service provides you with access to all supported APIs and metadata, but with extra service and support guarantees.\n\n#### Authorization token for Plus service\n\nWhen you sign up for the Plus service, you will be issued an API token that you should put in the `Authorization` header of all your rest API requests. This token will ensure that said requests get directed to a pool of machines that are reserved for \"Plus\" SLA users. For example, with [curl](https://curl.haxx.se/):\n\n```\ncurl -X GET \\\n https://api.crossref.org/works \\\n -H 'Crossref-Plus-API-Token: Bearer yJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vY3Jvc3NyZWYub3JnLyIsImF1ZXYZImVuaGFuY2VkY21zIiwianRpIjoiN0M5ODlFNTItMTFEQS00QkY3LUJCRUUtODFCMUM3QzE0OTZEIn0.NYe3-O066sce9R1fjMzNEvP88VqSEaYdBY622FDiG8Uq' \\\n -H 'User-Agent: GroovyBib/1.1 (https://example.org/GroovyBib/; mailto:[email protected]) BasedOnFunkyLib/1.4'\n```\n\nNote that you can still be \"polite\" and identify yourself as well. And, of course, replace the fake token above with the real token.\n\n## API overview\n\nThe API is generally RESTFUL and returns results in JSON.\n\nThe API supports HTTP and HTTPS. Examples here are provided using HTTPS.\n\nYou should always url-encode DOIs and parameter values when using the API. DOIs are notorious for including characters that break URLs (e.g. semicolons, hashes, slashes, ampersands, question marks, etc.).\n\nNote url-encoding applies to cursors as well since they too are likely to include characters that will break URLs (e.g. `+` symbol)\n\nNote that, for the sake of clarity, the examples in this document do *not* url-encode DOIs or parameter values.\n\nThe API will only work for Crossref DOIs. You can test the registration agency for a DOI using the following route:\n\n`https://api.crossref.org/works/{doi}/agency`\n\nTesting the following Crossref DOI:\n\n`10.1037/0003-066X.59.1.29`\n\nUsing the URL:\n\n`https://api.crossref.org/works/10.1037/0003-066X.59.1.29/agency`\n\nWill return the following result:\n\n {\n status: \"ok\",\n message-type: \"work-agency\",\n message-version: \"1.0.0\",\n message: {\n DOI: \"10.1037/0003-066x.59.1.29\",\n agency: {\n id: \"crossref\",\n label: \"Crossref\"\n }\n }\n }\n\nIf you use any of the API calls listed below with a non-Crossref DOI, you will get a `404` HTTP status response. Typical agency IDs include `crossref`, `datacite`, `medra` and also `public` for test DOIs.\n\n## Result types\n\nAll results are returned in JSON. There are three general types of results:\n\n- Singletons\n- Headers-only\n- Lists\n\nThe mime-type for API results is `application/vnd.crossref-api-message+json`\n\n### Singletons\n\nSingletons are single results. Retrieving metadata for a specific identifier (e.g. DOI, ISSN, funder identifier) typically returns a singleton result.\n\n### Headers only\n\nYou can use HTTP HEAD requests to quickly determine \"existence\" of a singleton. The advantage of this technique is that it is very fast because it does not return any metadata- it only returns headers and an HTTP status code (200=exists, 404=does not exist).\n\nTo determine if member ID `98` exists:\n\n`curl --head \"http://api.crossref.org/members/98\"`\n\nTo determine if a journal with ISSN `1549-7712` exists:\n\n`curl --head \"http://api.crossref.org/journals/1549-7712\"`\n\n### Lists\n\nLists results can contain multiple entries. Searching or filtering typically returns a list result. A list has two parts:\n\n- Summary, which include the following information:\n\n - status (e.g. \"ok\", error)\n - message-type (e.g. \"work-list\" )\n - message-version (e.g. 1.0.0 )\n\n- Items, which will contain the items matching the query or filter.\n\nNote that the \"message-type\" returned will differ from the mime-type:\n\n- funder (singleton)\n- prefix (singleton)\n- member (singleton)\n- work (singleton)\n- work-list (list)\n- funder-list (list)\n- prefix-list (list)\n- member-list (list)\n\nNormally, an API list result will return both the summary and the items. If you want to just retrieve the summary, you can do so by specifying that the number of rows returned should be zero.\n\n#### Sort order\n\nIf the API call includes a query, then the sort order will be by the relevance score. If no query is included, then the sort order will be by DOI update date.\n\nThe API allows also for custom sorting. See the documentation for each endpoint to find the list of elements that you can sort by.\n\n#### Pagination\n\nLarge result sets can be traversed one of two ways: offsets or deep paging with cursor. Offsets are available on all `list` endpoints. Offsets are easier to use, but can be slow for larger sets, and the total number of results available through offsets is limited. Deep paging is available on selected endpoints, has better performance for large data sets, and there is no limit on total number of available results.\n\nSee the documentation for each endpoint for available paging options.\n",
"contact": {
"name": "Crossref",
"email": "[email protected]",
"url": "https://crossref.org"
}
},
"produces": [
"application/json"
],
"consumes": [
"application/json"
],
"tags": [
{
"name": "Funders",
"description": "Endpoints that expose funder related data"
},
{
"name": "Journals",
"description": "Endpoints that expose journal related data"
},
{
"name": "Works",
"description": "Endpoints that expose works related data"
},
{
"name": "Prefixes",
"description": "Endpoints that expose prefix related data"
},
{
"name": "Members",
"description": "Endpoints that expose member related data"
},
{
"name": "Types",
"description": "Endpoints that expose type related data"
},
{
"name": "Licenses",
"description": "Endpoints that expose license related data"
},
{
"name": "Deposits",
"description": "Endpoints that expose deposit related data. *Note* **These endpoints will be deprecated in the near future.**"
}
],
"paths": {
"/members/{id}/works": {
"get": {
"description": "Returns list of works associated with a Crossref member (deposited by a Crossref member) with {id}.\n## Queries\n\nFree form search queries can be made, for example, works that include `renear` or `ontologies` (or both):\n\n##\n\n```\n/works?query=renear+ontologies\n```\n\n\n## Field Queries\nField queries allow for queries that match only particular fields of metadata. For example, this query matches records that contain the tokens `richard` or `feynman` (or both) in any author field:\n\n##\n\n```\n/works?query.author=richard+feynman\n```\n\n##\n\nField queries can be combined with the general `query` parameter and each other. Each query parameter is ANDed with the others:\n\n##\n```\n/works?query.title=room+at+the+bottom&query.author=richard+feynman\n```\n\n##\n\nThis endpoint supports the following field queries:\n\n##\n\n+ `query.affiliation` - query contributor affiliations\n+ `query.author` - query author given and family names\n+ `query.bibliographic` - query bibliographic information, useful for citation look up, includes titles, authors, ISSNs and publication years\n+ `query.chair` - query chair given and family names\n+ `query.container-title` - query container title aka. publication name\n+ `query.contributor` - query author, editor, chair and translator given and family names\n+ `query.degree` - query degree\n+ `query.description` - query description\n+ `query.editor` - query editor given and family names\n+ `query.event-acronym` - query acronym of the event\n+ `query.event-location` - query location of the event\n+ `query.event-name` - query name of the event\n+ `query.event-sponsor` - query sponsor of the event\n+ `query.event-theme` - query theme of the event\n+ `query.funder-name` - query name of the funder\n+ `query.publisher-location` - query location of the publisher\n+ `query.publisher-name` - query publisher name\n+ `query.standards-body-acronym` - query acronym of the standards body\n+ `query.standards-body-name` - query standards body name\n+ `query.title` - query title\n+ `query.translator` - query translator given and family names\n## Sort\n\nResults can be sorted by applying the `sort` and `order` parameters. `sort` sets the field by which results will be sorted. `order` sets the result ordering, either `asc` or `desc` (default is `desc`).\n\nAn example that sorts results in order of publication, beginning with the least recent:\n\n##\n\n```\n/works?query=josiah+carberry&sort=published&order=asc\n```\n\n##\n\nThis endpoint supports sorting by the following elements:\n\n##\n\n+ `created` - sort by created date\n+ `deposited` - sort by time of most recent deposit\n+ `indexed` - sort by time of most recent index\n+ `is-referenced-by-count` - sort by number of times this DOI is referenced by other Crossref DOIs\n+ `issued` - sort by issued date (earliest known publication date)\n+ `published` - sort by publication date\n+ `published-online` - sort by online publication date\n+ `published-print` - sort by print publication date\n+ `references-count` - sort by number of references included in the references section of the document identified by this DOI\n+ `relevance` - sort by relevance score\n+ `score` - sort by relevance score\n+ `updated` - sort by date of most recent change to metadata, currently the same as deposited\n## Facets\n\nFacet counts can be retrieved by enabling faceting. Facets are enabled by providing facet field names along with a maximum number of returned term values. The larger the number of returned values, the longer the query will take. Some facet fields can accept a `*` as their maximum, which indicates that all values should be returned.\n\n##\n\nFor example, to get facet counts for all work types:\n\n##\n```\n/works?facet=type-name:*\n```\n\n##\n\nThis endpoint supports the following facets:\n\n##\n\n+ `affiliation` - author affiliation\n+ `archive` - archive location\n+ `assertion` - custom Crossmark assertion name\n+ `assertion-group` - custom Crossmark assertion group name\n+ `category-name` - category name of work\n+ `container-title` - [max value 100], work container title, such as journal title, or book title\n+ `funder-doi` - funder DOI\n+ `funder-name` - funder literal name as deposited alongside DOI\n+ `issn` - [max value 100], journal ISSN (any - print, electronic, link)\n+ `journal-issue` - journal issue number\n+ `journal-volume` - journal volume\n+ `license` - license URI of work\n+ `link-application` - intended application of the full text link\n+ `orcid` - [max value 100], contributor ORCID\n+ `published` - earliest year of publication\n+ `publisher-name` - publisher name of work\n+ `relation-type` - relation type described by work or described by another work with work as object\n+ `ror-id` - institution ROR ID\n+ `source` - source of the DOI\n+ `type-name` - work type name, such as journal-article or book-chapter\n+ `update-type` - significant update type\n## Filters\n\nFilters allow you to select items based on specific criteria. All filter results are lists.\n\n##\n\nFor example:\n\n##\n```\n/works?filter=type:dataset\n```\n\n### Multiple filters\n\nMultiple filters can be specified in a single query. In such a case, different filters will be applied with AND semantics, while specifying the same filter multiple times will result in OR semantics - that is, specifying the filters:\n\n- `is-update:true`\n- `from-pub-date:2014-03-03`\n- `funder:10.13039/100000001`\n- `funder:10.13039/100000050`\n\nwould locate documents that are updates, were published on or after 3rd March 2014 and were funded by either the National Science Foundation (`10.13039/100000001`) or the National Heart, Lung, and Blood Institute (`10.13039/100000050`). These filters would be specified by joining each filter together with a comma:\n\n##\n```\n/works?filter=is-update:true,from-pub-date:2014-03-03,funder:10.13039/100000001,funder:10.13039/100000050\n```\n\n### Dot filters\n\nA filter with a dot in its name is special. The dot signifies that the filter will be applied to some other record type that is related to primary resource record type. For example, with work queries, one can filter on works that have an award, where the same award has a particular award number and award-giving funding agency:\n\n##\n```\n/works?filter=award.number:CBET-0756451,award.funder:10.13039/100000001\n```\n##\n\nHere we filter on works that have an award by the National Science Foundation that also has the award number `CBET-0756451`.\n\n### Note on dates\n\nThe dates in filters should always be of the form YYYY-MM-DD, YYYY-MM or YYYY. The date filters are inclusive. For example:\n\n* `from-pub-date:2018-09-18` filters works published on or after 18th September 2018\n* `from-created-date:2016-02-29,until-created-date:2016-02-29` filters works first deposited on 29th February 2016\n* `until-created-date:2010-06` filters works first deposited in or before June 2010\n* `from-update-date:2017,until-update-date:2017` filters works with metadata updated in 2017\n\nAlso note that date information in Crossref metadata can often be incomplete. So, for example, a publisher may only include the year and month of publication for a journal article. For a monograph they might just include the year. In these cases the API selects the earliest possible date given the information provided. So, for instance, if the publisher only provided 2013-02 as the published date, then the date would be treated as 2013-02-01. Similarly, if the publisher only provided the year 2013 as the date, it would be treated at 2013-01-01.\n\n### Note on owner prefixes\n\nThe prefix of a Crossref DOI does **NOT** indicate who currently owns the DOI. It only reflects who originally registered the DOI. Crossref metadata has an **prefix** element that records the current owner of the Crossref DOI in question.\n\n##\n\nCrossref also has member IDs for depositing organisations. A single member may control multiple owner prefixes, which in turn may control a number of DOIs. When looking at works published by a certain organisaton, member IDs and the member routes should be used.\n\n### Notes on incremental metadata updates\n\nWhen using time filters to retrieve periodic, incremental metadata updates, the `from-index-date` filter should be used over `from-update-date`, `from-deposit-date`, `from-created-date` and `from-pub-date`. The timestamp that `from-index-date` filters on is guaranteed to be updated every time there is a change to metadata requiring a reindex.\n\n##\n\nThis endpoint supports the following filters:\n\n##\n\n+ `alternative-id` - metadata for records with the given alternative ID, which may be a publisher-specific ID, or any other identifier a publisher may have provided\n+ `archive` - metadata where value of archive partner equals given archive name\n+ `article-number` - metadata for records with a given article number\n+ `assertion` - metadata for records with a given named assertion\n+ `assertion-group` - metadata for records with an assertion in a given group\n+ `award`\n + `award.funder` - metadata for records with award funder equal to given funder, optionally combine with `award.number`\n + `award.number` - metadata for records with award number equal to given number, optionally combine with `award.funder`\n+ `category-name` - metadata for records with category label equal to given name, category labels come from the list published by Scopus\n+ `citation-id`\n+ `clinical-trial-number` - metadata for records with given clinical trial number\n+ `container-title` - metadata with a publication title that exactly equals given title\n+ `content-domain` - metadata where the publisher records a given domain name as the location Crossmark content will appear\n+ `doi` - metadata describing given DOI\n+ `from-accepted-date` - [date], metadata where accepted date is since given date (inclusive)\n+ `from-approved-date` - [date], metadata where approved date is since given date (inclusive)\n+ `from-awarded-date` - [date], metadata where award date is since given date (inclusive)\n+ `from-created-date` - [date], metadata first deposited since given date (inclusive)\n+ `from-deposit-date` - [date], metadata last (re)deposited since given date (inclusive)\n+ `from-event-end-date` - [date], metadata where event end date is since given date (inclusive)\n+ `from-event-start-date` - [date], metadata where event start date is since given date (inclusive)\n+ `from-index-date` - [date], metadata indexed since given date (inclusive)\n+ `from-issued-date` - [date], metadata where issued date is since given date (inclusive)\n+ `from-online-pub-date` - [date], metadata where online published date is since given date (inclusive)\n+ `from-posted-date` - [date], metadata where posted date is since given date (inclusive)\n+ `from-print-pub-date` - [date], metadata where print published date is since given date (inclusive)\n+ `from-pub-date` - [date], metadata where published date is since given date (inclusive)\n+ `from-update-date` - [date], metadata updated since given date (inclusive), currently the same as `from-deposit-date`\n+ `full-text`\n + `full-text.type` - metadata where `resource` element's `content_type` attribute equals given version mime type (e.g. application/pdf)\n + `full-text.application` - [text-mining, similarity-checking or unspecified], metadata where `resource` link has given application\n + `full-text.version` - metadata where `resource` element's `content_version` attribute equals given version\n+ `funder` - metadata which include given funder id in FundRef data\n+ `funder-doi-asserted-by` - metadata where funder DOI was asserted by given body\n+ `group-title` - metadata with given group title\n+ `gte-award-amount` - metadata where award is greater than or equals given number\n+ `has-abstract` - [0 or 1], metadata for records with/without an abstract\n+ `has-affiliation` - [0 or 1], metadata for records with/without affiliation information\n+ `has-archive` - [0 or 1], metadata which includes/does not include name of archive partner\n+ `has-assertion` - [0 or 1], metadata for records with/without assertions\n+ `has-authenticated-orcid` - [0 or 1], metadata which includes/does not include one or more ORCIDs where the depositing publisher claims to have witness the ORCID owner authenticate with ORCID\n+ `has-award` - [0 or 1], metadata for records with/without award\n+ `has-clinical-trial-number` - [0 or 1], metadata for records with/without a clinical trial number\n+ `has-content-domain` - [0 or 1], metadata where the publisher records/does not record a domain name location for Crossmark content\n+ `has-description`\n+ `has-domain-restriction` - [0 or 1], metadata where the publisher restricts/does not restrict Crossmark usage to content domains\n+ `has-event` - [0 or 1], metadata for records with/without event\n+ `has-full-text` - [0 or 1], metadata that includes/does not include any full text `resource` elements\n+ `has-funder` - [0 or 1], metadata which includes/does not include one or more funder entry\n+ `has-funder-doi` - [0 or 1], metadata for records with/without funder DOI\n+ `has-license` - [0 or 1], metadata that includes/does not include any `license_ref` elements\n+ `has-orcid` - [0 or 1], metadata which includes/does not include one or more ORCIDs\n+ `has-references` - [0 or 1], metadata for works that have/don't have a list of references\n+ `has-relation` - [0 or 1], metadata for records that either assert/do not assert or are/are not the object of a relation\n+ `has-ror-id` - [0 or 1], metadata for records with/without ROR ID\n+ `has-update` - [0 or 1], metadata for records with/without update information\n+ `has-update-policy` - [0 or 1], metadata for records that include/do not include a link to an editorial update policy\n+ `is-update` - [0 or 1], metadata for records that represent/do not represent editorial updates\n+ `isbn` - metadata with given ISBN\n+ `issn` - metadata with given ISSN, format is xxxx-xxxx\n+ `license`\n + `license.url` - metadata where `license_ref` value equals given url\n + `license.version` - metadata where the `license_ref`'s `applies_to` attribute equals given version\n + `license.delay` - metadata where difference between publication date and the `license_ref`'s `start_date` attribute is <= than given delay (in days)\n+ `lte-award-amount` - metadata where award is less than or equals given number\n+ `member` - metadata belonging to a given Crossref member\n+ `orcid` - metadata where there is a contributor with given ORCID\n+ `prefix` - metadata belonging to a given DOI owner prefix (e.g. 10.1016)\n+ `relation`\n + `relation.type` - metadata for records with a relation with the given type from the Crossref relations schema (e.g. is-referenced-by, is-parent-of, is-preprint-of)\n + `relation.object-type` - metadata for records with a relation, where the object type matches given type from the Crossref relations schema (e.g. doi, issn)\n + `relation.object` - metadata for records with a relation, where the object identifier matches given identifier\n+ `ror-id` - metadata with given ROR ID\n+ `type` - metadata records whose type equals given type, type must be an ID value from the list of types returned by the /types resource\n+ `type-name` - metadata for records with type name equal to given name\n+ `until-accepted-date` - [date], metadata where accepted date is before given date (inclusive)\n+ `until-approved-date` - [date], metadata where approved date is before given date (inclusive)\n+ `until-awarded-date` - [date], metadata where award date is before given date (inclusive)\n+ `until-created-date` - [date], metadata first deposited before given date (inclusive)\n+ `until-deposit-date` - [date], metadata last (re)deposited before given date (inclusive)\n+ `until-event-end-date` - [date], metadata where event end date is before given date (inclusive)\n+ `until-event-start-date` - [date], metadata where event start date is before given date (inclusive)\n+ `until-index-date` - [date], metadata indexed before given date (inclusive)\n+ `until-issued-date` - [date], metadata where issued date is before given date (inclusive)\n+ `until-online-pub-date` - [date], metadata where online published date is before given date (inclusive)\n+ `until-posted-date` - [date], metadata where posted date is before given date (inclusive)\n+ `until-print-pub-date` - [date], metadata where print published date is before given date (inclusive)\n+ `until-pub-date` - [date], metadata where published date is before given date (inclusive)\n+ `until-update-date` - [date], metadata updated before given date (inclusive), currently the same as `until-deposit-date`\n+ `update-type` - metadata with given update type\n+ `updates` - metadata for records that represent editorial updates to given DOI\n## Elements\n\nCrossref metadata records can be quite large. Sometimes you just want a few elements from the schema. You can \\\"select\\\" a subset of elements to return using the `select` parameter. This can make your API calls much more efficient. For example:\n\n##\n```\n/works?select=DOI,prefix,title\n```\n\n##\n\nThis endpoint supports selecting the following elements.\n\n##\n\n+ `DOI`\n+ `ISBN`\n+ `ISSN`\n+ `URL`\n+ `abstract`\n+ `accepted`\n+ `alternative-id`\n+ `approved`\n+ `archive`\n+ `article-number`\n+ `assertion`\n+ `author`\n+ `chair`\n+ `clinical-trial-number`\n+ `container-title`\n+ `content-created`\n+ `content-domain`\n+ `created`\n+ `degree`\n+ `deposited`\n+ `editor`\n+ `event`\n+ `funder`\n+ `group-title`\n+ `indexed`\n+ `is-referenced-by-count`\n+ `issn-type`\n+ `issue`\n+ `issued`\n+ `license`\n+ `link`\n+ `member`\n+ `original-title`\n+ `page`\n+ `posted`\n+ `prefix`\n+ `published`\n+ `published-online`\n+ `published-print`\n+ `publisher`\n+ `publisher-location`\n+ `reference`\n+ `references-count`\n+ `relation`\n+ `score`\n+ `short-container-title`\n+ `short-title`\n+ `standards-body`\n+ `subject`\n+ `subtitle`\n+ `title`\n+ `translator`\n+ `type`\n+ `update-policy`\n+ `update-to`\n+ `updated-by`\n+ `volume`\n## Pagination with offsets\n\nOffsets are an easy way to iterate over results sets up to 10,000 items. This limit applies to the sum of values of parameters `offset` + `rows`.\n\n##\n\nThe number of items returned in a single response is controlled by `rows` parameter (default is 20, and maximum is 1,000). To limit results to 5, for example, you could do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5\n```\n\n##\n\n`offset` parameter can be used to retrieve items starting from a specific index of the result list. For example, to select the second set of 5 results (i.e. results 6 through 10), you would do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5&offset=5\n```\n\n##\n\n## Deep paging\n\nDeep paging using cursors can be used to iterate over large result sets, without any limits on their size.\n\n##\n\nTo use deep paging make a query as normal, but include the `cursor` parameter with a value of `*`, for example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=*\n```\n\n##\n\nA `next-cursor` field will be provided in the JSON response. To get the next page of results, pass the value of `next-cursor` as the cursor parameter (remember to URL-encode). For example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=<value of next-cursor parameter>\n```\n\n##\n\nClients should check the number of returned items. If the number of returned items is equal to the number of expected rows then the end of the result set has been reached. Using next-cursor beyond this point will result in responses with an empty items list.\n\n##\n\n## Sample\n\nBeing able to select random results is useful for both testing and sampling. You can use the `sample` parameter to retrieve random results. So, for example, the following selects 10 random works:\n\n##\n```\n/works?sample=10\n```\n##\n\nNote that when you use the `sample` parameter, the `rows` and `offset` parameters are ignored.\n\n\n## Parameter combinations\n\nAny combination of `query`, `query.*`, `filter`, `facet`, `select` and `sort` can be used with offsets. Sampling cannot be combined with offsets.\n\n##\n\nAny combination of `query`, `query.*`, `filter`, `facet`, `select` and `sort` may also be used with deep paging cursors. `rows` may also be specified.\n\n##\n\n`offset` and `sample` cannot be used in combination with cursors.\n\n##\n",
"parameters": [
{
"in": "path",
"name": "id",
"description": "Crossref member ID",
"required": true,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "rows",
"description": "The number of rows per page",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "order",
"description": "Combined with sort can be used to specify the order of results, e.g. asc or desc",
"required": false,
"pattern": "(asc|desc)",
"type": "string"
},
{
"in": "query",
"name": "facet",
"description": "Exposes the ability to retrieve counts for pre-defined facets e.g. `type-name:*` returns counts of all works by type",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "sample",
"description": "Exposes the ability to return `N` randomly sampled items",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "sort",
"description": "Exposes the ability to sort results by a certain field, e.g. `score`",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "offset",
"description": "The number of rows to skip before returning",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "mailto",
"description": "The email address to identify yourself and be in the \"polite pool\"",
"required": false,
"pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+\\.[A-Za-z]{2,6}$",
"type": "string"
},
{
"in": "query",
"name": "select",
"description": "Exposes the ability to select certain fields, supports a comma separated list of fields, e.g. `DOI,volume`",
"required": false,
"pattern": "^\\w+(,\\w+)*$",
"type": "string"
},
{
"in": "query",
"name": "query",
"description": "Exposes the ability to free text query certain fields",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "filter",
"description": "Exposes the ability to filter by certain fields, supports a comma separated list of lucene filters, e.g. `content-domain:psychoceramics.labs.crossref.org`",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "cursor",
"description": "Exposes the ability to deep page through large result sets, where offset would cause performance problems",
"required": false,
"type": "string"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/WorksMessage"
},
"description": "A list of works"
}
},
"tags": [
"Members"
]
}
},
"/journals": {
"get": {
"description": "Return a list of journals in the Crossref database.\n## Queries\n\nFree form search queries can be made, for example, journals that include `pharmacy` and `health`:\n\n##\n\n```\n/journals?query=pharmacy+health\n```\n\n\n## Pagination with offsets\n\nOffsets can be used to iterate over the results. For this route, the maximum number of available results is 80,000, which in this case allows to retrieve all the indexed items. This limit applies to the sum of values of parameters `offset` + `rows`.\n\n##\n\nThe number of items returned in a single response is controlled by `rows` parameter (default is 20, and maximum is 1,000). To limit results to 5, for example, you could do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5\n```\n\n##\n\n`offset` parameter can be used to retrieve items starting from a specific index of the result list. For example, to select the second set of 5 results (i.e. results 6 through 10), you would do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5&offset=5\n```\n\n##\n\n## Deep paging\n\nDeep paging using cursors can be used to iterate over large result sets, without any limits on their size.\n\n##\n\nTo use deep paging make a query as normal, but include the `cursor` parameter with a value of `*`, for example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=*\n```\n\n##\n\nA `next-cursor` field will be provided in the JSON response. To get the next page of results, pass the value of `next-cursor` as the cursor parameter (remember to URL-encode). For example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=<value of next-cursor parameter>\n```\n\n##\n\nClients should check the number of returned items. If the number of returned items is equal to the number of expected rows then the end of the result set has been reached. Using next-cursor beyond this point will result in responses with an empty items list.\n\n##\n",
"parameters": [
{
"in": "query",
"name": "cursor",
"description": "Exposes the ability to deep page through large result sets, where offset would cause performance problems",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "query",
"description": "Exposes the ability to free text query certain fields",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "rows",
"description": "The number of rows per page",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "mailto",
"description": "The email address to identify yourself and be in the \"polite pool\"",
"required": false,
"pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+\\.[A-Za-z]{2,6}$",
"type": "string"
},
{
"in": "query",
"name": "offset",
"description": "The number of rows to skip before returning",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/JournalsMessage"
},
"description": "A list of journals"
}
},
"tags": [
"Journals"
]
}
},
"/members/{id}": {
"get": {
"description": "Returns metadata for a Crossref member, as an example use id 324",
"parameters": [
{
"in": "path",
"name": "id",
"description": "",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/MemberMessage"
},
"description": "The prefix data identified by {id}."
},
"404": {
"description": "The prefix data identified by {id} does not exist."
}
},
"tags": [
"Members"
]
}
},
"/prefixes/{prefix}/works": {
"get": {
"description": "Returns list of works associated with specified {prefix}.\n## Queries\n\nFree form search queries can be made, for example, works that include `renear` or `ontologies` (or both):\n\n##\n\n```\n/works?query=renear+ontologies\n```\n\n\n## Field Queries\nField queries allow for queries that match only particular fields of metadata. For example, this query matches records that contain the tokens `richard` or `feynman` (or both) in any author field:\n\n##\n\n```\n/works?query.author=richard+feynman\n```\n\n##\n\nField queries can be combined with the general `query` parameter and each other. Each query parameter is ANDed with the others:\n\n##\n```\n/works?query.title=room+at+the+bottom&query.author=richard+feynman\n```\n\n##\n\nThis endpoint supports the following field queries:\n\n##\n\n+ `query.affiliation` - query contributor affiliations\n+ `query.author` - query author given and family names\n+ `query.bibliographic` - query bibliographic information, useful for citation look up, includes titles, authors, ISSNs and publication years\n+ `query.chair` - query chair given and family names\n+ `query.container-title` - query container title aka. publication name\n+ `query.contributor` - query author, editor, chair and translator given and family names\n+ `query.degree` - query degree\n+ `query.description` - query description\n+ `query.editor` - query editor given and family names\n+ `query.event-acronym` - query acronym of the event\n+ `query.event-location` - query location of the event\n+ `query.event-name` - query name of the event\n+ `query.event-sponsor` - query sponsor of the event\n+ `query.event-theme` - query theme of the event\n+ `query.funder-name` - query name of the funder\n+ `query.publisher-location` - query location of the publisher\n+ `query.publisher-name` - query publisher name\n+ `query.standards-body-acronym` - query acronym of the standards body\n+ `query.standards-body-name` - query standards body name\n+ `query.title` - query title\n+ `query.translator` - query translator given and family names\n## Sort\n\nResults can be sorted by applying the `sort` and `order` parameters. `sort` sets the field by which results will be sorted. `order` sets the result ordering, either `asc` or `desc` (default is `desc`).\n\nAn example that sorts results in order of publication, beginning with the least recent:\n\n##\n\n```\n/works?query=josiah+carberry&sort=published&order=asc\n```\n\n##\n\nThis endpoint supports sorting by the following elements:\n\n##\n\n+ `created` - sort by created date\n+ `deposited` - sort by time of most recent deposit\n+ `indexed` - sort by time of most recent index\n+ `is-referenced-by-count` - sort by number of times this DOI is referenced by other Crossref DOIs\n+ `issued` - sort by issued date (earliest known publication date)\n+ `published` - sort by publication date\n+ `published-online` - sort by online publication date\n+ `published-print` - sort by print publication date\n+ `references-count` - sort by number of references included in the references section of the document identified by this DOI\n+ `relevance` - sort by relevance score\n+ `score` - sort by relevance score\n+ `updated` - sort by date of most recent change to metadata, currently the same as deposited\n## Facets\n\nFacet counts can be retrieved by enabling faceting. Facets are enabled by providing facet field names along with a maximum number of returned term values. The larger the number of returned values, the longer the query will take. Some facet fields can accept a `*` as their maximum, which indicates that all values should be returned.\n\n##\n\nFor example, to get facet counts for all work types:\n\n##\n```\n/works?facet=type-name:*\n```\n\n##\n\nThis endpoint supports the following facets:\n\n##\n\n+ `affiliation` - author affiliation\n+ `archive` - archive location\n+ `assertion` - custom Crossmark assertion name\n+ `assertion-group` - custom Crossmark assertion group name\n+ `category-name` - category name of work\n+ `container-title` - [max value 100], work container title, such as journal title, or book title\n+ `funder-doi` - funder DOI\n+ `funder-name` - funder literal name as deposited alongside DOI\n+ `issn` - [max value 100], journal ISSN (any - print, electronic, link)\n+ `journal-issue` - journal issue number\n+ `journal-volume` - journal volume\n+ `license` - license URI of work\n+ `link-application` - intended application of the full text link\n+ `orcid` - [max value 100], contributor ORCID\n+ `published` - earliest year of publication\n+ `publisher-name` - publisher name of work\n+ `relation-type` - relation type described by work or described by another work with work as object\n+ `ror-id` - institution ROR ID\n+ `source` - source of the DOI\n+ `type-name` - work type name, such as journal-article or book-chapter\n+ `update-type` - significant update type\n## Filters\n\nFilters allow you to select items based on specific criteria. All filter results are lists.\n\n##\n\nFor example:\n\n##\n```\n/works?filter=type:dataset\n```\n\n### Multiple filters\n\nMultiple filters can be specified in a single query. In such a case, different filters will be applied with AND semantics, while specifying the same filter multiple times will result in OR semantics - that is, specifying the filters:\n\n- `is-update:true`\n- `from-pub-date:2014-03-03`\n- `funder:10.13039/100000001`\n- `funder:10.13039/100000050`\n\nwould locate documents that are updates, were published on or after 3rd March 2014 and were funded by either the National Science Foundation (`10.13039/100000001`) or the National Heart, Lung, and Blood Institute (`10.13039/100000050`). These filters would be specified by joining each filter together with a comma:\n\n##\n```\n/works?filter=is-update:true,from-pub-date:2014-03-03,funder:10.13039/100000001,funder:10.13039/100000050\n```\n\n### Dot filters\n\nA filter with a dot in its name is special. The dot signifies that the filter will be applied to some other record type that is related to primary resource record type. For example, with work queries, one can filter on works that have an award, where the same award has a particular award number and award-giving funding agency:\n\n##\n```\n/works?filter=award.number:CBET-0756451,award.funder:10.13039/100000001\n```\n##\n\nHere we filter on works that have an award by the National Science Foundation that also has the award number `CBET-0756451`.\n\n### Note on dates\n\nThe dates in filters should always be of the form YYYY-MM-DD, YYYY-MM or YYYY. The date filters are inclusive. For example:\n\n* `from-pub-date:2018-09-18` filters works published on or after 18th September 2018\n* `from-created-date:2016-02-29,until-created-date:2016-02-29` filters works first deposited on 29th February 2016\n* `until-created-date:2010-06` filters works first deposited in or before June 2010\n* `from-update-date:2017,until-update-date:2017` filters works with metadata updated in 2017\n\nAlso note that date information in Crossref metadata can often be incomplete. So, for example, a publisher may only include the year and month of publication for a journal article. For a monograph they might just include the year. In these cases the API selects the earliest possible date given the information provided. So, for instance, if the publisher only provided 2013-02 as the published date, then the date would be treated as 2013-02-01. Similarly, if the publisher only provided the year 2013 as the date, it would be treated at 2013-01-01.\n\n### Note on owner prefixes\n\nThe prefix of a Crossref DOI does **NOT** indicate who currently owns the DOI. It only reflects who originally registered the DOI. Crossref metadata has an **prefix** element that records the current owner of the Crossref DOI in question.\n\n##\n\nCrossref also has member IDs for depositing organisations. A single member may control multiple owner prefixes, which in turn may control a number of DOIs. When looking at works published by a certain organisaton, member IDs and the member routes should be used.\n\n### Notes on incremental metadata updates\n\nWhen using time filters to retrieve periodic, incremental metadata updates, the `from-index-date` filter should be used over `from-update-date`, `from-deposit-date`, `from-created-date` and `from-pub-date`. The timestamp that `from-index-date` filters on is guaranteed to be updated every time there is a change to metadata requiring a reindex.\n\n##\n\nThis endpoint supports the following filters:\n\n##\n\n+ `alternative-id` - metadata for records with the given alternative ID, which may be a publisher-specific ID, or any other identifier a publisher may have provided\n+ `archive` - metadata where value of archive partner equals given archive name\n+ `article-number` - metadata for records with a given article number\n+ `assertion` - metadata for records with a given named assertion\n+ `assertion-group` - metadata for records with an assertion in a given group\n+ `award`\n + `award.funder` - metadata for records with award funder equal to given funder, optionally combine with `award.number`\n + `award.number` - metadata for records with award number equal to given number, optionally combine with `award.funder`\n+ `category-name` - metadata for records with category label equal to given name, category labels come from the list published by Scopus\n+ `citation-id`\n+ `clinical-trial-number` - metadata for records with given clinical trial number\n+ `container-title` - metadata with a publication title that exactly equals given title\n+ `content-domain` - metadata where the publisher records a given domain name as the location Crossmark content will appear\n+ `doi` - metadata describing given DOI\n+ `from-accepted-date` - [date], metadata where accepted date is since given date (inclusive)\n+ `from-approved-date` - [date], metadata where approved date is since given date (inclusive)\n+ `from-awarded-date` - [date], metadata where award date is since given date (inclusive)\n+ `from-created-date` - [date], metadata first deposited since given date (inclusive)\n+ `from-deposit-date` - [date], metadata last (re)deposited since given date (inclusive)\n+ `from-event-end-date` - [date], metadata where event end date is since given date (inclusive)\n+ `from-event-start-date` - [date], metadata where event start date is since given date (inclusive)\n+ `from-index-date` - [date], metadata indexed since given date (inclusive)\n+ `from-issued-date` - [date], metadata where issued date is since given date (inclusive)\n+ `from-online-pub-date` - [date], metadata where online published date is since given date (inclusive)\n+ `from-posted-date` - [date], metadata where posted date is since given date (inclusive)\n+ `from-print-pub-date` - [date], metadata where print published date is since given date (inclusive)\n+ `from-pub-date` - [date], metadata where published date is since given date (inclusive)\n+ `from-update-date` - [date], metadata updated since given date (inclusive), currently the same as `from-deposit-date`\n+ `full-text`\n + `full-text.type` - metadata where `resource` element's `content_type` attribute equals given version mime type (e.g. application/pdf)\n + `full-text.application` - [text-mining, similarity-checking or unspecified], metadata where `resource` link has given application\n + `full-text.version` - metadata where `resource` element's `content_version` attribute equals given version\n+ `funder` - metadata which include given funder id in FundRef data\n+ `funder-doi-asserted-by` - metadata where funder DOI was asserted by given body\n+ `group-title` - metadata with given group title\n+ `gte-award-amount` - metadata where award is greater than or equals given number\n+ `has-abstract` - [0 or 1], metadata for records with/without an abstract\n+ `has-affiliation` - [0 or 1], metadata for records with/without affiliation information\n+ `has-archive` - [0 or 1], metadata which includes/does not include name of archive partner\n+ `has-assertion` - [0 or 1], metadata for records with/without assertions\n+ `has-authenticated-orcid` - [0 or 1], metadata which includes/does not include one or more ORCIDs where the depositing publisher claims to have witness the ORCID owner authenticate with ORCID\n+ `has-award` - [0 or 1], metadata for records with/without award\n+ `has-clinical-trial-number` - [0 or 1], metadata for records with/without a clinical trial number\n+ `has-content-domain` - [0 or 1], metadata where the publisher records/does not record a domain name location for Crossmark content\n+ `has-description`\n+ `has-domain-restriction` - [0 or 1], metadata where the publisher restricts/does not restrict Crossmark usage to content domains\n+ `has-event` - [0 or 1], metadata for records with/without event\n+ `has-full-text` - [0 or 1], metadata that includes/does not include any full text `resource` elements\n+ `has-funder` - [0 or 1], metadata which includes/does not include one or more funder entry\n+ `has-funder-doi` - [0 or 1], metadata for records with/without funder DOI\n+ `has-license` - [0 or 1], metadata that includes/does not include any `license_ref` elements\n+ `has-orcid` - [0 or 1], metadata which includes/does not include one or more ORCIDs\n+ `has-references` - [0 or 1], metadata for works that have/don't have a list of references\n+ `has-relation` - [0 or 1], metadata for records that either assert/do not assert or are/are not the object of a relation\n+ `has-ror-id` - [0 or 1], metadata for records with/without ROR ID\n+ `has-update` - [0 or 1], metadata for records with/without update information\n+ `has-update-policy` - [0 or 1], metadata for records that include/do not include a link to an editorial update policy\n+ `is-update` - [0 or 1], metadata for records that represent/do not represent editorial updates\n+ `isbn` - metadata with given ISBN\n+ `issn` - metadata with given ISSN, format is xxxx-xxxx\n+ `license`\n + `license.url` - metadata where `license_ref` value equals given url\n + `license.version` - metadata where the `license_ref`'s `applies_to` attribute equals given version\n + `license.delay` - metadata where difference between publication date and the `license_ref`'s `start_date` attribute is <= than given delay (in days)\n+ `lte-award-amount` - metadata where award is less than or equals given number\n+ `member` - metadata belonging to a given Crossref member\n+ `orcid` - metadata where there is a contributor with given ORCID\n+ `prefix` - metadata belonging to a given DOI owner prefix (e.g. 10.1016)\n+ `relation`\n + `relation.type` - metadata for records with a relation with the given type from the Crossref relations schema (e.g. is-referenced-by, is-parent-of, is-preprint-of)\n + `relation.object-type` - metadata for records with a relation, where the object type matches given type from the Crossref relations schema (e.g. doi, issn)\n + `relation.object` - metadata for records with a relation, where the object identifier matches given identifier\n+ `ror-id` - metadata with given ROR ID\n+ `type` - metadata records whose type equals given type, type must be an ID value from the list of types returned by the /types resource\n+ `type-name` - metadata for records with type name equal to given name\n+ `until-accepted-date` - [date], metadata where accepted date is before given date (inclusive)\n+ `until-approved-date` - [date], metadata where approved date is before given date (inclusive)\n+ `until-awarded-date` - [date], metadata where award date is before given date (inclusive)\n+ `until-created-date` - [date], metadata first deposited before given date (inclusive)\n+ `until-deposit-date` - [date], metadata last (re)deposited before given date (inclusive)\n+ `until-event-end-date` - [date], metadata where event end date is before given date (inclusive)\n+ `until-event-start-date` - [date], metadata where event start date is before given date (inclusive)\n+ `until-index-date` - [date], metadata indexed before given date (inclusive)\n+ `until-issued-date` - [date], metadata where issued date is before given date (inclusive)\n+ `until-online-pub-date` - [date], metadata where online published date is before given date (inclusive)\n+ `until-posted-date` - [date], metadata where posted date is before given date (inclusive)\n+ `until-print-pub-date` - [date], metadata where print published date is before given date (inclusive)\n+ `until-pub-date` - [date], metadata where published date is before given date (inclusive)\n+ `until-update-date` - [date], metadata updated before given date (inclusive), currently the same as `until-deposit-date`\n+ `update-type` - metadata with given update type\n+ `updates` - metadata for records that represent editorial updates to given DOI\n## Elements\n\nCrossref metadata records can be quite large. Sometimes you just want a few elements from the schema. You can \\\"select\\\" a subset of elements to return using the `select` parameter. This can make your API calls much more efficient. For example:\n\n##\n```\n/works?select=DOI,prefix,title\n```\n\n##\n\nThis endpoint supports selecting the following elements.\n\n##\n\n+ `DOI`\n+ `ISBN`\n+ `ISSN`\n+ `URL`\n+ `abstract`\n+ `accepted`\n+ `alternative-id`\n+ `approved`\n+ `archive`\n+ `article-number`\n+ `assertion`\n+ `author`\n+ `chair`\n+ `clinical-trial-number`\n+ `container-title`\n+ `content-created`\n+ `content-domain`\n+ `created`\n+ `degree`\n+ `deposited`\n+ `editor`\n+ `event`\n+ `funder`\n+ `group-title`\n+ `indexed`\n+ `is-referenced-by-count`\n+ `issn-type`\n+ `issue`\n+ `issued`\n+ `license`\n+ `link`\n+ `member`\n+ `original-title`\n+ `page`\n+ `posted`\n+ `prefix`\n+ `published`\n+ `published-online`\n+ `published-print`\n+ `publisher`\n+ `publisher-location`\n+ `reference`\n+ `references-count`\n+ `relation`\n+ `score`\n+ `short-container-title`\n+ `short-title`\n+ `standards-body`\n+ `subject`\n+ `subtitle`\n+ `title`\n+ `translator`\n+ `type`\n+ `update-policy`\n+ `update-to`\n+ `updated-by`\n+ `volume`\n## Pagination with offsets\n\nOffsets are an easy way to iterate over results sets up to 10,000 items. This limit applies to the sum of values of parameters `offset` + `rows`.\n\n##\n\nThe number of items returned in a single response is controlled by `rows` parameter (default is 20, and maximum is 1,000). To limit results to 5, for example, you could do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5\n```\n\n##\n\n`offset` parameter can be used to retrieve items starting from a specific index of the result list. For example, to select the second set of 5 results (i.e. results 6 through 10), you would do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5&offset=5\n```\n\n##\n\n## Deep paging\n\nDeep paging using cursors can be used to iterate over large result sets, without any limits on their size.\n\n##\n\nTo use deep paging make a query as normal, but include the `cursor` parameter with a value of `*`, for example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=*\n```\n\n##\n\nA `next-cursor` field will be provided in the JSON response. To get the next page of results, pass the value of `next-cursor` as the cursor parameter (remember to URL-encode). For example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=<value of next-cursor parameter>\n```\n\n##\n\nClients should check the number of returned items. If the number of returned items is equal to the number of expected rows then the end of the result set has been reached. Using next-cursor beyond this point will result in responses with an empty items list.\n\n##\n\n## Sample\n\nBeing able to select random results is useful for both testing and sampling. You can use the `sample` parameter to retrieve random results. So, for example, the following selects 10 random works:\n\n##\n```\n/works?sample=10\n```\n##\n\nNote that when you use the `sample` parameter, the `rows` and `offset` parameters are ignored.\n\n\n## Parameter combinations\n\nAny combination of `query`, `query.*`, `filter`, `facet`, `select` and `sort` can be used with offsets. Sampling cannot be combined with offsets.\n\n##\n\nAny combination of `query`, `query.*`, `filter`, `facet`, `select` and `sort` may also be used with deep paging cursors. `rows` may also be specified.\n\n##\n\n`offset` and `sample` cannot be used in combination with cursors.\n\n##\n",
"parameters": [
{
"in": "path",
"name": "prefix",
"description": "",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "rows",
"description": "The number of rows per page",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "order",
"description": "Combined with sort can be used to specify the order of results, e.g. asc or desc",
"required": false,
"pattern": "(asc|desc)",
"type": "string"
},
{
"in": "query",
"name": "facet",
"description": "Exposes the ability to retrieve counts for pre-defined facets e.g. `type-name:*` returns counts of all works by type",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "sample",
"description": "Exposes the ability to return `N` randomly sampled items",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "sort",
"description": "Exposes the ability to sort results by a certain field, e.g. `score`",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "offset",
"description": "The number of rows to skip before returning",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "mailto",
"description": "The email address to identify yourself and be in the \"polite pool\"",
"required": false,
"pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+\\.[A-Za-z]{2,6}$",
"type": "string"
},
{
"in": "query",
"name": "select",
"description": "Exposes the ability to select certain fields, supports a comma separated list of fields, e.g. `DOI,volume`",
"required": false,
"pattern": "^\\w+(,\\w+)*$",
"type": "string"
},
{
"in": "query",
"name": "query",
"description": "Exposes the ability to free text query certain fields",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "filter",
"description": "Exposes the ability to filter by certain fields, supports a comma separated list of lucene filters, e.g. `content-domain:psychoceramics.labs.crossref.org`",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "cursor",
"description": "Exposes the ability to deep page through large result sets, where offset would cause performance problems",
"required": false,
"type": "string"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/WorksMessage"
},
"description": "A list of works"
}
},
"tags": [
"Prefixes"
]
}
},
"/funders/{id}/works": {
"get": {
"description": "Returns list of works associated with the specified {id}.\n## Queries\n\nFree form search queries can be made, for example, works that include `renear` or `ontologies` (or both):\n\n##\n\n```\n/works?query=renear+ontologies\n```\n\n\n## Field Queries\nField queries allow for queries that match only particular fields of metadata. For example, this query matches records that contain the tokens `richard` or `feynman` (or both) in any author field:\n\n##\n\n```\n/works?query.author=richard+feynman\n```\n\n##\n\nField queries can be combined with the general `query` parameter and each other. Each query parameter is ANDed with the others:\n\n##\n```\n/works?query.title=room+at+the+bottom&query.author=richard+feynman\n```\n\n##\n\nThis endpoint supports the following field queries:\n\n##\n\n+ `query.affiliation` - query contributor affiliations\n+ `query.author` - query author given and family names\n+ `query.bibliographic` - query bibliographic information, useful for citation look up, includes titles, authors, ISSNs and publication years\n+ `query.chair` - query chair given and family names\n+ `query.container-title` - query container title aka. publication name\n+ `query.contributor` - query author, editor, chair and translator given and family names\n+ `query.degree` - query degree\n+ `query.description` - query description\n+ `query.editor` - query editor given and family names\n+ `query.event-acronym` - query acronym of the event\n+ `query.event-location` - query location of the event\n+ `query.event-name` - query name of the event\n+ `query.event-sponsor` - query sponsor of the event\n+ `query.event-theme` - query theme of the event\n+ `query.funder-name` - query name of the funder\n+ `query.publisher-location` - query location of the publisher\n+ `query.publisher-name` - query publisher name\n+ `query.standards-body-acronym` - query acronym of the standards body\n+ `query.standards-body-name` - query standards body name\n+ `query.title` - query title\n+ `query.translator` - query translator given and family names\n## Sort\n\nResults can be sorted by applying the `sort` and `order` parameters. `sort` sets the field by which results will be sorted. `order` sets the result ordering, either `asc` or `desc` (default is `desc`).\n\nAn example that sorts results in order of publication, beginning with the least recent:\n\n##\n\n```\n/works?query=josiah+carberry&sort=published&order=asc\n```\n\n##\n\nThis endpoint supports sorting by the following elements:\n\n##\n\n+ `created` - sort by created date\n+ `deposited` - sort by time of most recent deposit\n+ `indexed` - sort by time of most recent index\n+ `is-referenced-by-count` - sort by number of times this DOI is referenced by other Crossref DOIs\n+ `issued` - sort by issued date (earliest known publication date)\n+ `published` - sort by publication date\n+ `published-online` - sort by online publication date\n+ `published-print` - sort by print publication date\n+ `references-count` - sort by number of references included in the references section of the document identified by this DOI\n+ `relevance` - sort by relevance score\n+ `score` - sort by relevance score\n+ `updated` - sort by date of most recent change to metadata, currently the same as deposited\n## Facets\n\nFacet counts can be retrieved by enabling faceting. Facets are enabled by providing facet field names along with a maximum number of returned term values. The larger the number of returned values, the longer the query will take. Some facet fields can accept a `*` as their maximum, which indicates that all values should be returned.\n\n##\n\nFor example, to get facet counts for all work types:\n\n##\n```\n/works?facet=type-name:*\n```\n\n##\n\nThis endpoint supports the following facets:\n\n##\n\n+ `affiliation` - author affiliation\n+ `archive` - archive location\n+ `assertion` - custom Crossmark assertion name\n+ `assertion-group` - custom Crossmark assertion group name\n+ `category-name` - category name of work\n+ `container-title` - [max value 100], work container title, such as journal title, or book title\n+ `funder-doi` - funder DOI\n+ `funder-name` - funder literal name as deposited alongside DOI\n+ `issn` - [max value 100], journal ISSN (any - print, electronic, link)\n+ `journal-issue` - journal issue number\n+ `journal-volume` - journal volume\n+ `license` - license URI of work\n+ `link-application` - intended application of the full text link\n+ `orcid` - [max value 100], contributor ORCID\n+ `published` - earliest year of publication\n+ `publisher-name` - publisher name of work\n+ `relation-type` - relation type described by work or described by another work with work as object\n+ `ror-id` - institution ROR ID\n+ `source` - source of the DOI\n+ `type-name` - work type name, such as journal-article or book-chapter\n+ `update-type` - significant update type\n## Filters\n\nFilters allow you to select items based on specific criteria. All filter results are lists.\n\n##\n\nFor example:\n\n##\n```\n/works?filter=type:dataset\n```\n\n### Multiple filters\n\nMultiple filters can be specified in a single query. In such a case, different filters will be applied with AND semantics, while specifying the same filter multiple times will result in OR semantics - that is, specifying the filters:\n\n- `is-update:true`\n- `from-pub-date:2014-03-03`\n- `funder:10.13039/100000001`\n- `funder:10.13039/100000050`\n\nwould locate documents that are updates, were published on or after 3rd March 2014 and were funded by either the National Science Foundation (`10.13039/100000001`) or the National Heart, Lung, and Blood Institute (`10.13039/100000050`). These filters would be specified by joining each filter together with a comma:\n\n##\n```\n/works?filter=is-update:true,from-pub-date:2014-03-03,funder:10.13039/100000001,funder:10.13039/100000050\n```\n\n### Dot filters\n\nA filter with a dot in its name is special. The dot signifies that the filter will be applied to some other record type that is related to primary resource record type. For example, with work queries, one can filter on works that have an award, where the same award has a particular award number and award-giving funding agency:\n\n##\n```\n/works?filter=award.number:CBET-0756451,award.funder:10.13039/100000001\n```\n##\n\nHere we filter on works that have an award by the National Science Foundation that also has the award number `CBET-0756451`.\n\n### Note on dates\n\nThe dates in filters should always be of the form YYYY-MM-DD, YYYY-MM or YYYY. The date filters are inclusive. For example:\n\n* `from-pub-date:2018-09-18` filters works published on or after 18th September 2018\n* `from-created-date:2016-02-29,until-created-date:2016-02-29` filters works first deposited on 29th February 2016\n* `until-created-date:2010-06` filters works first deposited in or before June 2010\n* `from-update-date:2017,until-update-date:2017` filters works with metadata updated in 2017\n\nAlso note that date information in Crossref metadata can often be incomplete. So, for example, a publisher may only include the year and month of publication for a journal article. For a monograph they might just include the year. In these cases the API selects the earliest possible date given the information provided. So, for instance, if the publisher only provided 2013-02 as the published date, then the date would be treated as 2013-02-01. Similarly, if the publisher only provided the year 2013 as the date, it would be treated at 2013-01-01.\n\n### Note on owner prefixes\n\nThe prefix of a Crossref DOI does **NOT** indicate who currently owns the DOI. It only reflects who originally registered the DOI. Crossref metadata has an **prefix** element that records the current owner of the Crossref DOI in question.\n\n##\n\nCrossref also has member IDs for depositing organisations. A single member may control multiple owner prefixes, which in turn may control a number of DOIs. When looking at works published by a certain organisaton, member IDs and the member routes should be used.\n\n### Notes on incremental metadata updates\n\nWhen using time filters to retrieve periodic, incremental metadata updates, the `from-index-date` filter should be used over `from-update-date`, `from-deposit-date`, `from-created-date` and `from-pub-date`. The timestamp that `from-index-date` filters on is guaranteed to be updated every time there is a change to metadata requiring a reindex.\n\n##\n\nThis endpoint supports the following filters:\n\n##\n\n+ `alternative-id` - metadata for records with the given alternative ID, which may be a publisher-specific ID, or any other identifier a publisher may have provided\n+ `archive` - metadata where value of archive partner equals given archive name\n+ `article-number` - metadata for records with a given article number\n+ `assertion` - metadata for records with a given named assertion\n+ `assertion-group` - metadata for records with an assertion in a given group\n+ `award`\n + `award.funder` - metadata for records with award funder equal to given funder, optionally combine with `award.number`\n + `award.number` - metadata for records with award number equal to given number, optionally combine with `award.funder`\n+ `category-name` - metadata for records with category label equal to given name, category labels come from the list published by Scopus\n+ `citation-id`\n+ `clinical-trial-number` - metadata for records with given clinical trial number\n+ `container-title` - metadata with a publication title that exactly equals given title\n+ `content-domain` - metadata where the publisher records a given domain name as the location Crossmark content will appear\n+ `doi` - metadata describing given DOI\n+ `from-accepted-date` - [date], metadata where accepted date is since given date (inclusive)\n+ `from-approved-date` - [date], metadata where approved date is since given date (inclusive)\n+ `from-awarded-date` - [date], metadata where award date is since given date (inclusive)\n+ `from-created-date` - [date], metadata first deposited since given date (inclusive)\n+ `from-deposit-date` - [date], metadata last (re)deposited since given date (inclusive)\n+ `from-event-end-date` - [date], metadata where event end date is since given date (inclusive)\n+ `from-event-start-date` - [date], metadata where event start date is since given date (inclusive)\n+ `from-index-date` - [date], metadata indexed since given date (inclusive)\n+ `from-issued-date` - [date], metadata where issued date is since given date (inclusive)\n+ `from-online-pub-date` - [date], metadata where online published date is since given date (inclusive)\n+ `from-posted-date` - [date], metadata where posted date is since given date (inclusive)\n+ `from-print-pub-date` - [date], metadata where print published date is since given date (inclusive)\n+ `from-pub-date` - [date], metadata where published date is since given date (inclusive)\n+ `from-update-date` - [date], metadata updated since given date (inclusive), currently the same as `from-deposit-date`\n+ `full-text`\n + `full-text.type` - metadata where `resource` element's `content_type` attribute equals given version mime type (e.g. application/pdf)\n + `full-text.application` - [text-mining, similarity-checking or unspecified], metadata where `resource` link has given application\n + `full-text.version` - metadata where `resource` element's `content_version` attribute equals given version\n+ `funder` - metadata which include given funder id in FundRef data\n+ `funder-doi-asserted-by` - metadata where funder DOI was asserted by given body\n+ `group-title` - metadata with given group title\n+ `gte-award-amount` - metadata where award is greater than or equals given number\n+ `has-abstract` - [0 or 1], metadata for records with/without an abstract\n+ `has-affiliation` - [0 or 1], metadata for records with/without affiliation information\n+ `has-archive` - [0 or 1], metadata which includes/does not include name of archive partner\n+ `has-assertion` - [0 or 1], metadata for records with/without assertions\n+ `has-authenticated-orcid` - [0 or 1], metadata which includes/does not include one or more ORCIDs where the depositing publisher claims to have witness the ORCID owner authenticate with ORCID\n+ `has-award` - [0 or 1], metadata for records with/without award\n+ `has-clinical-trial-number` - [0 or 1], metadata for records with/without a clinical trial number\n+ `has-content-domain` - [0 or 1], metadata where the publisher records/does not record a domain name location for Crossmark content\n+ `has-description`\n+ `has-domain-restriction` - [0 or 1], metadata where the publisher restricts/does not restrict Crossmark usage to content domains\n+ `has-event` - [0 or 1], metadata for records with/without event\n+ `has-full-text` - [0 or 1], metadata that includes/does not include any full text `resource` elements\n+ `has-funder` - [0 or 1], metadata which includes/does not include one or more funder entry\n+ `has-funder-doi` - [0 or 1], metadata for records with/without funder DOI\n+ `has-license` - [0 or 1], metadata that includes/does not include any `license_ref` elements\n+ `has-orcid` - [0 or 1], metadata which includes/does not include one or more ORCIDs\n+ `has-references` - [0 or 1], metadata for works that have/don't have a list of references\n+ `has-relation` - [0 or 1], metadata for records that either assert/do not assert or are/are not the object of a relation\n+ `has-ror-id` - [0 or 1], metadata for records with/without ROR ID\n+ `has-update` - [0 or 1], metadata for records with/without update information\n+ `has-update-policy` - [0 or 1], metadata for records that include/do not include a link to an editorial update policy\n+ `is-update` - [0 or 1], metadata for records that represent/do not represent editorial updates\n+ `isbn` - metadata with given ISBN\n+ `issn` - metadata with given ISSN, format is xxxx-xxxx\n+ `license`\n + `license.url` - metadata where `license_ref` value equals given url\n + `license.version` - metadata where the `license_ref`'s `applies_to` attribute equals given version\n + `license.delay` - metadata where difference between publication date and the `license_ref`'s `start_date` attribute is <= than given delay (in days)\n+ `lte-award-amount` - metadata where award is less than or equals given number\n+ `member` - metadata belonging to a given Crossref member\n+ `orcid` - metadata where there is a contributor with given ORCID\n+ `prefix` - metadata belonging to a given DOI owner prefix (e.g. 10.1016)\n+ `relation`\n + `relation.type` - metadata for records with a relation with the given type from the Crossref relations schema (e.g. is-referenced-by, is-parent-of, is-preprint-of)\n + `relation.object-type` - metadata for records with a relation, where the object type matches given type from the Crossref relations schema (e.g. doi, issn)\n + `relation.object` - metadata for records with a relation, where the object identifier matches given identifier\n+ `ror-id` - metadata with given ROR ID\n+ `type` - metadata records whose type equals given type, type must be an ID value from the list of types returned by the /types resource\n+ `type-name` - metadata for records with type name equal to given name\n+ `until-accepted-date` - [date], metadata where accepted date is before given date (inclusive)\n+ `until-approved-date` - [date], metadata where approved date is before given date (inclusive)\n+ `until-awarded-date` - [date], metadata where award date is before given date (inclusive)\n+ `until-created-date` - [date], metadata first deposited before given date (inclusive)\n+ `until-deposit-date` - [date], metadata last (re)deposited before given date (inclusive)\n+ `until-event-end-date` - [date], metadata where event end date is before given date (inclusive)\n+ `until-event-start-date` - [date], metadata where event start date is before given date (inclusive)\n+ `until-index-date` - [date], metadata indexed before given date (inclusive)\n+ `until-issued-date` - [date], metadata where issued date is before given date (inclusive)\n+ `until-online-pub-date` - [date], metadata where online published date is before given date (inclusive)\n+ `until-posted-date` - [date], metadata where posted date is before given date (inclusive)\n+ `until-print-pub-date` - [date], metadata where print published date is before given date (inclusive)\n+ `until-pub-date` - [date], metadata where published date is before given date (inclusive)\n+ `until-update-date` - [date], metadata updated before given date (inclusive), currently the same as `until-deposit-date`\n+ `update-type` - metadata with given update type\n+ `updates` - metadata for records that represent editorial updates to given DOI\n## Elements\n\nCrossref metadata records can be quite large. Sometimes you just want a few elements from the schema. You can \\\"select\\\" a subset of elements to return using the `select` parameter. This can make your API calls much more efficient. For example:\n\n##\n```\n/works?select=DOI,prefix,title\n```\n\n##\n\nThis endpoint supports selecting the following elements.\n\n##\n\n+ `DOI`\n+ `ISBN`\n+ `ISSN`\n+ `URL`\n+ `abstract`\n+ `accepted`\n+ `alternative-id`\n+ `approved`\n+ `archive`\n+ `article-number`\n+ `assertion`\n+ `author`\n+ `chair`\n+ `clinical-trial-number`\n+ `container-title`\n+ `content-created`\n+ `content-domain`\n+ `created`\n+ `degree`\n+ `deposited`\n+ `editor`\n+ `event`\n+ `funder`\n+ `group-title`\n+ `indexed`\n+ `is-referenced-by-count`\n+ `issn-type`\n+ `issue`\n+ `issued`\n+ `license`\n+ `link`\n+ `member`\n+ `original-title`\n+ `page`\n+ `posted`\n+ `prefix`\n+ `published`\n+ `published-online`\n+ `published-print`\n+ `publisher`\n+ `publisher-location`\n+ `reference`\n+ `references-count`\n+ `relation`\n+ `score`\n+ `short-container-title`\n+ `short-title`\n+ `standards-body`\n+ `subject`\n+ `subtitle`\n+ `title`\n+ `translator`\n+ `type`\n+ `update-policy`\n+ `update-to`\n+ `updated-by`\n+ `volume`\n## Pagination with offsets\n\nOffsets are an easy way to iterate over results sets up to 10,000 items. This limit applies to the sum of values of parameters `offset` + `rows`.\n\n##\n\nThe number of items returned in a single response is controlled by `rows` parameter (default is 20, and maximum is 1,000). To limit results to 5, for example, you could do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5\n```\n\n##\n\n`offset` parameter can be used to retrieve items starting from a specific index of the result list. For example, to select the second set of 5 results (i.e. results 6 through 10), you would do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5&offset=5\n```\n\n##\n\n## Deep paging\n\nDeep paging using cursors can be used to iterate over large result sets, without any limits on their size.\n\n##\n\nTo use deep paging make a query as normal, but include the `cursor` parameter with a value of `*`, for example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=*\n```\n\n##\n\nA `next-cursor` field will be provided in the JSON response. To get the next page of results, pass the value of `next-cursor` as the cursor parameter (remember to URL-encode). For example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=<value of next-cursor parameter>\n```\n\n##\n\nClients should check the number of returned items. If the number of returned items is equal to the number of expected rows then the end of the result set has been reached. Using next-cursor beyond this point will result in responses with an empty items list.\n\n##\n\n## Sample\n\nBeing able to select random results is useful for both testing and sampling. You can use the `sample` parameter to retrieve random results. So, for example, the following selects 10 random works:\n\n##\n```\n/works?sample=10\n```\n##\n\nNote that when you use the `sample` parameter, the `rows` and `offset` parameters are ignored.\n\n\n## Parameter combinations\n\nAny combination of `query`, `query.*`, `filter`, `facet`, `select` and `sort` can be used with offsets. Sampling cannot be combined with offsets.\n\n##\n\nAny combination of `query`, `query.*`, `filter`, `facet`, `select` and `sort` may also be used with deep paging cursors. `rows` may also be specified.\n\n##\n\n`offset` and `sample` cannot be used in combination with cursors.\n\n##\n",
"parameters": [
{
"in": "path",
"name": "id",
"description": "The id of the funder",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "rows",
"description": "The number of rows per page",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "order",
"description": "Combined with sort can be used to specify the order of results, e.g. asc or desc",
"required": false,
"pattern": "(asc|desc)",
"type": "string"
},
{
"in": "query",
"name": "facet",
"description": "Exposes the ability to retrieve counts for pre-defined facets e.g. `type-name:*` returns counts of all works by type",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "sample",
"description": "Exposes the ability to return `N` randomly sampled items",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "sort",
"description": "Exposes the ability to sort results by a certain field, e.g. `score`",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "offset",
"description": "The number of rows to skip before returning",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "mailto",
"description": "The email address to identify yourself and be in the \"polite pool\"",
"required": false,
"pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+\\.[A-Za-z]{2,6}$",
"type": "string"
},
{
"in": "query",
"name": "select",
"description": "Exposes the ability to select certain fields, supports a comma separated list of fields, e.g. `DOI,volume`",
"required": false,
"pattern": "^\\w+(,\\w+)*$",
"type": "string"
},
{
"in": "query",
"name": "query",
"description": "Exposes the ability to free text query certain fields",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "filter",
"description": "Exposes the ability to filter by certain fields, supports a comma separated list of lucene filters, e.g. `content-domain:psychoceramics.labs.crossref.org`",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "cursor",
"description": "Exposes the ability to deep page through large result sets, where offset would cause performance problems",
"required": false,
"type": "string"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/WorksMessage"
},
"description": "A list of works"
}
},
"tags": [
"Funders"
]
}
},
"/journals/{issn}": {
"get": {
"description": "Returns information about a journal with the given ISSN, as an example use ISSN 03064530",
"parameters": [
{
"in": "path",
"name": "issn",
"description": "The ISSN identifier associated with the journal",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/JournalMessage"
},
"description": "The journal identified by {issn}."
},
"404": {
"description": "The journal identified by {issn} does not exist."
}
},
"tags": [
"Journals"
]
}
},
"/types/{id}": {
"get": {
"description": "Returns information about a metadata work type, as an example use `monograph`",
"parameters": [
{
"in": "path",
"name": "id",
"description": "",
"required": true,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/TypeMessage"
},
"description": "The type identified by {id}."
},
"404": {
"description": "The type identified by {id} does not exist."
}
},
"tags": [
"Types"
]
}
},
"/deposits/{id}": {
"get": {
"description": "Returns information about a deposit.",
"security": [
"basicAuth"
],
"parameters": [
{
"in": "path",
"name": "id",
"description": "",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/DepositMessage"
},
"description": "The deposit identified by {id}."
},
"404": {
"description": "The deposit identified by {id} does not exist."
}
},
"tags": [
"Deposits"
]
}
},
"/licenses": {
"get": {
"description": "Returns a list of licenses.\n## Querying\n\nThis endpoint accepts `query` parameter, which allows for free text querying. The result contains aggregated licenses from the works that match given query.\n\n##\n\nFor example, this request:\n\n##\n\n```\n/licenses?query=richard+feynman\n```\n\n##\n\nwill first select works matching `richard+feynman`, and aggregate their licenses.\n\n## Pagination with offsets\n\nOffsets are an easy way to iterate over results sets up to 10,000 items. This limit applies to the sum of values of parameters `offset` + `rows`.\n\n##\n\nThe number of items returned in a single response is controlled by `rows` parameter (default is 20, and maximum is 1,000). To limit results to 5, for example, you could do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5\n```\n\n##\n\n`offset` parameter can be used to retrieve items starting from a specific index of the result list. For example, to select the second set of 5 results (i.e. results 6 through 10), you would do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5&offset=5\n```\n\n##\n\n## Deep paging\n\nDeep paging using cursors can be used to iterate over large result sets, without any limits on their size.\n\n##\n\nTo use deep paging make a query as normal, but include the `cursor` parameter with a value of `*`, for example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=*\n```\n\n##\n\nA `next-cursor` field will be provided in the JSON response. To get the next page of results, pass the value of `next-cursor` as the cursor parameter (remember to URL-encode). For example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=<value of next-cursor parameter>\n```\n\n##\n\nClients should check the number of returned items. If the number of returned items is equal to the number of expected rows then the end of the result set has been reached. Using next-cursor beyond this point will result in responses with an empty items list.\n\n##\n",
"parameters": [
{
"in": "query",
"name": "query",
"description": "Exposes the ability to free text query certain fields",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "cursor",
"description": "Exposes the ability to deep page through large result sets, where offset would cause performance problems",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "rows",
"description": "The number of rows per page",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "mailto",
"description": "The email address to identify yourself and be in the \"polite pool\"",
"required": false,
"pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+\\.[A-Za-z]{2,6}$",
"type": "string"
},
{
"in": "query",
"name": "offset",
"description": "The number of rows to skip before returning",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/LicensesMessage"
},
"description": "A list of licenses"
}
},
"tags": [
"Licenses"
]
}
},
"/types": {
"get": {
"description": "Returns a list of valid work types.\n## Pagination with offsets\n\nOffsets can be used to iterate over the results. For this route, the maximum number of available results is 80,000, which in this case allows to retrieve all the indexed items. This limit applies to the sum of values of parameters `offset` + `rows`.\n\n##\n\nThe number of items returned in a single response is controlled by `rows` parameter (default is 20, and maximum is 1,000). To limit results to 5, for example, you could do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5\n```\n\n##\n\n`offset` parameter can be used to retrieve items starting from a specific index of the result list. For example, to select the second set of 5 results (i.e. results 6 through 10), you would do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5&offset=5\n```\n\n##\n",
"parameters": [
{
"in": "query",
"name": "rows",
"description": "The number of rows per page",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "mailto",
"description": "The email address to identify yourself and be in the \"polite pool\"",
"required": false,
"pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+\\.[A-Za-z]{2,6}$",
"type": "string"
},
{
"in": "query",
"name": "offset",
"description": "The number of rows to skip before returning",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/TypesMessage"
},
"description": "A collection of types"
}
},
"tags": [
"Types"
]
}
},
"/works/{doi}": {
"get": {
"description": "Returns metadata for the specified Crossref DOI, as an example use DOI 10.5555/12345678",
"parameters": [
{
"in": "path",
"name": "doi",
"description": "The DOI identifier associated with the work",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/WorkMessage"
},
"description": "The work identified by {doi}."
},
"404": {
"description": "The work identified by {doi} does not exist."
}
},
"tags": [
"Works"
]
}
},
"/types/{id}/works": {
"get": {
"description": "returns list of works of type {id}.\n## Queries\n\nFree form search queries can be made, for example, works that include `renear` or `ontologies` (or both):\n\n##\n\n```\n/works?query=renear+ontologies\n```\n\n\n## Field Queries\nField queries allow for queries that match only particular fields of metadata. For example, this query matches records that contain the tokens `richard` or `feynman` (or both) in any author field:\n\n##\n\n```\n/works?query.author=richard+feynman\n```\n\n##\n\nField queries can be combined with the general `query` parameter and each other. Each query parameter is ANDed with the others:\n\n##\n```\n/works?query.title=room+at+the+bottom&query.author=richard+feynman\n```\n\n##\n\nThis endpoint supports the following field queries:\n\n##\n\n+ `query.affiliation` - query contributor affiliations\n+ `query.author` - query author given and family names\n+ `query.bibliographic` - query bibliographic information, useful for citation look up, includes titles, authors, ISSNs and publication years\n+ `query.chair` - query chair given and family names\n+ `query.container-title` - query container title aka. publication name\n+ `query.contributor` - query author, editor, chair and translator given and family names\n+ `query.degree` - query degree\n+ `query.description` - query description\n+ `query.editor` - query editor given and family names\n+ `query.event-acronym` - query acronym of the event\n+ `query.event-location` - query location of the event\n+ `query.event-name` - query name of the event\n+ `query.event-sponsor` - query sponsor of the event\n+ `query.event-theme` - query theme of the event\n+ `query.funder-name` - query name of the funder\n+ `query.publisher-location` - query location of the publisher\n+ `query.publisher-name` - query publisher name\n+ `query.standards-body-acronym` - query acronym of the standards body\n+ `query.standards-body-name` - query standards body name\n+ `query.title` - query title\n+ `query.translator` - query translator given and family names\n## Sort\n\nResults can be sorted by applying the `sort` and `order` parameters. `sort` sets the field by which results will be sorted. `order` sets the result ordering, either `asc` or `desc` (default is `desc`).\n\nAn example that sorts results in order of publication, beginning with the least recent:\n\n##\n\n```\n/works?query=josiah+carberry&sort=published&order=asc\n```\n\n##\n\nThis endpoint supports sorting by the following elements:\n\n##\n\n+ `created` - sort by created date\n+ `deposited` - sort by time of most recent deposit\n+ `indexed` - sort by time of most recent index\n+ `is-referenced-by-count` - sort by number of times this DOI is referenced by other Crossref DOIs\n+ `issued` - sort by issued date (earliest known publication date)\n+ `published` - sort by publication date\n+ `published-online` - sort by online publication date\n+ `published-print` - sort by print publication date\n+ `references-count` - sort by number of references included in the references section of the document identified by this DOI\n+ `relevance` - sort by relevance score\n+ `score` - sort by relevance score\n+ `updated` - sort by date of most recent change to metadata, currently the same as deposited\n## Facets\n\nFacet counts can be retrieved by enabling faceting. Facets are enabled by providing facet field names along with a maximum number of returned term values. The larger the number of returned values, the longer the query will take. Some facet fields can accept a `*` as their maximum, which indicates that all values should be returned.\n\n##\n\nFor example, to get facet counts for all work types:\n\n##\n```\n/works?facet=type-name:*\n```\n\n##\n\nThis endpoint supports the following facets:\n\n##\n\n+ `affiliation` - author affiliation\n+ `archive` - archive location\n+ `assertion` - custom Crossmark assertion name\n+ `assertion-group` - custom Crossmark assertion group name\n+ `category-name` - category name of work\n+ `container-title` - [max value 100], work container title, such as journal title, or book title\n+ `funder-doi` - funder DOI\n+ `funder-name` - funder literal name as deposited alongside DOI\n+ `issn` - [max value 100], journal ISSN (any - print, electronic, link)\n+ `journal-issue` - journal issue number\n+ `journal-volume` - journal volume\n+ `license` - license URI of work\n+ `link-application` - intended application of the full text link\n+ `orcid` - [max value 100], contributor ORCID\n+ `published` - earliest year of publication\n+ `publisher-name` - publisher name of work\n+ `relation-type` - relation type described by work or described by another work with work as object\n+ `ror-id` - institution ROR ID\n+ `source` - source of the DOI\n+ `type-name` - work type name, such as journal-article or book-chapter\n+ `update-type` - significant update type\n## Filters\n\nFilters allow you to select items based on specific criteria. All filter results are lists.\n\n##\n\nFor example:\n\n##\n```\n/works?filter=type:dataset\n```\n\n### Multiple filters\n\nMultiple filters can be specified in a single query. In such a case, different filters will be applied with AND semantics, while specifying the same filter multiple times will result in OR semantics - that is, specifying the filters:\n\n- `is-update:true`\n- `from-pub-date:2014-03-03`\n- `funder:10.13039/100000001`\n- `funder:10.13039/100000050`\n\nwould locate documents that are updates, were published on or after 3rd March 2014 and were funded by either the National Science Foundation (`10.13039/100000001`) or the National Heart, Lung, and Blood Institute (`10.13039/100000050`). These filters would be specified by joining each filter together with a comma:\n\n##\n```\n/works?filter=is-update:true,from-pub-date:2014-03-03,funder:10.13039/100000001,funder:10.13039/100000050\n```\n\n### Dot filters\n\nA filter with a dot in its name is special. The dot signifies that the filter will be applied to some other record type that is related to primary resource record type. For example, with work queries, one can filter on works that have an award, where the same award has a particular award number and award-giving funding agency:\n\n##\n```\n/works?filter=award.number:CBET-0756451,award.funder:10.13039/100000001\n```\n##\n\nHere we filter on works that have an award by the National Science Foundation that also has the award number `CBET-0756451`.\n\n### Note on dates\n\nThe dates in filters should always be of the form YYYY-MM-DD, YYYY-MM or YYYY. The date filters are inclusive. For example:\n\n* `from-pub-date:2018-09-18` filters works published on or after 18th September 2018\n* `from-created-date:2016-02-29,until-created-date:2016-02-29` filters works first deposited on 29th February 2016\n* `until-created-date:2010-06` filters works first deposited in or before June 2010\n* `from-update-date:2017,until-update-date:2017` filters works with metadata updated in 2017\n\nAlso note that date information in Crossref metadata can often be incomplete. So, for example, a publisher may only include the year and month of publication for a journal article. For a monograph they might just include the year. In these cases the API selects the earliest possible date given the information provided. So, for instance, if the publisher only provided 2013-02 as the published date, then the date would be treated as 2013-02-01. Similarly, if the publisher only provided the year 2013 as the date, it would be treated at 2013-01-01.\n\n### Note on owner prefixes\n\nThe prefix of a Crossref DOI does **NOT** indicate who currently owns the DOI. It only reflects who originally registered the DOI. Crossref metadata has an **prefix** element that records the current owner of the Crossref DOI in question.\n\n##\n\nCrossref also has member IDs for depositing organisations. A single member may control multiple owner prefixes, which in turn may control a number of DOIs. When looking at works published by a certain organisaton, member IDs and the member routes should be used.\n\n### Notes on incremental metadata updates\n\nWhen using time filters to retrieve periodic, incremental metadata updates, the `from-index-date` filter should be used over `from-update-date`, `from-deposit-date`, `from-created-date` and `from-pub-date`. The timestamp that `from-index-date` filters on is guaranteed to be updated every time there is a change to metadata requiring a reindex.\n\n##\n\nThis endpoint supports the following filters:\n\n##\n\n+ `alternative-id` - metadata for records with the given alternative ID, which may be a publisher-specific ID, or any other identifier a publisher may have provided\n+ `archive` - metadata where value of archive partner equals given archive name\n+ `article-number` - metadata for records with a given article number\n+ `assertion` - metadata for records with a given named assertion\n+ `assertion-group` - metadata for records with an assertion in a given group\n+ `award`\n + `award.funder` - metadata for records with award funder equal to given funder, optionally combine with `award.number`\n + `award.number` - metadata for records with award number equal to given number, optionally combine with `award.funder`\n+ `category-name` - metadata for records with category label equal to given name, category labels come from the list published by Scopus\n+ `citation-id`\n+ `clinical-trial-number` - metadata for records with given clinical trial number\n+ `container-title` - metadata with a publication title that exactly equals given title\n+ `content-domain` - metadata where the publisher records a given domain name as the location Crossmark content will appear\n+ `doi` - metadata describing given DOI\n+ `from-accepted-date` - [date], metadata where accepted date is since given date (inclusive)\n+ `from-approved-date` - [date], metadata where approved date is since given date (inclusive)\n+ `from-awarded-date` - [date], metadata where award date is since given date (inclusive)\n+ `from-created-date` - [date], metadata first deposited since given date (inclusive)\n+ `from-deposit-date` - [date], metadata last (re)deposited since given date (inclusive)\n+ `from-event-end-date` - [date], metadata where event end date is since given date (inclusive)\n+ `from-event-start-date` - [date], metadata where event start date is since given date (inclusive)\n+ `from-index-date` - [date], metadata indexed since given date (inclusive)\n+ `from-issued-date` - [date], metadata where issued date is since given date (inclusive)\n+ `from-online-pub-date` - [date], metadata where online published date is since given date (inclusive)\n+ `from-posted-date` - [date], metadata where posted date is since given date (inclusive)\n+ `from-print-pub-date` - [date], metadata where print published date is since given date (inclusive)\n+ `from-pub-date` - [date], metadata where published date is since given date (inclusive)\n+ `from-update-date` - [date], metadata updated since given date (inclusive), currently the same as `from-deposit-date`\n+ `full-text`\n + `full-text.type` - metadata where `resource` element's `content_type` attribute equals given version mime type (e.g. application/pdf)\n + `full-text.application` - [text-mining, similarity-checking or unspecified], metadata where `resource` link has given application\n + `full-text.version` - metadata where `resource` element's `content_version` attribute equals given version\n+ `funder` - metadata which include given funder id in FundRef data\n+ `funder-doi-asserted-by` - metadata where funder DOI was asserted by given body\n+ `group-title` - metadata with given group title\n+ `gte-award-amount` - metadata where award is greater than or equals given number\n+ `has-abstract` - [0 or 1], metadata for records with/without an abstract\n+ `has-affiliation` - [0 or 1], metadata for records with/without affiliation information\n+ `has-archive` - [0 or 1], metadata which includes/does not include name of archive partner\n+ `has-assertion` - [0 or 1], metadata for records with/without assertions\n+ `has-authenticated-orcid` - [0 or 1], metadata which includes/does not include one or more ORCIDs where the depositing publisher claims to have witness the ORCID owner authenticate with ORCID\n+ `has-award` - [0 or 1], metadata for records with/without award\n+ `has-clinical-trial-number` - [0 or 1], metadata for records with/without a clinical trial number\n+ `has-content-domain` - [0 or 1], metadata where the publisher records/does not record a domain name location for Crossmark content\n+ `has-description`\n+ `has-domain-restriction` - [0 or 1], metadata where the publisher restricts/does not restrict Crossmark usage to content domains\n+ `has-event` - [0 or 1], metadata for records with/without event\n+ `has-full-text` - [0 or 1], metadata that includes/does not include any full text `resource` elements\n+ `has-funder` - [0 or 1], metadata which includes/does not include one or more funder entry\n+ `has-funder-doi` - [0 or 1], metadata for records with/without funder DOI\n+ `has-license` - [0 or 1], metadata that includes/does not include any `license_ref` elements\n+ `has-orcid` - [0 or 1], metadata which includes/does not include one or more ORCIDs\n+ `has-references` - [0 or 1], metadata for works that have/don't have a list of references\n+ `has-relation` - [0 or 1], metadata for records that either assert/do not assert or are/are not the object of a relation\n+ `has-ror-id` - [0 or 1], metadata for records with/without ROR ID\n+ `has-update` - [0 or 1], metadata for records with/without update information\n+ `has-update-policy` - [0 or 1], metadata for records that include/do not include a link to an editorial update policy\n+ `is-update` - [0 or 1], metadata for records that represent/do not represent editorial updates\n+ `isbn` - metadata with given ISBN\n+ `issn` - metadata with given ISSN, format is xxxx-xxxx\n+ `license`\n + `license.url` - metadata where `license_ref` value equals given url\n + `license.version` - metadata where the `license_ref`'s `applies_to` attribute equals given version\n + `license.delay` - metadata where difference between publication date and the `license_ref`'s `start_date` attribute is <= than given delay (in days)\n+ `lte-award-amount` - metadata where award is less than or equals given number\n+ `member` - metadata belonging to a given Crossref member\n+ `orcid` - metadata where there is a contributor with given ORCID\n+ `prefix` - metadata belonging to a given DOI owner prefix (e.g. 10.1016)\n+ `relation`\n + `relation.type` - metadata for records with a relation with the given type from the Crossref relations schema (e.g. is-referenced-by, is-parent-of, is-preprint-of)\n + `relation.object-type` - metadata for records with a relation, where the object type matches given type from the Crossref relations schema (e.g. doi, issn)\n + `relation.object` - metadata for records with a relation, where the object identifier matches given identifier\n+ `ror-id` - metadata with given ROR ID\n+ `type` - metadata records whose type equals given type, type must be an ID value from the list of types returned by the /types resource\n+ `type-name` - metadata for records with type name equal to given name\n+ `until-accepted-date` - [date], metadata where accepted date is before given date (inclusive)\n+ `until-approved-date` - [date], metadata where approved date is before given date (inclusive)\n+ `until-awarded-date` - [date], metadata where award date is before given date (inclusive)\n+ `until-created-date` - [date], metadata first deposited before given date (inclusive)\n+ `until-deposit-date` - [date], metadata last (re)deposited before given date (inclusive)\n+ `until-event-end-date` - [date], metadata where event end date is before given date (inclusive)\n+ `until-event-start-date` - [date], metadata where event start date is before given date (inclusive)\n+ `until-index-date` - [date], metadata indexed before given date (inclusive)\n+ `until-issued-date` - [date], metadata where issued date is before given date (inclusive)\n+ `until-online-pub-date` - [date], metadata where online published date is before given date (inclusive)\n+ `until-posted-date` - [date], metadata where posted date is before given date (inclusive)\n+ `until-print-pub-date` - [date], metadata where print published date is before given date (inclusive)\n+ `until-pub-date` - [date], metadata where published date is before given date (inclusive)\n+ `until-update-date` - [date], metadata updated before given date (inclusive), currently the same as `until-deposit-date`\n+ `update-type` - metadata with given update type\n+ `updates` - metadata for records that represent editorial updates to given DOI\n## Elements\n\nCrossref metadata records can be quite large. Sometimes you just want a few elements from the schema. You can \\\"select\\\" a subset of elements to return using the `select` parameter. This can make your API calls much more efficient. For example:\n\n##\n```\n/works?select=DOI,prefix,title\n```\n\n##\n\nThis endpoint supports selecting the following elements.\n\n##\n\n+ `DOI`\n+ `ISBN`\n+ `ISSN`\n+ `URL`\n+ `abstract`\n+ `accepted`\n+ `alternative-id`\n+ `approved`\n+ `archive`\n+ `article-number`\n+ `assertion`\n+ `author`\n+ `chair`\n+ `clinical-trial-number`\n+ `container-title`\n+ `content-created`\n+ `content-domain`\n+ `created`\n+ `degree`\n+ `deposited`\n+ `editor`\n+ `event`\n+ `funder`\n+ `group-title`\n+ `indexed`\n+ `is-referenced-by-count`\n+ `issn-type`\n+ `issue`\n+ `issued`\n+ `license`\n+ `link`\n+ `member`\n+ `original-title`\n+ `page`\n+ `posted`\n+ `prefix`\n+ `published`\n+ `published-online`\n+ `published-print`\n+ `publisher`\n+ `publisher-location`\n+ `reference`\n+ `references-count`\n+ `relation`\n+ `score`\n+ `short-container-title`\n+ `short-title`\n+ `standards-body`\n+ `subject`\n+ `subtitle`\n+ `title`\n+ `translator`\n+ `type`\n+ `update-policy`\n+ `update-to`\n+ `updated-by`\n+ `volume`\n## Pagination with offsets\n\nOffsets are an easy way to iterate over results sets up to 10,000 items. This limit applies to the sum of values of parameters `offset` + `rows`.\n\n##\n\nThe number of items returned in a single response is controlled by `rows` parameter (default is 20, and maximum is 1,000). To limit results to 5, for example, you could do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5\n```\n\n##\n\n`offset` parameter can be used to retrieve items starting from a specific index of the result list. For example, to select the second set of 5 results (i.e. results 6 through 10), you would do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5&offset=5\n```\n\n##\n\n## Deep paging\n\nDeep paging using cursors can be used to iterate over large result sets, without any limits on their size.\n\n##\n\nTo use deep paging make a query as normal, but include the `cursor` parameter with a value of `*`, for example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=*\n```\n\n##\n\nA `next-cursor` field will be provided in the JSON response. To get the next page of results, pass the value of `next-cursor` as the cursor parameter (remember to URL-encode). For example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=<value of next-cursor parameter>\n```\n\n##\n\nClients should check the number of returned items. If the number of returned items is equal to the number of expected rows then the end of the result set has been reached. Using next-cursor beyond this point will result in responses with an empty items list.\n\n##\n\n## Sample\n\nBeing able to select random results is useful for both testing and sampling. You can use the `sample` parameter to retrieve random results. So, for example, the following selects 10 random works:\n\n##\n```\n/works?sample=10\n```\n##\n\nNote that when you use the `sample` parameter, the `rows` and `offset` parameters are ignored.\n\n\n## Parameter combinations\n\nAny combination of `query`, `query.*`, `filter`, `facet`, `select` and `sort` can be used with offsets. Sampling cannot be combined with offsets.\n\n##\n\nAny combination of `query`, `query.*`, `filter`, `facet`, `select` and `sort` may also be used with deep paging cursors. `rows` may also be specified.\n\n##\n\n`offset` and `sample` cannot be used in combination with cursors.\n\n##\n",
"parameters": [
{
"in": "path",
"name": "id",
"description": "",
"required": true,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "rows",
"description": "The number of rows per page",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "order",
"description": "Combined with sort can be used to specify the order of results, e.g. asc or desc",
"required": false,
"pattern": "(asc|desc)",
"type": "string"
},
{
"in": "query",
"name": "facet",
"description": "Exposes the ability to retrieve counts for pre-defined facets e.g. `type-name:*` returns counts of all works by type",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "sample",
"description": "Exposes the ability to return `N` randomly sampled items",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "sort",
"description": "Exposes the ability to sort results by a certain field, e.g. `score`",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "offset",
"description": "The number of rows to skip before returning",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "mailto",
"description": "The email address to identify yourself and be in the \"polite pool\"",
"required": false,
"pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+\\.[A-Za-z]{2,6}$",
"type": "string"
},
{
"in": "query",
"name": "select",
"description": "Exposes the ability to select certain fields, supports a comma separated list of fields, e.g. `DOI,volume`",
"required": false,
"pattern": "^\\w+(,\\w+)*$",
"type": "string"
},
{
"in": "query",
"name": "query",
"description": "Exposes the ability to free text query certain fields",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "filter",
"description": "Exposes the ability to filter by certain fields, supports a comma separated list of lucene filters, e.g. `content-domain:psychoceramics.labs.crossref.org`",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "cursor",
"description": "Exposes the ability to deep page through large result sets, where offset would cause performance problems",
"required": false,
"type": "string"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/WorksMessage"
},
"description": "A list of works"
}
},
"tags": [
"Types"
]
}
},
"/works": {
"get": {
"description": "Returns a list of all works (journal articles, conference proceedings, books, components, etc), 20 per page.\n## Queries\n\nFree form search queries can be made, for example, works that include `renear` or `ontologies` (or both):\n\n##\n\n```\n/works?query=renear+ontologies\n```\n\n\n## Field Queries\nField queries allow for queries that match only particular fields of metadata. For example, this query matches records that contain the tokens `richard` or `feynman` (or both) in any author field:\n\n##\n\n```\n/works?query.author=richard+feynman\n```\n\n##\n\nField queries can be combined with the general `query` parameter and each other. Each query parameter is ANDed with the others:\n\n##\n```\n/works?query.title=room+at+the+bottom&query.author=richard+feynman\n```\n\n##\n\nThis endpoint supports the following field queries:\n\n##\n\n+ `query.affiliation` - query contributor affiliations\n+ `query.author` - query author given and family names\n+ `query.bibliographic` - query bibliographic information, useful for citation look up, includes titles, authors, ISSNs and publication years\n+ `query.chair` - query chair given and family names\n+ `query.container-title` - query container title aka. publication name\n+ `query.contributor` - query author, editor, chair and translator given and family names\n+ `query.degree` - query degree\n+ `query.description` - query description\n+ `query.editor` - query editor given and family names\n+ `query.event-acronym` - query acronym of the event\n+ `query.event-location` - query location of the event\n+ `query.event-name` - query name of the event\n+ `query.event-sponsor` - query sponsor of the event\n+ `query.event-theme` - query theme of the event\n+ `query.funder-name` - query name of the funder\n+ `query.publisher-location` - query location of the publisher\n+ `query.publisher-name` - query publisher name\n+ `query.standards-body-acronym` - query acronym of the standards body\n+ `query.standards-body-name` - query standards body name\n+ `query.title` - query title\n+ `query.translator` - query translator given and family names\n## Sort\n\nResults can be sorted by applying the `sort` and `order` parameters. `sort` sets the field by which results will be sorted. `order` sets the result ordering, either `asc` or `desc` (default is `desc`).\n\nAn example that sorts results in order of publication, beginning with the least recent:\n\n##\n\n```\n/works?query=josiah+carberry&sort=published&order=asc\n```\n\n##\n\nThis endpoint supports sorting by the following elements:\n\n##\n\n+ `created` - sort by created date\n+ `deposited` - sort by time of most recent deposit\n+ `indexed` - sort by time of most recent index\n+ `is-referenced-by-count` - sort by number of times this DOI is referenced by other Crossref DOIs\n+ `issued` - sort by issued date (earliest known publication date)\n+ `published` - sort by publication date\n+ `published-online` - sort by online publication date\n+ `published-print` - sort by print publication date\n+ `references-count` - sort by number of references included in the references section of the document identified by this DOI\n+ `relevance` - sort by relevance score\n+ `score` - sort by relevance score\n+ `updated` - sort by date of most recent change to metadata, currently the same as deposited\n## Facets\n\nFacet counts can be retrieved by enabling faceting. Facets are enabled by providing facet field names along with a maximum number of returned term values. The larger the number of returned values, the longer the query will take. Some facet fields can accept a `*` as their maximum, which indicates that all values should be returned.\n\n##\n\nFor example, to get facet counts for all work types:\n\n##\n```\n/works?facet=type-name:*\n```\n\n##\n\nThis endpoint supports the following facets:\n\n##\n\n+ `affiliation` - author affiliation\n+ `archive` - archive location\n+ `assertion` - custom Crossmark assertion name\n+ `assertion-group` - custom Crossmark assertion group name\n+ `category-name` - category name of work\n+ `container-title` - [max value 100], work container title, such as journal title, or book title\n+ `funder-doi` - funder DOI\n+ `funder-name` - funder literal name as deposited alongside DOI\n+ `issn` - [max value 100], journal ISSN (any - print, electronic, link)\n+ `journal-issue` - journal issue number\n+ `journal-volume` - journal volume\n+ `license` - license URI of work\n+ `link-application` - intended application of the full text link\n+ `orcid` - [max value 100], contributor ORCID\n+ `published` - earliest year of publication\n+ `publisher-name` - publisher name of work\n+ `relation-type` - relation type described by work or described by another work with work as object\n+ `ror-id` - institution ROR ID\n+ `source` - source of the DOI\n+ `type-name` - work type name, such as journal-article or book-chapter\n+ `update-type` - significant update type\n## Filters\n\nFilters allow you to select items based on specific criteria. All filter results are lists.\n\n##\n\nFor example:\n\n##\n```\n/works?filter=type:dataset\n```\n\n### Multiple filters\n\nMultiple filters can be specified in a single query. In such a case, different filters will be applied with AND semantics, while specifying the same filter multiple times will result in OR semantics - that is, specifying the filters:\n\n- `is-update:true`\n- `from-pub-date:2014-03-03`\n- `funder:10.13039/100000001`\n- `funder:10.13039/100000050`\n\nwould locate documents that are updates, were published on or after 3rd March 2014 and were funded by either the National Science Foundation (`10.13039/100000001`) or the National Heart, Lung, and Blood Institute (`10.13039/100000050`). These filters would be specified by joining each filter together with a comma:\n\n##\n```\n/works?filter=is-update:true,from-pub-date:2014-03-03,funder:10.13039/100000001,funder:10.13039/100000050\n```\n\n### Dot filters\n\nA filter with a dot in its name is special. The dot signifies that the filter will be applied to some other record type that is related to primary resource record type. For example, with work queries, one can filter on works that have an award, where the same award has a particular award number and award-giving funding agency:\n\n##\n```\n/works?filter=award.number:CBET-0756451,award.funder:10.13039/100000001\n```\n##\n\nHere we filter on works that have an award by the National Science Foundation that also has the award number `CBET-0756451`.\n\n### Note on dates\n\nThe dates in filters should always be of the form YYYY-MM-DD, YYYY-MM or YYYY. The date filters are inclusive. For example:\n\n* `from-pub-date:2018-09-18` filters works published on or after 18th September 2018\n* `from-created-date:2016-02-29,until-created-date:2016-02-29` filters works first deposited on 29th February 2016\n* `until-created-date:2010-06` filters works first deposited in or before June 2010\n* `from-update-date:2017,until-update-date:2017` filters works with metadata updated in 2017\n\nAlso note that date information in Crossref metadata can often be incomplete. So, for example, a publisher may only include the year and month of publication for a journal article. For a monograph they might just include the year. In these cases the API selects the earliest possible date given the information provided. So, for instance, if the publisher only provided 2013-02 as the published date, then the date would be treated as 2013-02-01. Similarly, if the publisher only provided the year 2013 as the date, it would be treated at 2013-01-01.\n\n### Note on owner prefixes\n\nThe prefix of a Crossref DOI does **NOT** indicate who currently owns the DOI. It only reflects who originally registered the DOI. Crossref metadata has an **prefix** element that records the current owner of the Crossref DOI in question.\n\n##\n\nCrossref also has member IDs for depositing organisations. A single member may control multiple owner prefixes, which in turn may control a number of DOIs. When looking at works published by a certain organisaton, member IDs and the member routes should be used.\n\n### Notes on incremental metadata updates\n\nWhen using time filters to retrieve periodic, incremental metadata updates, the `from-index-date` filter should be used over `from-update-date`, `from-deposit-date`, `from-created-date` and `from-pub-date`. The timestamp that `from-index-date` filters on is guaranteed to be updated every time there is a change to metadata requiring a reindex.\n\n##\n\nThis endpoint supports the following filters:\n\n##\n\n+ `alternative-id` - metadata for records with the given alternative ID, which may be a publisher-specific ID, or any other identifier a publisher may have provided\n+ `archive` - metadata where value of archive partner equals given archive name\n+ `article-number` - metadata for records with a given article number\n+ `assertion` - metadata for records with a given named assertion\n+ `assertion-group` - metadata for records with an assertion in a given group\n+ `award`\n + `award.funder` - metadata for records with award funder equal to given funder, optionally combine with `award.number`\n + `award.number` - metadata for records with award number equal to given number, optionally combine with `award.funder`\n+ `category-name` - metadata for records with category label equal to given name, category labels come from the list published by Scopus\n+ `citation-id`\n+ `clinical-trial-number` - metadata for records with given clinical trial number\n+ `container-title` - metadata with a publication title that exactly equals given title\n+ `content-domain` - metadata where the publisher records a given domain name as the location Crossmark content will appear\n+ `doi` - metadata describing given DOI\n+ `from-accepted-date` - [date], metadata where accepted date is since given date (inclusive)\n+ `from-approved-date` - [date], metadata where approved date is since given date (inclusive)\n+ `from-awarded-date` - [date], metadata where award date is since given date (inclusive)\n+ `from-created-date` - [date], metadata first deposited since given date (inclusive)\n+ `from-deposit-date` - [date], metadata last (re)deposited since given date (inclusive)\n+ `from-event-end-date` - [date], metadata where event end date is since given date (inclusive)\n+ `from-event-start-date` - [date], metadata where event start date is since given date (inclusive)\n+ `from-index-date` - [date], metadata indexed since given date (inclusive)\n+ `from-issued-date` - [date], metadata where issued date is since given date (inclusive)\n+ `from-online-pub-date` - [date], metadata where online published date is since given date (inclusive)\n+ `from-posted-date` - [date], metadata where posted date is since given date (inclusive)\n+ `from-print-pub-date` - [date], metadata where print published date is since given date (inclusive)\n+ `from-pub-date` - [date], metadata where published date is since given date (inclusive)\n+ `from-update-date` - [date], metadata updated since given date (inclusive), currently the same as `from-deposit-date`\n+ `full-text`\n + `full-text.type` - metadata where `resource` element's `content_type` attribute equals given version mime type (e.g. application/pdf)\n + `full-text.application` - [text-mining, similarity-checking or unspecified], metadata where `resource` link has given application\n + `full-text.version` - metadata where `resource` element's `content_version` attribute equals given version\n+ `funder` - metadata which include given funder id in FundRef data\n+ `funder-doi-asserted-by` - metadata where funder DOI was asserted by given body\n+ `group-title` - metadata with given group title\n+ `gte-award-amount` - metadata where award is greater than or equals given number\n+ `has-abstract` - [0 or 1], metadata for records with/without an abstract\n+ `has-affiliation` - [0 or 1], metadata for records with/without affiliation information\n+ `has-archive` - [0 or 1], metadata which includes/does not include name of archive partner\n+ `has-assertion` - [0 or 1], metadata for records with/without assertions\n+ `has-authenticated-orcid` - [0 or 1], metadata which includes/does not include one or more ORCIDs where the depositing publisher claims to have witness the ORCID owner authenticate with ORCID\n+ `has-award` - [0 or 1], metadata for records with/without award\n+ `has-clinical-trial-number` - [0 or 1], metadata for records with/without a clinical trial number\n+ `has-content-domain` - [0 or 1], metadata where the publisher records/does not record a domain name location for Crossmark content\n+ `has-description`\n+ `has-domain-restriction` - [0 or 1], metadata where the publisher restricts/does not restrict Crossmark usage to content domains\n+ `has-event` - [0 or 1], metadata for records with/without event\n+ `has-full-text` - [0 or 1], metadata that includes/does not include any full text `resource` elements\n+ `has-funder` - [0 or 1], metadata which includes/does not include one or more funder entry\n+ `has-funder-doi` - [0 or 1], metadata for records with/without funder DOI\n+ `has-license` - [0 or 1], metadata that includes/does not include any `license_ref` elements\n+ `has-orcid` - [0 or 1], metadata which includes/does not include one or more ORCIDs\n+ `has-references` - [0 or 1], metadata for works that have/don't have a list of references\n+ `has-relation` - [0 or 1], metadata for records that either assert/do not assert or are/are not the object of a relation\n+ `has-ror-id` - [0 or 1], metadata for records with/without ROR ID\n+ `has-update` - [0 or 1], metadata for records with/without update information\n+ `has-update-policy` - [0 or 1], metadata for records that include/do not include a link to an editorial update policy\n+ `is-update` - [0 or 1], metadata for records that represent/do not represent editorial updates\n+ `isbn` - metadata with given ISBN\n+ `issn` - metadata with given ISSN, format is xxxx-xxxx\n+ `license`\n + `license.url` - metadata where `license_ref` value equals given url\n + `license.version` - metadata where the `license_ref`'s `applies_to` attribute equals given version\n + `license.delay` - metadata where difference between publication date and the `license_ref`'s `start_date` attribute is <= than given delay (in days)\n+ `lte-award-amount` - metadata where award is less than or equals given number\n+ `member` - metadata belonging to a given Crossref member\n+ `orcid` - metadata where there is a contributor with given ORCID\n+ `prefix` - metadata belonging to a given DOI owner prefix (e.g. 10.1016)\n+ `relation`\n + `relation.type` - metadata for records with a relation with the given type from the Crossref relations schema (e.g. is-referenced-by, is-parent-of, is-preprint-of)\n + `relation.object-type` - metadata for records with a relation, where the object type matches given type from the Crossref relations schema (e.g. doi, issn)\n + `relation.object` - metadata for records with a relation, where the object identifier matches given identifier\n+ `ror-id` - metadata with given ROR ID\n+ `type` - metadata records whose type equals given type, type must be an ID value from the list of types returned by the /types resource\n+ `type-name` - metadata for records with type name equal to given name\n+ `until-accepted-date` - [date], metadata where accepted date is before given date (inclusive)\n+ `until-approved-date` - [date], metadata where approved date is before given date (inclusive)\n+ `until-awarded-date` - [date], metadata where award date is before given date (inclusive)\n+ `until-created-date` - [date], metadata first deposited before given date (inclusive)\n+ `until-deposit-date` - [date], metadata last (re)deposited before given date (inclusive)\n+ `until-event-end-date` - [date], metadata where event end date is before given date (inclusive)\n+ `until-event-start-date` - [date], metadata where event start date is before given date (inclusive)\n+ `until-index-date` - [date], metadata indexed before given date (inclusive)\n+ `until-issued-date` - [date], metadata where issued date is before given date (inclusive)\n+ `until-online-pub-date` - [date], metadata where online published date is before given date (inclusive)\n+ `until-posted-date` - [date], metadata where posted date is before given date (inclusive)\n+ `until-print-pub-date` - [date], metadata where print published date is before given date (inclusive)\n+ `until-pub-date` - [date], metadata where published date is before given date (inclusive)\n+ `until-update-date` - [date], metadata updated before given date (inclusive), currently the same as `until-deposit-date`\n+ `update-type` - metadata with given update type\n+ `updates` - metadata for records that represent editorial updates to given DOI\n## Elements\n\nCrossref metadata records can be quite large. Sometimes you just want a few elements from the schema. You can \\\"select\\\" a subset of elements to return using the `select` parameter. This can make your API calls much more efficient. For example:\n\n##\n```\n/works?select=DOI,prefix,title\n```\n\n##\n\nThis endpoint supports selecting the following elements.\n\n##\n\n+ `DOI`\n+ `ISBN`\n+ `ISSN`\n+ `URL`\n+ `abstract`\n+ `accepted`\n+ `alternative-id`\n+ `approved`\n+ `archive`\n+ `article-number`\n+ `assertion`\n+ `author`\n+ `chair`\n+ `clinical-trial-number`\n+ `container-title`\n+ `content-created`\n+ `content-domain`\n+ `created`\n+ `degree`\n+ `deposited`\n+ `editor`\n+ `event`\n+ `funder`\n+ `group-title`\n+ `indexed`\n+ `is-referenced-by-count`\n+ `issn-type`\n+ `issue`\n+ `issued`\n+ `license`\n+ `link`\n+ `member`\n+ `original-title`\n+ `page`\n+ `posted`\n+ `prefix`\n+ `published`\n+ `published-online`\n+ `published-print`\n+ `publisher`\n+ `publisher-location`\n+ `reference`\n+ `references-count`\n+ `relation`\n+ `score`\n+ `short-container-title`\n+ `short-title`\n+ `standards-body`\n+ `subject`\n+ `subtitle`\n+ `title`\n+ `translator`\n+ `type`\n+ `update-policy`\n+ `update-to`\n+ `updated-by`\n+ `volume`\n## Pagination with offsets\n\nOffsets are an easy way to iterate over results sets up to 10,000 items. This limit applies to the sum of values of parameters `offset` + `rows`.\n\n##\n\nThe number of items returned in a single response is controlled by `rows` parameter (default is 20, and maximum is 1,000). To limit results to 5, for example, you could do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5\n```\n\n##\n\n`offset` parameter can be used to retrieve items starting from a specific index of the result list. For example, to select the second set of 5 results (i.e. results 6 through 10), you would do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5&offset=5\n```\n\n##\n\n## Deep paging\n\nDeep paging using cursors can be used to iterate over large result sets, without any limits on their size.\n\n##\n\nTo use deep paging make a query as normal, but include the `cursor` parameter with a value of `*`, for example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=*\n```\n\n##\n\nA `next-cursor` field will be provided in the JSON response. To get the next page of results, pass the value of `next-cursor` as the cursor parameter (remember to URL-encode). For example:\n\n##\n\n```\n/members/311/works?filter=type:journal-article&cursor=<value of next-cursor parameter>\n```\n\n##\n\nClients should check the number of returned items. If the number of returned items is equal to the number of expected rows then the end of the result set has been reached. Using next-cursor beyond this point will result in responses with an empty items list.\n\n##\n\n## Sample\n\nBeing able to select random results is useful for both testing and sampling. You can use the `sample` parameter to retrieve random results. So, for example, the following selects 10 random works:\n\n##\n```\n/works?sample=10\n```\n##\n\nNote that when you use the `sample` parameter, the `rows` and `offset` parameters are ignored.\n\n\n## Parameter combinations\n\nAny combination of `query`, `query.*`, `filter`, `facet`, `select` and `sort` can be used with offsets. Sampling cannot be combined with offsets.\n\n##\n\nAny combination of `query`, `query.*`, `filter`, `facet`, `select` and `sort` may also be used with deep paging cursors. `rows` may also be specified.\n\n##\n\n`offset` and `sample` cannot be used in combination with cursors.\n\n##\n",
"parameters": [
{
"in": "query",
"name": "rows",
"description": "The number of rows per page",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "order",
"description": "Combined with sort can be used to specify the order of results, e.g. asc or desc",
"required": false,
"pattern": "(asc|desc)",
"type": "string"
},
{
"in": "query",
"name": "facet",
"description": "Exposes the ability to retrieve counts for pre-defined facets e.g. `type-name:*` returns counts of all works by type",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "sample",
"description": "Exposes the ability to return `N` randomly sampled items",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "sort",
"description": "Exposes the ability to sort results by a certain field, e.g. `score`",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "offset",
"description": "The number of rows to skip before returning",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "mailto",
"description": "The email address to identify yourself and be in the \"polite pool\"",
"required": false,
"pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+\\.[A-Za-z]{2,6}$",
"type": "string"
},
{
"in": "query",
"name": "select",
"description": "Exposes the ability to select certain fields, supports a comma separated list of fields, e.g. `DOI,volume`",
"required": false,
"pattern": "^\\w+(,\\w+)*$",
"type": "string"
},
{
"in": "query",
"name": "query",
"description": "Exposes the ability to free text query certain fields",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "filter",
"description": "Exposes the ability to filter by certain fields, supports a comma separated list of lucene filters, e.g. `content-domain:psychoceramics.labs.crossref.org`",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "cursor",
"description": "Exposes the ability to deep page through large result sets, where offset would cause performance problems",
"required": false,
"type": "string"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/WorksMessage"
},
"description": "A list of works"
}
},
"tags": [
"Works"
]
}
},
"/deposits": {
"get": {
"description": "Returns a list of deposits.\n## Filters\n\nFilters allow you to select deposits based on specific criteria. All filter results are lists.\n\n##\n\nExamples:\n\n##\n```\n/deposits?filter=from-submission-time:2020-06-01\n```\n##\n\nThis endpoint supports the following filters:\n\n##\n\n+ `doi`\n+ `from-submission-time`\n+ `owner`\n+ `status`\n+ `test`\n+ `type`\n+ `until-submission-time`\n## Pagination with offsets\n\nOffsets are an easy way to iterate over results sets up to 10,000 items. This limit applies to the sum of values of parameters `offset` + `rows`.\n\n##\n\nThe number of items returned in a single response is controlled by `rows` parameter (default is 20, and maximum is 1,000). To limit results to 5, for example, you could do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5\n```\n\n##\n\n`offset` parameter can be used to retrieve items starting from a specific index of the result list. For example, to select the second set of 5 results (i.e. results 6 through 10), you would do the following:\n\n##\n\n```\n/works?query=allen+renear&rows=5&offset=5\n```\n\n##\n",
"security": [
"basicAuth"
],
"parameters": [
{
"in": "query",
"name": "filter",
"description": "Exposes the ability to filter by certain fields, supports a comma separated list of lucene filters, e.g. `content-domain:psychoceramics.labs.crossref.org`",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "query",
"description": "Exposes the ability to free text query certain fields",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "rows",
"description": "The number of rows per page",
"required": false,
"type": "integer",
"format": "int64"
},
{
"in": "query",
"name": "mailto",
"description": "The email address to identify yourself and be in the \"polite pool\"",
"required": false,
"pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+\\.[A-Za-z]{2,6}$",
"type": "string"
},
{
"in": "query",
"name": "offset",
"description": "The number of rows to skip before returning",
"required": false,
"type": "integer",
"format": "int64"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/DepositsMessage"
},
"description": "A list of deposits"
}
},
"tags": [
"Deposits"
]
},
"post": {
"description": "Deposit new content.",
"security": [
"basicAuth"
],
"consumes": [
"application/vnd.crossref.deposit+xml"
],
"parameters": [
{
"in": "query",
"name": "test",
"description": "Is the deposit for test purposes?",
"required": false,
"type": "boolean"
},
{
"in": "body",
"name": "data",
"description": "",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/DepositMessage"
},
"description": "The newly created deposit."
}
},
"tags": [
"Deposits"
]
}
},
"/works/{doi}/agency": {
"get": {
"description": "Gets the agency associated with a specific work by its DOI, as an example use DOI 10.5555/12345678",
"parameters": [
{
"in": "path",
"name": "doi",
"description": "The DOI identifier associated with the work",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"schema": {
"$ref": "#/definitions/AgencyMessage"