SOAPjr is a protocol specification for exchanging structured information in the implementation of web services in computer networks. It is a hybrid of SOAP and JSON-RPC (abbreviated as “jr” in this case).
Traditional SOAP is no longer the Simple Object Access Protocol it was initially designed to be. It can be bloated and overly verbose, making it bandwidth-hungry and slow. It is also based on XML, making it expensive to parse and manipulate  – especially on mobile or embedded clients. However, its core envelope/head/body design pattern is useful for Ajax style APIs.
SOAPjr uses a similar Envelope/Head/Body model, using lightweight and easier to manipulate JSON.
In contrast to SOAP, JSON-RPC is overly simplistic and basically tunnels HTTP GET-style key/value pairs within a query string using JSON. However, within JSON-RPC there is no head/body separation, leaving metadata to pollute the main data space.
SOAPjr combines the best of these two concepts and is designed to create modern Ajax APIs that can easily be used by mobile devices, embedded systems or desktop browsers.
See SOAPjr Specs for a more detailed description.
SOAPjr is an Open Source project with software released under the GPL and content under Creative Commons.
The following SOAPjr entities are defined as JSON-Schemas.
The latest versions can also be downloaded in a single file.