XMLRPC API documentation

This is the API documentation for the Office-shots XMLRPC interface. It is automatically generated from the source code of the server using reflection, so it should always be up-to-date.


The Office-shots system consist of a central server and a large number of distributed document factories. Users upload document requests to the central server and indicate on what office suites and with what settings they want their document to be rendered. The central server then takes this request, splits it into multiple jobs and puts those jobs in a queue.

The document factories poll the central server and ask for any jobs that match their configuration. When a matching job is found, the job is locked on the server and the document is sent to the document factory. The factory processes it and uploads the result back to the central server, which displays the result to the user.

Currently the API only provides for communication between the central server and the document factories. There is no API (yet) that allows users to programmatically submit requests and retrieve results.

XMLRPC endpoint

The XMLRPC endpoint is https://officeshots.org/xmlrpc.

XMLRPC function index


Authentication is not part of the XMLRPC interface. The XMLRPC endpoint runs on an SSLv3/TLS webserver that requires client certificates for authentication. In order to use the API you will need an SSLv3/TLS client certificate signed by a trusted Certificate Authority that verifies your e-mail address. You can obtain such certificates from various Certificate Authorities such as CACert. The e-mail address on the client certificate must match the account that you registered with Office-shots. Furthermore, your account must have been granted the privilege to run a factory.

Factory registration

Before you can use the API you will need to register your factory with the Office-shots server. A factory corresponds to a single (virtual) machine that you are running. When you have registered your factory you need to add workers to it. A worker is an instance of an office suite application that runs of your factory. For every worker you need to set the version number and which output formats it supports.

An example. If you have a Linux machine and a Windows machine you would register two factories. Each factory needs to have a different name. These names do not need to be globally unique but they must be unique withing your Account. That means you can have only one factory called "Ubuntu box" but it does not matter if other people also have a factory called "Ubuntu box". You would add all the office suite applications that your Linux machine runs to that "Ubuntu box" factory, such as OpenOffice.org Writer, Calc and Impress (all version 3.0), AbiWord and Zoho Office (using Konqueror). To the Windows factory you would add e.g. MS-Word 2007 SP2 and Google Docs (using Internet Explorer 8 beta).

Once you have registered your factories you can start polling for jobs by using their name.

Notes on the development server

The development server has a few additional restrictions. The development server uses mod_gnutls instead of mod_ssl to add SSLv3/TLS support to Apache because there are multiple SSL hosts on the development server. This means that the development server has the following additional restrictions:

Note that the production version of Office-shots has no such restrictions because it runs mod_ssl instead of mod_gnutls.

Also, to aid in development of factories, the requests on the development server never expire and the job lock timeout is set to zero instead of five minutes. This ensures that there are always jobs to be processed by factories who use the development server API.