Your gateway to millions of microforms and digital reproductions of books

This is an old revision of the document!


EROMM Request API

Please note: This page is still in development. With just a little scripting, you can plug EROMM Request into your local Document Order and Delivery System or ILS or even build your own application to maintain your incoming requests. The EROMM Request API consists of a number of (RESTful) webservices which will return JSON objects as default (or HTML if you explicitly ask for it).

Supported HTTP commands are GET and POST, which can be used alike. You may either use querystring parameters in your HTTP-requests or pack the parameters into a JSON object, which is then handed over as the value of the parameter data. If you use both variants in one request, the querystring parameters will take precedence over the JSON encoded values if there is a conflict.

Please note: Please consider this API sort of “beta”. We might change a thing or fix a bug in the future and will announce it on the EROMM Website accordingly. If you let us know, that you are using the API, we could inform you directly in advance. Please note also that this documentation documents only these parts of the API that are needed on the supplier (i.e. the library or institution holding a microfilm or digital item a user might be interested in) side. We might publish the other parts at a later point in time.

General

Common parameters for all API calls:

cmdCommandindicates the action that should be carried out.
authAuthentication Token Any action that requires the client to be authenticated, needs an authentication token being sent with the request. This token is obtained by performing a login operation.
formatOutput formatSpecifies the response format of the API call. Currently json and html are supported, with json being the default if no format indication is given.

Response format:

{
    "auth":{
        "add_associated_supplier":"0",
        "create_user":"1",
        "add_message":"1",
        "change_request":"1",
        "supplier":"2350",
        "user":null,
        "is_admin":"0",
        "read":"1",
        "expires":"2011-07-22 14:57:19"
    },
    "verbose":{
        "supplier":{
            "info":"This is the test account of the EROMM Secretariat\u000d\u000aWe do not deliver any items.",
            "website":"http://www.sub.uni-goettingen.de",
            "isil":"DE-7",
            "name":"EROMM TEST",
            "address":"Platz der Göttinger Sieben 1\u000d\u000a37081 Göttingen\u000d\u000aGermany"
        },
        "user":{
            "email":"jahnke@sub.uni-goettingen.de",
            "name":"Tester, Theo",
            "address":"Papendiek 14\u000a37073 Göttingen\u000aGermany"
        },
        "title":{
            "ppn":"483278114",
            "sVolume":null,
            "erommId":"USRLINNJPG85-B21371",
            "sSeries":null,
            "sPhysicalDescription":"1 microfilm reel",
            "sLocation":"US ; Princeton University Library : shelfmark unknown",
            "pImprint":"[Augsburg] : [s.n.], [1881]",
            "pSeries":null,
            "pTitleSet":null,
            "sImprint":"[Princeton, N.J.] : Princeton University Library, 1982",
            "type":1,
            "pTitle":"Hainhofers Reisen nach München und Neuberg a/D in den Jahren 1613, 1614 und 1636",
            "pAuthor":"Hainhofer, Philipp"
        }
    },
    "errors":[],
    "data":{
        "request":"9",
        "messages":[{
                "request":"9",
                "text":"What would be the price for a printout of this publication?",
                "sender":"10009",
                "requestType":"1",
                "dateCreated":"2011-07-22",
                "message":"36"
            }
        ],
        "status":"3",
        "replyBy":"2011-08-01",
        "discount":"0",
        "dateChanged":"2011-07-22",
        "supplier":"2350",
        "user":"10009",
        "title":"483278114",
        "material":"1",
        "dateCreated":"2011-07-22"
    },
    "token":"ymUKf8AwcCjIFfdLAdCBkAu5iuvYYbFQ"
}

Properties of the response object

auth.add_associated_suppliertrue if the holder of the login account has the necessary privileges to associate users with a supplier account (e.g. in order to entitle them to a discount)
auth.add_messagetrue if the account has the necessary privileges to add messages to the requests associated with the connected user or supplier account
auth.change_requesttrue if the account holder has the necessary privileges to change a request associated with the connected user or supplier account
auth.create_usertrue if the holder of the login account can create a user account associated with the login account
auth.expiresdate and time when the current authentication token expires
auth.is_admintrue if the holder of the login account has admin privileges
auth.readtrue if the holder of the login account has the necessary privileges to read the requests associated with the connected user or supplier account
auth.supplierSupplier ID associated with the current login
auth.userUser ID associated with the current login
dataIn response to a call that lists requests (e.g. new requests, updated requests etc.) the request information is given in a list of objects in the data property. The properties used are the same as for a single request, except that verbose and data.messages are not included
data.messages.[].dateCreatedDate on which the message has been created
data.messages.[].messageMessage ID
data.messages.[].requestRequest to which the message applies
data.messages.[].requestTypeCode for the type of request
data.messages.[].senderUser/Supplier ID of the sender of the given message
data.messages.[].textText of the message
data.requestRequest ID
dateChangeddate on which the request has last been changed
dateCreateddate on which the request has been created
discounttrue if the user is entitled to a 5% discount off the regular fee for a use copy (according to Memorandum of Understanding)
materialcode that indicates the type of material the request is about: 1 for microfoms and 2 for digital material
replyBythe date after which the system will try to send out a reminder to both the user and the supplier unless the request has not reached a final status by then
statusthe status of the request
supplierID of the supplying institution (for full information see verbose.supplier)
titlethe id of the title, the request is about (for full information see verbose.title)
tokenthe current authentication token
userID of the user who initiated the request (for full information see verbose.user)
verbose.supplier.addressAddress of the supplying institution
verbose.supplier.infoShort information on the supplying institution
verbose.supplier.isilISIL of the supplying institution, if the supplying institution is a library
verbose.supplier.namename of the supplying institution
verbose.supplier.websiteWebsite of the supplying institution
verbose.title.erommIdID assigend to that surrogate by EROMM
verbose.title.pAuthorAuthor of the original publication
verbose.title.pImprintImprint statement of the original publication
verbose.title.ppnInternal identifier for the surrogate in the EROMM Classic database
verbose.title.pSeriesTitle of the series, the original publication is part of
verbose.title.pTitleTitle of the publication
verbose.title.pTitleSetCollective title of the mulit-volume work the original publication is part of
verbose.title.sImprintImprint statement of the surrogate
verbose.title.sLocationLocation of the surrogate (library and shelfmark)
verbose.title.sPhysicalDescriptionphysical description of the surrogate
verbose.title.sSeriesTitle of the reprodction series, the item is part of
verbose.title.sVolumeVolume number if the item is part of a reproduction series
verbose.title.typecode that indicates the type of material (1 for microform, 2 for digital)
verbose.user.addressAddress of the user who initiated the request
verbose.user.emailEmail-Address of the user who initiated the request
verbose.user.nameName of the user who initiated the request

Authentication

login

Script login.pl
Command login
Authentication required no
Specific Parameters login contains the login name (user name)
password holds the password
Return ValueThis service returns an authentication token which is required for all other webservices. The authentication token times out after 30 minutes of inactivity. The token is returned as the token property of the returned JSON object
Example login.pl?cmd=login&login=<login name>&password=<password>

logout

Script login.pl
Commandlogout
Authentication required yes
Specific Parameters none
Return ValueThe token property of the returned JSON object is null
Example login.pl?cmd=logout&auth=<authentication token>

Handling Requests

activateRequest

addMessage

cancelRequest

closeRequest

confirmRequest

displayRequest

listRequests

listCancelledRequests

listClosedRequests

listNewRequests

listOpenRequests

listRedirectedRequests

redirectToAdmin

Handling Supplier Information

addAssociatedUser

getDeliveryDetails

getSupplier

listAssociatedUsers

removeAssociatedUser

updateDeliveryDetails

updateSupplier

This website uses cookies to ensure you get the best experience from it.
Last modified:: 2012-04-12, 11:01