V · 36

OpenURL Parser

Paste an OpenURL and see it decoded, entity by entity. Everything runs in your browser; nothing is sent to the network.

The parser accepts OpenURL 1.0 (Z39.88-2004), the older 0.1 syntax and hybrids of the two. Paste a full URL, a bare query string, a COinS title value, or a “Context object: ctx_ver=Z39.88-2004&…” string from a catalogue. Pretty-printed input with one pair per line also works. The parser URL-decodes each value, groups keys by transport, administrative data and Entity, names the metadata format, unpacks By-Value url_ctx_val content, and builds a readable citation.

Input

Output

Awaiting input.

How it works

  • Removes a leading “Context object:” label and line breaks, and turns & into &. If the input starts with scheme://, splits off the base URL at the first ?; otherwise the whole input is treated as a query string.
  • Splits the query string on & before decoding (so an encoded %26 inside a value is safe), then each pair on the first =.
  • URL-decodes both keys and values, replacing + with space.
  • Groups keys into transport (url_), administrative (ctx_), the six Entities (rft, rfe, req, svc, res, rfr) and other keys (0.1-style or foreign). Repeated keys such as rft.au are all kept.
  • Detects the version: url_ver, ctx_ver or any Entity-prefixed key means 1.0; only 0.1 keys means 0.1; both means a hybrid.
  • Names the metadata format (journal, book, dissertation, patent, sch_svc, Dublin Core and the XML formats), links DOIs and PubMed IDs, and assembles a one-line citation.

Privacy

The parser is implemented entirely in client-side JavaScript inlined in this page. No request is made to any server, and no input is stored. You can verify this in your browser's developer tools.