Bibliographic Resource

URLs and Supported Operations

The Bibliographic Resource supports 6 operations.

Operation Resource URL HTTP METHOD Response Code
Create{inst}&classificationScheme={scheme}&holdingLibraryCode={holdingLibraryCode} POST 201
Read{oclcNumber}?inst={inst}&classificationScheme={scheme}&holdingLibraryCode={holdingLibraryCode} GET 200
Update{inst}&classificationScheme={scheme}&holdingLibraryCode={holdingLibraryCode} PUT 200
Validate Full{inst}&classificationScheme={scheme} POST 200
Validate for Add{inst}&classificationScheme={scheme} POST 200
Validate for Replace{inst}&classificationScheme={scheme} POST 200

HTTP Accept Types

The Metadata API Bibliographic Record Resource will produce three different representations that can be sent back to clients. All three are representations serialize an AtomPub that wraps a bibliographic record. There are two XML serializations for MARC/XML and OCLC's native CDF records. The third serialization is a translation of the CDF record into JSON:

HTTP Request Content Types

When sending requests to the service to create and update records, you can send the serializations that are either wrapped or unwrapped:


Parameter Required? Description Expected/Sample Value
inst No

Registry ID of the institution who is creating/editing the record

Either this parameter or the instSymbol should be sent

instSymbol No

OCLC Symbol of the institution who is creating/editing the record

Either this parameter or the inst should be sent

classificationScheme Yes The classification scheme
  • DeweyDecimal
  • LibraryOfCongress
  • NationalLibraryOfMedicine
  • NationalAgriculturalLibrary
  • GovernmentDocument
  • UniversalDecimal
  • CanadianNationalLibrary
holdingLibraryCode No Four letter holding code to set the holding on. Valid codes for a given institution can be obtained via a request for holding code resource  

Example Request

Read a bibliographic record with the OCLC Number 319501305:


General Validation

When creating or updating records, OCLC's heading control and reformat operations are always called. Additionally, all records are passed through validation routines.


When performing a read of a record, if the OCLC Number passed in the read has been merged then the web service will return the record for the OCLC Number that the original record has been merged into. The returned record will the correct merged record OCLC number in the 001.


When performing a create of a record, a holding will not automatically be set for the library creating the record. To both create a record and set a holding on the record for the creating library. Two API calls are necessary. One to create the record. One to set holdings on the record using the Holding Resource.


When updating records, they must include a numeric OCLC Number in the 001 field. Do not include "ocm", "ocn", or "on" prefixes.

When updating records, if the record being updated is an OCLC Number that has been merged, then the web service will return an error.

When updating records, the records must include the 005 field. The value of this field must match the value current record in WorldCat.

Validate Operations

Grandfathered records are records with validation errors which have been added to WorldCat using batch and other services that enforce lower levels of validation requirements. If a record already has errors associated with it when such a is updated and replaced, those existing errors do not have to be fixed in the record. Only errors introduce when updating the record to be replaced have to be fixed.

Validate Full

Perform full validation, without applying edit or replace rules. This validation does NOT ignore grandfathered errors.

Validate for Add

Perform full validate and apply edit validation rules

Validate for Replace

Perform full validation, apply edit and replace rules, but ignore grandfathered errors.