Sometimes even the most stable web services and elegant code decide to act up. The Developer Network team is happy to lend a hand to help get your project back on track. You can reach us through our Contact form, or shoot us an email at devnet[AT]

How to help us help you

A little bit of information can really help speed up our troubleshooting so that we can get you an answer more quickly. If you don't have these details at hand, or aren't quite sure what it is we're talking about, send us what you can and we'll walk you through the rest.

Describe your project or goal

Are you building a table or a lamp? Tell us as much as you can about what you're trying to do:  

  • I want to create a new Purchase Order with the Acquisitions web service
  • I want to search WorldCat Search API for books about Chinese cooking held by University of Wisconsin Madison
  • I want to use the WorldCat Metadata API to set holdings on OCLC Number 319501305 for institution ID - 128807

Authentication or WSKey problems

It's best if you can send us your WSKey string. Be sure to keep your secret a secret - we really just need the key string. We can always look up your WSKey if you provide your:

  • username
  • the institution affiliation (if there is one)
  • associated service(s)

Request problems

Send us the HTTP request including all the headers and body information, e.g,:

GET /bib/data/319501305?holdingLibraryCode=MAIN&classificationScheme=LibraryOfCongress&
instSymbol=OCPSB&principalID=12345&principalIDNS=urn%3Aoclc%3Awms%3Ada HTTP/1.1
User-Agent: Platform PHP Test Client
Accept: application/atom+xml;content="application/vnd.oclc.marc21+xml" 

We'd also like to see the HTTP response your received, including the HTTP status code,  message, and body of the response, e.g.,:

HTTP/1.1 403 Forbidden
Content-type: application/xml;charset=UTF-8
Content-length: 227
Date: Tue, 04 Jun 2013 15:01:24 GMT

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<error xmlns="">
    <message>User forbidden</message>
    <detail>PrincipalID and/or PrincipalIDNS is invalid</detail>

Include these additional details where you can:

  • The WSKey you are using
  • User you performed the action as, preferrably in the form of the username
  • Date and time the request was sent
  • IP address the request was sent from
  • User-Agent your client identifies itself as (tip: consider sending a User-Agent if you aren't already - it will make your requests easier to find and debug)

Your code

This is optional, but it can really be helpful for us to see your code. Your best bets are posting it to GitHub as a GIST ( or directing us to a code repository on GitHub. This will make it simple for us to do a quick review. While we aren’t experts in every language we do have experience working with several (PHP, Ruby, Java, Javascript) and seeing your code may help us debug the problem with you.

How to help yourself

We have reason to believe some of you are DIY-ers who might just want to check some things on your own. Here are some ideas to get you started.

Utilize handy resources

Check for common errors

HTTP 401: Application Authentication Errors

These are the types of errors that occur when your WSKey fails to authenticate appropriately. There are several possible causes:

  • Invalid WSKey
  • WSKey is not permitted to use the service you are making requests to
  • Invalid Signature when authenticating using HMAC Pattern
  • Invalid Token when authenticating using Access Tokens

HTTP 403: User Authentication and Authorization Errors

These are the types of errors that occur when a web service requires a valid user with the appropriate roles and permissions and either:

  • the valid user identifier passed was not valid, or
  • the user whose identifier you sent does not have the appropriate roles and permissions to perform the requested action.

HTTP 405: Method Not Supported

The HTTP method you are trying to use is not supported by the web service. Not all web services support all HTTP methods. Some web services are read-only. Some objects cannot be deleted.  

HTTP 400: Invalid HTTP Body Content

  • The XML or JSON you are sending does not conform to the schema that is used by the web service. 
  • The parameters you are sending are invalid or you are missing a required parameter. You will receive an HTTP 400 status with further information on which parameters are invalid or missing.

We are a worldwide library cooperative, owned, governed and sustained by members since 1967. Our public purpose is a statement of commitment to each other—that we will work together to improve access to the information held in libraries around the globe, and find ways to reduce costs for libraries through collaboration. Learn more »