Z39.50 is the common term used for the ISO standard 23950: "Information Retrieval (Z39.50): Application Service Definition and Protocol Specification". It is a client server protocol used to search and retrieve bibliographic information from a remote database. Although used in a few other applications, it is generally used by libraries to search catalogues. Data is most often returned in MARC format, though this is not a requirement of the protocol.

Originally proposed in 1984, the standard was approved by ANSI/NISO in 1988. After being approved, the NISO committee for Z39.50 was disbanded and the Z39.50 Maintenance Agency was established at the Library of Congress. In 1990, the Z39.50 Implementers Group was created with members including vendors, universities, libraries, consultants, etc. ZIG membership is open to all parties interested in providing or accessing various types of information. The Z39.50 scope has expanded and is not limited to bibliographic records, but includes text, images, financial, news, and much more. The standard has gone through a couple of revisions since its original approval. Most recent is the 1995 specification, and there is a current push to get a 2001 specification approved.

The protocol gives specifics on procedures and formats for exchanging messages between the client and server. This enables the client to request that the server search a database and identify records which meet a specified criteria. It also allows for retrieving some, or all, of the identified records from the result set. The standard provides for the following capabilities (taken directly from the standard):

  • The client may specify an element set indicating data elements to retrieve in cases where the client does not wish to receive complete database records. For example, the client might specify "If 5 or less records are identified, transmit 'full' records; if more than 5 records are found, transmit 'brief' records".
  • The client may indicate a preferred syntax for response records, for example, USMARC.
  • The client may name a result set for subsequent reference.
  • The client may delete a named result set.
  • The server may impose access control restrictions on the client, by demanding authentication before processing a request.
  • The server may provide resource control by sending an unsolicited or solicited status report; the server may suspend processing and allow the client to indicate whether to continue

Since the standard is fairly open to interpretation and varying levels of compliance, there are a number of profiles being created which describe what features of the protocol a specific implementation supports. The Bath profile is the most well known of these.

Most people who work directly with Z39.50 software learn to hate it. The protocol is non-intuitive, and the varying levels of compliance make it difficult to rely on specific searches working on more than one server. Unfortunately, quite often circumstances outside of the server influence how well searches work. For example, a truncated title search may not work on some servers because the underlying databases are not indexed correctly.

Z39.50-1995 Specification
ISO 23950 Specification