Type of the resource
Physical form of the resource
ISBD compliant
Title
Series Title
Edition
Main Contributor
Standard Identifier
Other standard identifier
Language
Topical terms
Electronic location
Summary
PUBLICATION AND PUBLISHER
Target audience
Physical description
Library of congress control number
System control number
General Information
Notes
Type of the resource
Physical form of the resource
ISBD compliant
Title statement
Current publication frequency
Varying form of title
Uniform title
Collective title
Former title
Edition statement
Summary
Language code
Language note
Main Contributor (Person)
Bibliographic note
Standard Identifier
Standard Identifier
Other standard identifier
Topical terms
Index term - uncontrolled
Index term - genre / form
Dewey decimal classification number
Universal decimal classification number
Other classification number
Target audience
audience characteristics
Study program information note
Control Fields
PUBLICATION AND PUBLISHER
Source of acquisition
Restrictions on access note
Control Fields
Physical description
Additional physical form available note
Control Fields
Electronic location
Type of computer file or data note
System details note
Library of congress control number
System control number
Cataloging source
National bibliography number
National bibliography agency control number
National library of medicine call number
Library of congress call number
Additional material characteristics
Original version note
Formatted content note
Supplement note
General note
  • Select the ONIX file containing the titles for which MARC records need to be generated. Maximum file size allowed is 50 MB.
  • MARC records can be downloaded as a '.zip' file containing separate MARC record for each title in the ONIX file or as a single '.mrc' file containing records of all titles given in the ONIX file.
  • Click 'Create' to upload the selected ONIX file. After the file is uploaded, a task id will be generated.
  • Use the task id to check the status of the MARC record generation process. If the MARC records are successfully generated, the download link for the MARC records will made available.
Upload ONIX
Download as
Check the task status

API Reference

EZMARC APIs are designed around REST.

API Endpoint : https://www.ezmarc.com/api/v1/records

MARC records can be created using a POST request to our API endpoint. The payload for the POST request can be JSON or ONIX xml. Request headers should include "Content-Type".

The POST request will initiate the MARC record creation, and the user will recieve a task ID. The task ID can be used to obtain the status of the task.

If the payload is JSON, the "Content-Type" in the header should be "application/json". In case of ONIX xml, "Content-Type" should be "application/xml" or "application/octet-stream". MARC record generated from ONIX xml can not be made ISBD compliant.

The schema for the JSON payload is given below :

Schema 1:

{"data": [{
      "bookType" : "monograph" | "series",
      "physicalForm" : "electronic" | "print",
      CONTROL_FIELD : {POSITION : string, ... },
      MAIN_FIELD: [{SUBFIELD_NAME : [string, ... ]}, ... ]
      }, ... ]
}

The CONTROL_FIELD values and its corresponding POSITION values supported by EZmarc api are given below

CONTROL_FIELD POSITION
"001" "data"
"003" "data"
"006" "00", "01-04", "01", "02", "03", "04", "05", "06", "07", "07-10", "08-10", "11", "12", "13", "14", "16", "17"
"007" "01", "03", "05", "06-08", "09", "10", "11", "12", "13"
"008" "06", "07-10", "11-14", "15-17", "18-21", "22", "23", "24-27", "28", "29", "30", "31", "32", "33", "34", "35-37", "38", "39"

The MAIN_FIELD values and its corresponding SUBFIELD_NAME values supported by EZmarc api are given below

MAIN_FIELD SUBFIELD_NAME
"010" "a"
"015" "a", "2"
"016" "a", "2"
"020" "a", "c", "q"
"022" "a", "l"
"024" "a", "c", "q", "2"
"035" "a"
"037" "a", "b", "c", "f", "n"
"040" "a", "b", "c"
"041" "a", "k", "h", "2"
"050" "a", "b"
"060" "a", "b"
"080" "a", "2"
"082" "a", "2"
"084" "a", "b", "2"
"100" "a", "b", "c", "d", "e", "u", "q"
"110" "a", "b"
"111" "a", "c", "d", "n", "p", "t"
"130" "a", "f", "h", "l", "n", "p"
"240" "a", "l"
"243" "a", "f", "l"
"245" "a", "b", "c", "h"
"246" "a", "b"
"247" "a", "b", "f", "h", "n", "p", "x"
"250" "a", "b"
"260" "a", "b", "c", "3"
"300" "a", "b", "c", "e"
"310" "a", "b"
"365" "a", "b", "c", "d", "e", "f", "g", "j", "k", "2"
"385" "a", "b", "m", "n", "2"
"490" "a", "l", "v", "x", "3"
"500" "a"
"504" "a"
"505" "a"
"506" "a", "b"
"516" "a"
"520" "a", "b"
"521" "a", "b"
"525" "a"
"526" "a", "b", "c", "d", "i", "z"
"530" "a", "b"
"534" "a", "b", "c", "e", "l", "n", "p", "t", "x", "z"
"538" "a"
"545" "a"
"546" "a", "b"
"650" "2", "a", "v", "x", "y", "z"
"653" "a"
"655" "a", "2"
"700" "a", "b", "c", "d", "e", "u", "q"
"710" "a", "b"
"830" "a", "h", "l", "n", "p", "v", "x", "3"
"856" "u", "z", "y", "q", "3"

Example POST Request:

curl -H "Content-Type: application/json" -X POST -d '{"data": [{"245":[{"a": ["War of the worlds"]}]}]}' https://www.ezmarc.com/api/v1/records

Response:

{ "status": "202",
  "task_id": "73723a77-00d4-4408-9fbd-967381e01aa7" }

Additionally, multiple MARC records can be appended to a single file, by passing "single_file=true" as an url parameter. The default value is 'False'.

curl -H "Content-Type: application/json" -X POST -d '{"data": [{"245":[{"a": ["War of the worlds"]}]}, {"245":[{"a": ["The invisible man"]}]}]}' https://www.ezmarc.com/api/v1/records?single_file=true

GET request can be used to check the status of the task, whose ID must be specified as request parameter. The response will contain information regarding the status of the task, and additionally it can contain the download link for the MARC record, if the task is completed successfully.

Example GET Request:

curl https://www.ezmarc.com/api/v1/records?task_id=73723a77-00d4-4408-9fbd-967381e01aa7

Response:

{ "download_url": "http://s3.amazonaws.com/ezmarc-records/73723a77-00d4-4408-9fbd-967381e01aa7.zip",
  "message": "MARC record successfully created",
  "status": "200" }

Creating ISBD compliant MARC records

The EZmarc API supports ISBD notations for the following MAIN_FIELD
'020', '024', '245', '246', '250', '260', '300', '310', '490', '830'

ISBD compliant MARC records can be created in 2 different ways as given below :

Method I :
Set the url parameter 'isbd' to 'true' and use the modified schema for the JSON payload as given below :

Schema 2:

{"data": [{
      "bookType" : "monograph" | "series",
      "physicalForm" : "electronic" | "print",
      CONTROL_FIELD : {POSITION : string, ... },
      MAIN_FIELD: [{SUBFIELD_NAME : [string, ... ]}, ... ,
           {ISBD_SUBFIELD_NAME : [{"type": ISBD_FIELD_TYPE, "value" : string}, ... ]},
            ... ]
      }, ... ]
}

The ISBD_FIELD_TYPE supported for each ISBD_SUBFIELD_NAME is given below

MAIN_FIELD ISBD_SUBFIELD_NAME ISBD_FIELD_TYPE
"020" "c" "terms_of_availability",
"qualifier"
"024" "c" "terms_of_availability",
"qualifier"
"245" "b" "other_title,
"parallel_title"
"250" "b" "statement_of_responsibility,
"additional_statement",
"parallel_statement"
"260" "c" "date_first_issue,
"date_last_issue"
"3" "date_first_issue,
"date_last_issue"
"300" "e" "accompanying_material,
"dimensions",
"other_physical_detail",
"extent"
"490" "a" "series_title,
"statement_of_responsibility",
"other_title",
"parallel_title",
"subseries"
"3" "number_first_issue,
"date_first_issue",
"number_last_issue",
"date_last_issue"
"830" "3" "number_first_issue,
"date_first_issue",
"number_last_issue",
"date_last_issue"

Method II :
If the user wants to enter the isbd punctuations themselves, don't use the modified JSON schema. Instead, use Schema 1, and set the url parameter 'isbd' to 'false'.

URL PARAMETERS:

"strict" If set to 'true', the API will validate the schema of the JSON payload. The request will be rejected if validation fails. If set to 'false', the API will not validate the schema of the JSON payload, but the resulting MARC record may miss some subfield values. The validation of JSON schema depends on the 'isbd' url parameter.
Default value = "true"
"isbd" If set 'True' the MARC records created will be ISBD compliant, provided the JSON is formulated according to ISBD schema defined above. If set 'False' the MARC records created won't be ISBD compliant.
Default value = "true"
"single_file" If set 'True' all created MARC records will be appended to a single '.mrc' file and returned. If 'False' all the MARC records are generated as seperate '.mrc' files and returned as a zip file with extension '.zip'.
Default value = "false"

HTTP Status Code Summary:

200     MARC record is successfully generated,
202     The task is in queue
400     Bad request
404     The given record ID does not exist
415     Unsupported media type (Content-type is not xml or json)
500     Something went wrong on EZMARC's end.

Mandatory fields are highlighted in red colour. Please fill them before submit.