Custom software, inspection systems & websites — Perth since 2002

Need to connect OCLC WorldShare to another system? This page is for teams trying to sync patron or user records between OCLC and a CRM, student system, membership platform, or other internal workflow without creating a messy one-off integration.
Discuss an OCLC Integration See Inherited System Support

If you are trying to connect to the OCLC WorldShare API, the good news is that this is usually much simpler than people fear. In most cases, the job is not building giant middleware. The job is getting a clean authenticated bridge in place so your source system can create, update, read, and sometimes delete user records in WorldShare safely.

That means a practical OCLC WorldShare integration is often really a patron sync or identity sync problem. A library may need to connect OCLC to a student system, a membership platform, a college CRM, or an open-source tool such as CiviCRM. The hard part is rarely “can I hit the endpoint”. The hard part is making the data move cleanly enough that staff do not end up fixing duplicates and broken updates by hand.

This page is written to do two things at once:

What an OCLC WorldShare API integration usually needs to do

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

The auth endpoint is the OCLC OAuth token service, and the API endpoint follows the tenant-specific WorldShare SCIM pattern under share.worldcat.org/idaas/scim/v2/.

First clarification: this is REST, not an old SOAP integration

Some people come to OCLC expecting WSDL files, XML envelopes, and awkward SOAP client setup. For the WorldShare user-management style workflows, the shape is much closer to a modern web integration:

That is helpful because it means the main challenge is not exotic protocol work. It is disciplined integration work: credentials, payload shape, field mapping, lifecycle handling, and safe operational support.

The simple connection flow

If you want the shortest practical summary of how to connect to OCLC WorldShare, it looks like this:

1. Your system decides a user needs to be created or updated.
2. Your bridge requests an OAuth access token from OCLC.
3. Your bridge sends a SCIM user payload to the WorldShare Users endpoint.
4. OCLC returns the created or updated record with OCLC-side identifiers.
5. Your system stores the correlation between its own record ID and the OCLC-side ID.
6. Later changes reuse that mapping for updates instead of guessing or creating duplicates.

That is the essence of it. Most of the real work sits inside steps 3 to 6.

A better architecture than wiring OCLC calls straight into your app

If you are building this for a real organisation, the safest pattern is usually not “sprinkle OCLC API calls around the application”. It is better to put a small bridge layer between your source system and WorldShare.

CRM / Student System / Membership Platform
                  |
                  v
        Small internal OCLC bridge
        - token handling
        - payload shaping
        - field mapping
        - correlation IDs
        - logging / retries
                  |
                  v
      OCLC WorldShare SCIM Users API

That bridge does not need to be enormous. In fact, smaller is usually better. The point is to keep OCLC-specific logic in one place so the rest of your application talks to your clean interface, not directly to vendor-specific request code spread across random controllers or scripts.

The practical tutorial

1. Get the credentials, scope, and tenant URL right first

Before anything else, make sure you have:

If these are half-configured, the rest of the project becomes confusing fast. A surprising number of integration delays are not coding problems at all. They are scope or environment problems.

2. Request the bearer token with HTTP basic auth

A typical token request uses base64-encoded client_id:client_secret in the Authorization: Basic ... header, then posts form data with grant_type=client_credentials and the required scope.

$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 get and reuse that token reliably, you are through the first real gate.

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

From there, the main practical pattern is straightforward CRUD over the SCIM users endpoint:

That means you can design and test the integration like a normal resource-oriented service rather than treating it like magical vendor plumbing.

4. Build the user payload with the right OCLC persona schemas

This is where many OCLC WorldShare integration attempts stall. The body is not just a tiny generic user object. A real request normally includes the core SCIM user schema plus OCLC persona extensions for the workflow you are supporting.

Practically, your payload often needs to contain:

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

5. Keep a correlation ID from your own source system

This is one of the most important design choices. Do not let OCLC become the only place you can recognise a user. Your CRM, student system, membership platform, or internal workflow should keep its own durable identifier and map that to the OCLC-side identity returned by WorldShare.

That correlation layer is what keeps later updates, reconciliation, and recovery from getting ugly.

6. Prove the full lifecycle in a small test harness

Before burying the integration inside a bigger production workflow, prove the entire lifecycle in a tiny script or harness:

This sounds obvious, but it is one of the fastest ways to avoid a lot of later confusion. A tiny repeatable harness gives you a safe place to debug scope issues, schema issues, and mapping problems before business users are involved.

A worked example of the flow

Imagine a college library wants its CRM or membership system to create a patron record in OCLC when a person becomes eligible.

  1. The source system decides a person is ready for library access.
  2. Your bridge requests a token from the OCLC OAuth endpoint.
  3. Your bridge builds the SCIM payload with the correct OCLC persona schema blocks.
  4. The bridge posts that payload to the WorldShare Users endpoint.
  5. OCLC returns the created record, including OCLC-side identifiers.
  6. Your bridge stores the mapping between the source-system ID and the OCLC-side ID.
  7. When the person later changes email, branch, or status, the bridge updates the existing OCLC record rather than creating another one.

That is the basic commercial value of the integration. Staff stop rekeying users by hand. Record drift reduces. The workflow becomes calmer and more supportable.

Where OCLC integration projects usually get stuck

That is often where outside help becomes worthwhile. Not because the HTTP request itself is impossible, but because the surrounding integration architecture determines whether the result feels dependable six months later.

Who this page is for

This is usually a good fit if you are one of these:

What I can help with

Need help connecting to OCLC WorldShare?

Send the current system, what needs to sync, whether the problem is create/update/reconciliation, and where the workflow is breaking today. A rough brief is enough.

Discuss the OCLC integration See inherited software takeover support

Final takeaway

If your goal is simply to “connect to OCLC”, the simplest correct mental model is: authenticate cleanly, send the right SCIM payloads, keep a stable correlation ID, and hide the vendor-specific details behind a small supportable bridge.

That is how you turn an OCLC WorldShare API integration from a fragile technical experiment into something staff can actually rely on.

Need the next step, not another generic read?

Discuss a software bottleneck · Book an IHTMaps workflow review · Request a website quote

Best fit for inherited systems, spreadsheet-heavy workflows, internal tools, inspection processes, and websites that need better enquiry flow or calmer technical ownership.

Call 0432 000 583 if you want to talk through the current bottleneck directly.

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