EZB OAI-PMH API
Link to the interface: https://ezb-oai.ur.de/zdb/oai2.php
Should you wish to use the interface, please contact the EZB team at info.ezb@ur.de. Should you have any questions, please do not hesitate to get in touch.
Updates, maintenance windows and further information about the interface are published via the mailing list https://www.listserv.dfn.de/sympa/info/ur-ub-ezb.
To receive important information, please subscribe to this list.
1. What is the EZB OAI-PMH interface?
The OAI-PMH interface of the Electronic Journals Library enables the retrieval of inventory data (licence information) from EZB member institutions that have agreed to the disclosure of this information. The data is provided in MARC21-xml and Dublin Core format and contains the following information (if available):
- BIK & ISIL of the EZB institution
- ZDB-ID of the corresponding title
- Link to the EZB entry
- Link to the full text of the journal
- Inventory information (e.g. first full-text edition, last full-text edition)
- Interlibrary loan information
The service provider is able to retrieve this data and integrate it into its own application, services, or search engine. The interface is freely available and free of charge; the data may be reused under the CC0 1.0 license.
1.1 OAI PMH methods
- GetRecord: Retrieve a single metadata record.
- Identify: Retrieve basic information about the provider.
- ListIdentifiers: Retrieve a list of identifiers (unique identifiers) for metadata records.
- ListMetadataFormats: Retrieve available metadata formats.
- ListRecords: Retrieve a list of metadata records.
- ListSets: Retrieve a list of sets (collections).
2. Conventions
All date values are used as UTC time (without time zone). The format is: “yyyy-mmddTHH:mm:ssZ”. E.g. 2023-06-06T00:00:00Z
The EZB’s OAI interface can be accessed at https://ezb-oai.ur.de/zdb/oai2.php, http://ezboai.ur.de/zdb/oai2.php redirects to the encrypted interface. Partial harvesting is possible using ResumptionToken. Deleted records are not reported via the “Deleted” status at the OAI protocol level, but as updates with a corresponding deletion flag in the MARC leader.
3. Description of the methods
3.1 GetRecord
URL https://ezb-oai.ur.de/zdb/oai2.php?verb=GetRecord
Parameter
Identifier (required) = EZBLicenseID
metadataPrefix (required): MARC21-xml, oai_dc
Response
<OAI-PMH xmlns=„http://www.openarchives.org/OAI/2.0/“ xmlns:xsi=„http://www.w3.org/2001/XMLSchema-instance“ xsi:schemaLocation=„http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd“>
<responseDate>2024-05-03T10:37:55Z</responseDate>
<request verb=„GetRecord“ identifier=„oai:ezb.de:5264777“ metadataPrefix=„marc21“>https://ezb-oai.ur.de/zdb/oai2.php</request>
<GetRecord>
<record>
<header>
<identifier>oai:ezb.ur.de:5264777</identifier>
<datestamp>2018-10-30T10:59:03Z</datestamp>
<setSpec>action:insert</setSpec>
<setSpec>ezb:holdings:DE-355</setSpec>
</header>
<metadata>
<marc:record xmlns:marc=„http://www.loc.gov/MARC21/slim“ type=„Holdings“>
<marc:leader>00000ny a2200000zn 4500</marc:leader>
<marc:controlfield tag=„001“>5264777</marc:controlfield>
<marc:controlfield tag=„003“>DE-606</marc:controlfield>
<marc:controlfield tag=„007“>cr||||||||||||</marc:controlfield>
<marc:controlfield tag=„008“>181030||||||||||||||||||||||||||</marc:controlfield>
<marc:datafield tag=„016“ ind1=„7“ ind2=“ „>
<marc:subfield code=„a“>2788310-3</marc:subfield>
<marc:subfield code=„2“>DE-600</marc:subfield>
</marc:datafield>
<marc:datafield tag=„035“ ind1=“ „ ind2=“ „>
<marc:subfield code=„a“>(DE-606)5264777</marc:subfield>
</marc:datafield>
<marc:datafield tag=„092“ ind1=“ „ ind2=“ „>
<marc:subfield code=„a“>841000-8</marc:subfield>
<marc:subfield code=„d“>355</marc:subfield>
<marc:subfield code=„l“>c</marc:subfield>
</marc:datafield>
<marc:datafield tag=„093“ ind1=“ „ ind2=“ „>
<marc:subfield code=„a“>a</marc:subfield>
<marc:subfield code=„e“>b</marc:subfield>
<marc:subfield code=„f“>c</marc:subfield>
<marc:subfield code=„g“>a</marc:subfield>
</marc:datafield>
<marc:datafield tag=„852“ ind1=“ „ ind2=“ „>
<marc:subfield code=„a“>DE-355</marc:subfield>
</marc:datafield>
<marc:datafield tag=„856“ ind1=„4“ ind2=„0“>
<marc:subfield code=„u“>https://www.ash-berlin.eu/hochschule/presse-und-newsroom/gendermagazin-quer/#c1881</marc:subfield>
<marc:subfield code=„x“>Volltext</marc:subfield>
</marc:datafield>
<marc:datafield tag=„856“ ind1=„4“ ind2=„0“>
<marc:subfield code=„u“>https://ezb.ur.de/detail.phtml?bibid=UBR&jour_id=170368</marc:subfield>
<marc:subfield code=„x“>EZB Link</marc:subfield>
</marc:datafield>
<marc:datafield tag=„859“ ind1=„0“ ind2=„1“>
<marc:subfield code=„8“>1.1\x</marc:subfield>
<marc:subfield code=„a“>20</marc:subfield>
<marc:subfield code=„i“>2014</marc:subfield>
</marc:datafield>
<marc:datafield tag=„866“ ind1=„3“ ind2=„0“>
<marc:subfield code=„a“>20.2014 – </marc:subfield>
</marc:datafield>
</marc:record>
</metadata>
</record>
</GetRecord>
</OAI-PMH>
Parameter
–
Response
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/
http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd
http://www.loc.gov/MARC21/slim
http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd">
<responseDate>2024-05-03T08:44:22Z</responseDate>
<request verb="Identify">https://ezb-oai.uni-regensburg.de/zdb/oai2.php</request>
<Identify>
<repositoryName>EZB-ZDB-OAI-PMH</repositoryName>
<baseURL>https://ezb-oai.ur.de/zdb/oai2.php</baseURL>
<protocolVersion>2.0</protocolVersion>
<adminEmail>technik.ezb@ur.de</adminEmail>
<earliestDatestamp>2017-01-01</earliestDatestamp>
<deletedRecord>no</deletedRecord>
<granularity>YYYY-MM-DD</granularity>
</Identify>
</OAI-PMH>
Parameter
- metadataPrefix (benötigt): MARC21-xml, oai_dc
Response
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/
http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd
http://www.loc.gov/MARC21/slim
http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd">
<responseDate>2024-05-03T10:41:03Z</responseDate>
<request verb="ListIdentifiers" metadataPrefix="MARC21-xml">https://ezb-oai.uni-regensburg.de/zdb/oai2.php</request>
<ListIdentifiers>
<header>
<identifier>oai:ezb.ur.de:24514124</identifier>
<datestamp>2024-01-26T05:34:18Z</datestamp>
<setSpec>action:update</setSpec>
<setSpec>ezb:holdings:DE-Frei119</setSpec>
</header>
<header>
<identifier>oai:ezb.ur.de:14402763</identifier>
<datestamp>2024-01-26T05:34:18Z</datestamp>
<setSpec>action:update</setSpec>
<setSpec>ezb:holdings:DE-Frei119</setSpec>
</header>
<header>
<identifier>oai:ezb.ur.de:14401253</identifier>
<datestamp>2024-01-26T05:34:18Z</datestamp>
<setSpec>action:update</setSpec>
<setSpec>ezb:holdings:DE-Frei119</setSpec>
</header>
<header>
<identifier>oai:ezb.ur.de:14413493</identifier>
<datestamp>2022-09-24T03:56:47Z</datestamp>
<setSpec>action:update</setSpec>
<setSpec>ezb:holdings:DE-Frei119</setSpec>
</header>
<header>
<identifier>oai:ezb.ur.de:14401949</identifier>
<datestamp>2024-02-07T05:44:48Z</datestamp>
<setSpec>action:delete</setSpec>
<setSpec>ezb:holdings:DE-Frei119</setSpec>
</header>
<header>
<identifier>oai:ezb.ur.de:14390612</identifier>
<datestamp>2024-01-26T05:34:18Z</datestamp>
<setSpec>action:update</setSpec>
<setSpec>ezb:holdings:DE-Frei119</setSpec>
</header>
<!-- Hier würden ALLE weiteren Identifier aufgelistet -->
<resumptionToken expirationDate="2024-05-04T10:41:04Z" completeListSize="21258609" cursor="0">1714732864263_MARC21-xml</resumptionToken>
</ListIdentifiers>
</OAI-PMH>
Parameter
–
Response
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/
http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd
http://www.loc.gov/MARC21/slim
http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd">
<responseDate>2024-05-03T08:58:47Z</responseDate>
<request verb="ListMetadataFormats">https://ezb-oai.ur.de/zdb/oai2.php</request>
<ListMetadataFormats>
<metadataFormat>
<metadataPrefix>marc21</metadataPrefix>
<schema>http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd</schema>
<metadataNamespace>http://www.loc.gov/MARC21/slim/</metadataNamespace>
</metadataFormat>
<metadataFormat>
<metadataPrefix>MARC21-xml</metadataPrefix>
<schema>http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd</schema>
<metadataNamespace>http://www.loc.gov/MARC21/slim/</metadataNamespace>
</metadataFormat>
<metadataFormat>
<metadataPrefix>oai_dc</metadataPrefix>
<schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema>
<metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNamespace>
</metadataFormat>
</ListMetadataFormats>
</OAI-PMH>
Parameter
- metadataPrefix (required): MARC21-xml, oai_dc
- from (optional): UTC time in the format “yyyy-mm-dd”
- until (optional): UTC time in the format “yyyy-mm-dd”
- set (optional): Set identifier: ezb:holdings:<ISIL of the institution>
- resumptionToken (optional): Token for resumption in the case of larger data sets
Response
<OAI-PMH
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/
http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd
http://www.loc.gov/MARC21/slim
http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd">
<responseDate>2024-05-03T09:24:11Z</responseDate>
<request
verb="ListRecords" metadataPrefix="marc21"
set="ezb:holdings:DE-355">https://ezb-oai.uni-regensburg.de/zdb/oai2.php</request>
<ListRecords>
<!-- Auflistung des ersten Records für das ausgewählte Set -->
<record>
<header>
<identifier>oai:ezb.ur.de:24091063</identifier>
<datestamp>2024-02-07T05:37:27Z</datestamp>
<!-- Art des Datensatzes -->
<setSpec>action:update</setSpec>
<!-- Gültiges Set -->
<setSpec>ezb:holdings:DE-355</setSpec>
</header>
<metadata>
<marc:record type="Holdings">
<marc:leader>00000cy a2200000zn 4500</marc:leader>
<marc:controlfield tag="001">24091063</marc:controlfield>
<marc:controlfield tag="003">DE-606</marc:controlfield>
<marc:controlfield tag="007">cr||||||||||||</marc:controlfield>
<marc:controlfield tag="008">190918||||||||||||||||||||||||||</marc:controlfield>
<marc:datafield tag="016" ind1="7" ind2=" ">
<marc:subfield code="a">2406833-0</marc:subfield>
<marc:subfield code="2">DE-600</marc:subfield>
</marc:datafield>
<marc:datafield tag="035" ind1=" " ind2=" ">
<marc:subfield code="a">(DE-606)24091063</marc:subfield>
</marc:datafield>
<marc:datafield tag="092" ind1=" " ind2=" ">
<marc:subfield code="a">841000-8</marc:subfield>
<marc:subfield code="d">355</marc:subfield>
<marc:subfield code="l">a</marc:subfield>
<marc:subfield code="o">e</marc:subfield>
<marc:subfield code="p">n</marc:subfield>
</marc:datafield>
<marc:datafield tag="093" ind1=" " ind2=" ">
<marc:subfield code="a">a</marc:subfield>
<marc:subfield code="e">b</marc:subfield>
<marc:subfield code="f">b</marc:subfield>
<marc:subfield code="g">c</marc:subfield>
</marc:datafield>
<marc:datafield tag="852" ind1=" " ind2=" ">
<marc:subfield code="a">DE-355</marc:subfield>
</marc:datafield>
<marc:datafield tag="856" ind1="4" ind2="0">
<marc:subfield
code="u">https://onlinelibrary.wiley.com/journal/17550998</marc:subfield><marc:subfield
code="x">Volltext</marc:subfield>
</marc:datafield>
<marc:datafield tag="856" ind1="4" ind2="0">
<marc:subfield
code="u">https://ezb.ur.de/ReadMe?bibid=UBR&owner=WIDEA&anchor=deal_wiley&lang=de</marc:subfield>
<marc:subfield code="x">Readme</marc:subfield>
</marc:datafield>
<marc:datafield tag="856" ind1="4" ind2="0">
<marc:subfield code="u">https://ezb.ur.de/ReadMe?bibid=UBR&owner=WIDEA&anchor=deal_wiley&lang=en</marc:subfield>
<marc:subfield code="x">Readme</marc:subfield>
</marc:datafield>
<marc:datafield tag="856" ind1="4" ind2="0">
<marc:subfield code="u">
https://ezb.ur.de/detail.phtml?bibid=UBR&jour_id=9751
</marc:subfield>
<marc:subfield code="x">EZB Link</marc:subfield>
</marc:datafield>
<marc:datafield tag="859" ind1="0" ind2="1">
<marc:subfield code="8">1.1\x</marc:subfield>
<marc:subfield code="a">8</marc:subfield>
<marc:subfield code="i">2008</marc:subfield>
</marc:datafield>
<marc:datafield tag="866" ind1="3" ind2="0">
<marc:subfield code="a">8.2008 - </marc:subfield>
</marc:datafield>
<marc:datafield tag="866" ind1=" " ind2="0">
<marc:subfield code="x">DEAL</marc:subfield>
</marc:datafield>
</marc:record>
</metadata>
</record>
<!-- Hier würden ALLE weiteren Records für das Set aufgelistet -->
<resumptionToken expirationDate="2024-05-04T09:24:21Z"
completeListSize="146218"
cursor="0">1714728261163_marc21</resumptionToken>
</ListRecords>
</OAI-PMH>
4. field description
Field | Description |
MARC 000 | Leader (action) |
MARC 001 | ID of the EZB license entry (EZB license_entry_id) |
MARC 003 | ISIL of the supplying institution = EZB-ISIL (DE-606) |
MARC 007 | Material code information (cr||||||||||||) |
MARC 008 | Date of initial recording of the EZB license entry in the form „yymmdd“ |
MARC 016 | $a: ZDB-ID of the corresponding title (zdbid) $2: ISIL of the ZDB = DE-600 (isil) |
MARC 035 | $a: ID of the EZB license entry with ZDB-ISIL (EZB ISIL in brackets followed by license_entry_id) |
MARC 092 | $a: Library identifier of the ZDB (BIK) (bik) $l: Interlibrary loan relevance of the owning library: a, if relevant for interlibrary loan; b, if not relevant for interlibrary loan; c, if no information available (ill_relevance) $o: Interlibrary loan indicator (copy-related): a, if only lending; b, if paper copy to end user; c, if copy and lending; d, if no interlibrary loan; e, if electronic delivery to end user possible (ill_code) $p: Contractual restriction on interlibrary loan: n, if interlibrary loan only permitted domestically (inland_only) $p: Contractual restriction on interlibrary loan: p, if electronic transfer between libraries is excluded (il_electronic_forbidden) $q: Comment on interlibrary loan indicator (comment) |
MARC 093 | $a: Origin, capture direction: a, if from EZB $e: Information on document type: a, if full text, online only; b, if full text, online and print edition; c, if local journal; d, if retro-digitized (type_id) $f: Information on license type: a, if national license; b, if national consortium or consortium or alliance license; c, if individual license (license_type_id) $g: Information on price type: a, if license-free; b, if free with print edition; c, if subject to a fee; 4, if no information available (price_type_id) |
MARC 852 | $a: ISIL of the library(isil) |
MARC 856 | $u: URL to full text (reference_url) $x: Description of URL: Full text $u: URL to German Readme page (readme_url lang=‘de’) $x: Description of URL: Readme de $u: URL to English Readme page (readme_url lang=‘en’) $x: Description of the URL: Readme en $u: URL to the EZB entry $x: Description of the URL: EZB link |
MARC 859 | $8: Sequence number. Start group: 1.1\x $a: Volume number at the start of the license period (first_volume) $b: Issue number at the start of the license period (first_issue) $i: Year at the start of the license period (first_date) $8: Sequence number. End group: 1.2\x $a: Volume information at the end of the license period (last_volume) $b: Issue information at the end of the license period (last_issue) $i: Year information at the end of the license period (last_date) $y: Moving wall information (moving_wall) |
MARC 866 | $a: License period as text (first_volume. first_date, first_issue – last_volume. last_date, last_issue) $x: Free text for license information (available) |
MARC 920 | $a EZB package ID:EZB package anchor or EZB BIBID:EZB anchor |
Further information on the definition of MARC fields in the ZDB can be found here: https://zeitschriftendatenbank.de/fileadmin/user_upload/ZDB/pdf/zdbformat/1101.pdf
5. Data harvesting via the EZB OAI interface
5.1 ListRecords with Set-Identifier
This approach can be used to retrieve all inventory data for a specific EZB institution. Please find below the set identifier, which contains the ISIL of the institution. For the University Library of Regensburg (ISIL: DE-355), the set identifier is: eZB: holdings: DE-355.
Procedure
- Request using method: “ListRecords”: ?verb=ListRecords&metadataPrefix=MARC21-xml&set=ezb:holdings:DE-355
- The maximum number of records delivered via <ListRecords> is 2,500. If more records are available, a resumptionToken is provided. The query can then be repeated with the resumptionToken until the end of the query is reached:
?verb=ListRecords&resumptionToken=1714728261163_marc21
5.2 ListRecords with information on the period
This approach is recommended for users wishing to regularly compare inventory data with the EZB. To do this, you simply request the change data for a time window of your choice (daily, weekly, or individually), e.g., from 2024-05-10 to 2024-05-20
Procedure
- Request using the “ListRecords” method: ?metadataPrefix=MARC21-xml&verb=ListRecords&from=2024-05-10&until=2024-05-20
- The maximum number of records delivered via <ListRecords> is 2,500. If more records are available, a resumptionToken is provided. The query can then be repeated with the resumptionToken until the end of the query is reached:
?verb=ListRecords&resumptionToken=1714728261163_marc21
5.3 ListRecords with set identifier and information on the time period
This approach can be selected to retrieve the inventory data of a specific EZB institution for a defined period. In order to retrieve the required data, you will need the set identifier, which contains the ISIL of the institution, and the period for which the data is to be retrieved. For example, if the data is to be retrieved from 2024-05-10 to 2024-05-20, you will need to include both dates. For the University Library of Regensburg (ISIL: DE-355), the set identifier is: eZB:holdings:DE-355.
Procedure
- Request via method: “ListRecords”: ?verb=ListRecords&metadataPrefix=MARC21-xml&set=ezb:holdings:DE-355&from=2024-05-10&until=2024-05-20
- The maximum number of records delivered via <ListRecords> is 2,500. If there are more records, a resumptionToken is provided. The query can then be repeated with the resumptionToken until the end of the query is reached:
?verb=ListRecords&resumptionToken=1714728261163_marc21
