Talking to OCLC WorldShare is less mysterious than many people expect. It is not necessarily a giant middleware project, and it does not need to start as a sprawling enterprise integration. In many cases, what you really need is a disciplined service that can authenticate properly, send the right SCIM payloads, and keep your business system and OCLC in sync without manual rekeying.

One real-world version of this problem was integrating a college library workflow with an open-source CRM, most likely CiviCRM or something close to it. That is a good example of why this work matters. The problem is usually not “can I hit an API endpoint”. The problem is “can I keep patron or identity data moving cleanly between two systems that were not designed together, without creating duplicate records, broken updates, or manual admin overhead”.

If you need help with that kind of work, this is exactly the sort of integration I can help design, stabilise, modernise, or build around your existing CRM, library workflow, or internal system.

What a practical OCLC WorldShare integration is actually doing

At a practical level, a clean OCLC WorldShare integration usually needs to do a few simple things well:

The auth endpoint is the OCLC OAuth token service, and the API endpoint follows the WorldShare tenant pattern: your institution-specific share.worldcat.org/idaas/scim/v2/ base URL.

First important clarification: this is REST, not SOAP

If you are searching for OCLC integrations, you may be expecting WSDL files, XML envelopes, and classic SOAP client tooling. For WorldShare API work, the pattern is HTTP, JSON, OAuth, and SCIM-style resources. That is good news. It means the shape is much closer to modern web integration work than to old-school SOAP plumbing.

So the mental model should be: authenticate, get token, send JSON payloads to resource endpoints, handle responses cleanly.

The practical tutorial

1. Get the credentials and scopes sorted first

A common pattern here is OAuth client credentials. That means you need:

For this pattern, the scopes were things like read, create, update, and delete user access through the SCIM API. Get that right first. If scopes are wrong, everything downstream gets confusing fast.

2. Request the bearer token with HTTP basic auth

The token request is built by base64-encoding client_id:client_secret into the Authorization: Basic ... header, then posting form data with:

That gives you the access token used for every later API call.

$headers = [
  'Authorization: Basic ' . base64_encode($clientId . ':' . $clientSecret),
  'Content-Type: application/x-www-form-urlencoded'
];

$body = http_build_query([
  'grant_type' => 'client_credentials',
  'scope' => $scope
]);

If you can reliably get and reuse that token, you are through the first real gate.

3. Treat the SCIM Users endpoint as the core integration surface

From there, you talk to the Users resource under the WorldShare SCIM base URL. That gives you a clean CRUD model:

That is a much saner shape than many people expect from library software integrations.

4. Build the payload with the right OCLC schema blocks

This is the bit that catches people. The request body is not just a tiny generic user record. A real implementation usually includes the core SCIM user schema plus OCLC-specific persona extensions for things like institution, circulation info, and ILL info.

Practically, that means your payload usually needs to include:

A practical create-user payload usually includes a barcode, institution ID, branch ID, and the OCLC persona namespaces needed for WorldShare to accept and enrich the record.

5. Use a correlation identifier from your source system

One of the smartest parts of a good integration is that it does not pretend OCLC is your source of truth for everything. The returned data can include correlation information tying the record back to the originating system.

That is how these integrations should be built. Your CRM, membership system, student system, or internal workflow should keep its own durable identifier, and your bridge should map that to the OCLC-side identity. Otherwise later updates become fragile.

6. Prove the full lifecycle with a test harness

A good integration should include a small test script or harness that:

This is the right way to approach OCLC work. Do not start by burying API calls inside a giant production workflow. Start by proving the integration lifecycle in a tiny testable script. Once that works, wrap it into the system that actually needs it.

A better architecture than “sprinkle OCLC calls everywhere”

If I were building this again now for a production business system, I would still keep the same basic pattern, but I would make one architectural choice more explicit: put OCLC behind a small internal service boundary.

That internal bridge or proxy should be responsible for:

Then your application talks to your clean interface, not directly to OCLC from random controller actions or UI code. That makes later changes much less painful.

Where projects usually get stuck

That is usually where I come in: not just writing the request code, but helping shape the integration so it is supportable by a real organisation after go-live.

What I can help with

If your organisation needs to talk to OCLC or WorldShare, I can help with:

This is a good fit when the hard part is not just “how do I call an endpoint”, but “how do I make this integration dependable enough that staff can trust it”.

Need help with an OCLC or WorldShare integration?

Send the current system, what needs to sync, which OCLC records are involved, and where the current bottleneck sits. A rough brief is enough.

Discuss the OCLC integration See inherited software takeover support

Final takeaway

A lot of valuable integration work is not glamorous. It is careful credential handling, clear payloads, repeatable CRUD tests, and enough structure that the business stops depending on luck.

That is also why this kind of work is commercially useful. If you can make a library platform, CRM, or internal system talk cleanly to OCLC, you remove manual admin, reduce record drift, and make the surrounding workflow calmer. That is worth more than the API wrapper itself.

Request a quote or call 0432 000 583 to discuss your website, app, database, or custom software project.

E-business card (QR ready) for conferences and in-person shares. · Site map

Copyright © 2026 Industrial Hypertext - Software Development Perth, Western Australia | All rights reserved