openapi: 3.0.2 info: version: 1.0.6 title: WorldCat Entity Data Bibliographic Resources Manage Local Holdings Records API description: WorldCat Entity Data servers: - url: https://id.oclc.org/worldcat description: PROD tags: - name: Manage Local Holdings Records paths: /worldcat/manage/lhrs: post: tags: - Manage Local Holdings Records summary: Create a Local Holdings Record description: Given a Local Holdings Record, create it in WorldCat. operationId: lhr-create requestBody: description: The Local Holdings Record that will be created in WorldCat. required: true content: application/marcxml+xml: schema: $ref: '#/components/schemas/MARCXML' examples: MARCXML: $ref: '#/components/examples/lhr-marcxml-new' addSharedPrint: $ref: '#/components/examples/lhr-marcxml-shared-print' application/marc: schema: type: string examples: MARC21: $ref: '#/components/examples/lhr-marc-new' responses: '200': description: The Local Holdings Record was created successfully. content: application/marcxml+xml: schema: $ref: '#/components/schemas/MARCXML' examples: success: $ref: '#/components/examples/lhr-marcxml-existing' application/marc: examples: success: $ref: '#/components/examples/lhr-marc-existing' '400': description: Bad request. The request was unacceptable. content: application/marcxml+xml: schema: $ref: '#/components/schemas/MARCXML' examples: generic-bad-request: $ref: '#/components/examples/generic-bad-request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/403-forbidden-url' '406': $ref: '#/components/responses/406-accept-header-unacceptable' '500': $ref: '#/components/responses/500-internal-server-error' security: - worldcat_metadata_auth: - WorldCatMetadataAPI:manage_institution_lhrs /worldcat/manage/lhrs/{controlNumber}: get: tags: - Manage Local Holdings Records summary: Retrieve a Local Holdings Record description: Given an Accesion Number, retrieve the associated Local Holdings Record. operationId: lhr-read parameters: - name: controlNumber in: path description: The Control Number associated with the Local Holdings Record. required: true schema: type: integer example: 906268152 responses: '200': description: The Local Holdings Record was retrieved successfully. content: application/marcxml+xml: schema: $ref: '#/components/schemas/MARCXML' examples: success: $ref: '#/components/examples/lhr-marcxml-existing' application/marc: examples: success: $ref: '#/components/examples/lhr-marc-existing' '400': description: Bad request. The request was unacceptable. content: application/marcxml+xml: schema: $ref: '#/components/schemas/MARCXML' examples: generic-bad-request: $ref: '#/components/examples/generic-bad-request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/403-forbidden-url' '404': $ref: '#/components/responses/failed-not-found' '406': $ref: '#/components/responses/406-accept-header-unacceptable' '500': $ref: '#/components/responses/500-internal-server-error' security: - worldcat_metadata_auth: - WorldCatMetadataAPI:manage_institution_lhrs put: tags: - Manage Local Holdings Records summary: Replace a Local Holdings Record. description: Given a Control Number, find the associated Local Holdings Record and replace it. If the Control Number is not found in WorldCat, then the provided Local Holdings Record will be created. operationId: lhr-update parameters: - name: controlNumber in: path description: The Control Number associated with the Local Holdings Record. required: true schema: type: integer example: 906268152 requestBody: description: The provided Local Holdings Record that will replace the Local Holdings Record that matches the same Control Number in WorldCat. required: true content: application/marcxml+xml: schema: $ref: '#/components/schemas/MARCXML' examples: MARCXML: $ref: '#/components/examples/lhr-marcxml-existing' application/marc: schema: type: string examples: MARC21: $ref: '#/components/examples/lhr-marc-existing' responses: '200': description: The Local Holdings Record was replaced successfully. content: application/marcxml+xml: schema: $ref: '#/components/schemas/MARCXML' examples: success: $ref: '#/components/examples/lhr-marcxml-existing' application/marc: examples: success: $ref: '#/components/examples/lhr-marc-existing' '400': description: Bad request. The request was unacceptable. content: application/marcxml+xml: schema: $ref: '#/components/schemas/MARCXML' examples: generic-bad-request: $ref: '#/components/examples/generic-bad-request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/403-forbidden-url' '404': $ref: '#/components/responses/failed-not-found' '406': $ref: '#/components/responses/406-accept-header-unacceptable' '500': $ref: '#/components/responses/500-internal-server-error' security: - worldcat_metadata_auth: - WorldCatMetadataAPI:manage_institution_lhrs delete: tags: - Manage Local Holdings Records summary: Delete a Local Holdings Record description: Given a Control Number, delete a Local Holdings record. operationId: lhr-delete parameters: - name: controlNumber in: path description: The Control Number associated with the Local Holdings Record. required: true schema: type: integer example: 90626815 responses: '200': description: The Local Holdings Record was deleted successfully. content: application/marcxml+xml: schema: $ref: '#/components/schemas/MARCXML' examples: success: $ref: '#/components/examples/lhr-marcxml-existing' application/marc: examples: success: $ref: '#/components/examples/lhr-marc-existing' '400': description: Bad request. The request was unacceptable. content: application/marcxml+xml: schema: $ref: '#/components/schemas/MARCXML' examples: generic-bad-request: $ref: '#/components/examples/generic-bad-request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/403-forbidden-url' '404': $ref: '#/components/responses/failed-not-found' '406': $ref: '#/components/responses/406-accept-header-unacceptable' '500': $ref: '#/components/responses/500-internal-server-error' security: - worldcat_metadata_auth: - WorldCatMetadataAPI:manage_institution_lhrs components: examples: lhr-marc-existing: summary: LHR MARC Record value: "00260nx a2200121zi 4500001001000000004000700010005001700017007000300034008003300037852002900070876001100099538002800110\\u001E227503625\\u001E312010\\u001E20210831082208.5\\u001Ezu\\u001E1103280p 0 4001uueng0110328\\u001E \\u001FaOCPSB\\u001FbEAST\\u001FcEAST-STACKS\\u001E \\u001Fp879456\\u001E \\u001FWMAPI test update marc 1\\u001E\\u001D \n" lhr-marcxml-existing: summary: LHR MARC XML Record value: "\n 00000nx a2200000zi 4500\n 227523461\n 312010\n 20210908085741.4\n zu\n 1103280p 0 4001uueng0210908\n \n OCWMS\n EAST\n EAST-STACKS\n \n \n 879456\n \n\n" lhr-marcxml-shared-print: summary: LHR MARC XML Record with Shared Print Commitments value: "\n 00000nx a2200000zi 4500\n 312010\n zu\n 1103280p 0 4001uueng0210908\n \n committed to retain\n 20210630\n 20210630\n EAST \n http://eastlibraries.org/retained-materials<\n EAST\n pda\n NHemH\n \n \n OCWMS\n EAST\n \n\n\n" unauthorized: summary: Error returned when valid API credentials not sent or invalid value: message: Unauthorized generic-bad-request: summary: Bad Request. value: type: BAD_REQUEST title: string detail: string failed-not-found: summary: Error when resource not found value: type: NOT_FOUND title: Resource Not Found detail: The specified resource was not found at this address. lhr-marc-new: summary: LHR MARC Record value: "00209nx a2200097zi 4500004000700000007000300007008003300010852002900043876001100072538002800083\\u001E312010\\u001Ezu\\u001E1103280p 0 4001uueng0110328\\u001E \\u001FaOCPSB\\u001FbEAST\\u001FcEAST-STACKS\\u001E \\u001Fp879456\\u001E \\u001FWMAPI test create marc 1\\u001E\\u001D \n" lhr-marcxml-new: summary: LHR MARC XML Record value: "\n 00000nx a2200000zi 4500\n 312010\n zu\n 1103280p 0 4001uueng0210908\n \n OCWMS\n EAST\n EAST-STACKS\n \n \n 879456\n \n\n" schemas: MARCXML: description: see https://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd type: object xml: name: record externalDocs: description: Learn about the Marc Bibliographic Standard url: https://www.loc.gov/standards/marcxml/ Problem: type: object description: RFC 7807 description of an error. properties: type: $ref: '#/components/schemas/ProblemType' title: description: A short, human-readable summary of the problem type. type: string instance: description: A URI reference that identifies the specific occurrence of the problem. type: string format: uri detail: description: A human-readable explanation specific to this occurrence of the problem., type: string invalidParams: description: An array of validation errors. type: array items: description: The validation error descriptor. type: object properties: path: type: string name: type: string reason: type: string ProblemType: description: A URI reference [RFC3986] that identifies the problem type. type: string format: uri enum: - https://developer.api.oclc.org/errors/NOT_ACCEPTABLE - https://developer.api.oclc.org/errors/NOT_ALLOWED - https://developer.api.oclc.org/errors/INTERAL_SERVER_ERROR - https://developer.api.oclc.org/errors/BAD_REQUEST - https://developer.api.oclc.org/errors/NOT_FOUND - https://developer.api.oclc.org/errors/NOT_ELIGIBLE - https://developer.api.oclc.org/errors/MISSING_QUERY_PARAMETER - https://developer.api.oclc.org/errors/INVALID_QUERY_PARAMETERS - https://developer.api.oclc.org/errors/INVALID_QUERY_PARAMETER_VALUE - https://developer.api.oclc.org/errors/INVALID_QUERY_PARAMETER_NAME - https://developer.api.oclc.org/errors/SYNTAX_ERROR - https://developer.api.oclc.org/errors/INVALID_DOCUMENT - https://developer.api.oclc.org/errors/MISSING_ELEMENT - https://developer.api.oclc.org/errors/INVALID_ELEMENT_VALUE responses: 406-accept-header-unacceptable: description: Accept Header Media Type is not Supported. content: application/json: examples: accept-header-unacceptable: summary: Accept Header Unacceptable value: type: NOT_ACCEPTABLE title: Invalid 'Accept' header. detail: 'A request with an invalid ''Accept'' header was attempted: ....' 500-internal-server-error: description: Something went wrong (hopefully rare) - please try again. content: application/json: examples: accept-header-unacceptable: summary: Unexpected Error. value: type: INTERNAL_SERVER_ERROR title: string detail: string unauthorized: description: Unauthorized content: application/json: examples: unauthorized: $ref: '#/components/examples/unauthorized' 403-forbidden-url: description: Forbidden URL. content: application/json: examples: forbidden-url: summary: Forbidden URL value: message: '''tk_TW6fPd4fgsaA45HIYslXmeSlc1DleGlOdBCdVimq'' not a valid key=value pair (missing equal-sign) in Authorization header: ''Bearer tk_TW6fPd4fgsaA45HIYslXmeSlc1DleGlOdBCdVimq''.' failed-not-found: description: Failed operation - resource not found content: application/json: schema: $ref: '#/components/schemas/Problem' examples: failed-not-found: $ref: '#/components/examples/failed-not-found' securitySchemes: entity_data_auth: type: oauth2 flows: clientCredentials: tokenUrl: https://oauth.oclc.org/token scopes: publicEntities:read_brief_entities: read brief entity data publicEntities:read_references: read entity references authorizationCode: authorizationUrl: https://oauth.oclc.org/auth tokenUrl: https://oauth.oclc.org/token scopes: publicEntities:read_brief_entities: read brief entity data publicEntities:read_references: read entity references