A query consists of an XML block containing a header with protocol version, and operation information, and an optional data section containing the specific arguments.
A response consists of an XML block containing a header with protocol version, operation, and success information. The success value may be either true or false, and if false error information may also be included in the header. An optional data section follows, containing the result attributes.
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>login</operation>
</header>
<payload>
<authmethod>wind</authmethod>
<authtoken>nM8m234neEU23euH7TH239T</authtoken>
</payload>
</cheneyRequest>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>login</operation>
</header>
<payload>
<authmethod>oilsession</authmethod>
<authtoken>4572104563476596</authtoken>
</payload>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>login</operation>
<success>true</success>
</header>
<payload>
<username>joeuser</username>
<sessionid>4572104563476596</sessionid>
</payload>
</cheneyResponse>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>login</operation>
<success>false</success>
<error>Permission denied</error>
</header>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>gettransactiontoken</operation>
</header>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>gettransactiontoken</operation>
<success>true</success>
</header>
<payload>
<transactiontoken>9462957306720173</transactiontoken>
</payload>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>setforward</operation>
<transactiontoken>9462957306720173</transactiontoken>
</header>
<payload>
<destination>joeuser@nowhere.org</destination>
</payload>
</cheneyRequest>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>logout</operation>
</header>
<payload>
<authmethod>oilsession</authmethod>
<authtoken>4572104563476596</authtoken>
</payload>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>logout</operation>
<success>true</success>
</header>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>getforward</operation>
</header>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>getforward</operation>
<success>true</success>
</header>
<payload>
<destination>joeuser@nowhere.org</destination>
</payload>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>setforward</operation>
</header>
<payload>
<destination>joeuser@nowhere.org</destination>
</payload>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>setforward</operation>
<success>false</success>
<error>Invalid destination address</error>
</header>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>getvacation</operation>
</header>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>getvacation</operation>
<success>true</success>
</header>
<payload>
<status>true</status>
<message>From: No Body <nobody@columbia.edu>
Subject: Out of the office.
I am currently out of the office. I will return on December 5th
and will respond to your message when I return.
</message>
</payload>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>setvacation</operation>
</header>
<payload>
<status>true<status>
<message>From: No Body <nobody@columbia.edu>
Subject: Out of the office.
I am currently out of the office. I will return on December 5th
and will respond to your message when I return.
</message>
</payload>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>setvacation</operation>
<success>true</success>
</header>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>getquota</operation>
</header>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>getquota</operation>
<success>true</success>
</header>
<payload>
<quota>
<filesystem>/home1</filesystem>
<hardquota>20000000</hardquota>
<usage>4544120</usage>
</quota>
<quota>
<filesystem>/home2</filesystem>
<hardquota>20000000</hardquota>
<usage>0</usage>
</quota>
<quota>
<filesystem>/mail</filesystem>
<hardquota>10000000</hardquota>
<usage>673308</usage>
</quota>
</payload>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>mailfrom</operation>
</header>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>mailfrom</operation>
<success>true</success>
</header>
<payload>
<message>
<date>Sun Nov 3 16:02:41 2002</date>
<from>J User <juser@columbia.edu></from>
<size>1297</size>
<subject>Dinner?</subject>
</message>
</payload>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>mailfolders</operation>
</header>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>mailfolders</operation>
<success>true</success>
</header>
<payload>
<folder>
<relpath>INBOX</relpath>
<size>1045423</size>
</folder>
<folder>
<relpath>saved-mail</relpath>
<size>526098</size>
</folder>
<folder>
<relpath>sent-mail</relpath>
<size>453022</size>
</folder>
</payload>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>mailmessages</operation>
</header>
<payload>
<relpath>saved-mail</relpath>
</payload>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>mailmessages</operation>
<success>true</success>
</header>
<payload>
<message>
<date>Sun Nov 3 16:02:41 2002</date>
<from>J User <juser@columbia.edu></from>
<size>1297</size>
<spamscore>1.5</spamscore>
<subject>Dinner?</subject>
</message>
</payload>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>getmailfilters</operation>
</header>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>getmailfilters</operation>
<success>true</success>
</header>
<payload>
<filter>
<header>From</header>
<criteria>contains</criteria>
<regexp>myex@hotmail.com</regexp>
<operation>forward</operation>
<destination>news@cnn.com</destination>
</filter>
<filter>
<header>Subject</header>
<criteria>contains</criteria>
<regexp>meeting</regexp>
<operation>delete</operation>
</filter>
</payload>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>setmailfilters</operation>
<success>true</success>
</header>
<payload>
<filter>
<header>From</header>
<criteria>contains</criteria>
<regexp>myex@hotmail.com</regexp>
<operation>forward</operation>
<destination>news@cnn.com</destination>
</filter>
<filter>
<header>Subject</header>
<criteria>contains</criteria>
<regexp>meeting</regexp>
<operation>delete</operation>
</filter>
</payload>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>setmailfilters</operation>
<success>true</success>
</header>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>snapshotcandidates</operation>
</header>
<payload>
<relpath>mail/sent-mail</relpath>
</payload>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>snapshotcandidates</operation>
<success>true</success>
</header>
<payload>
<snapshot>
<id>hourly.0</id>
<date>Sun Nov 3 16:50:00 2002</date>
<size>16384</size>
</snapshot>
<snapshot>
<id>hourly.1</id>
<date>Sun Nov 3 14:50:00 2002</date>
<size>288</size>
</snapshot>
</payload>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>snapshotrestore</operation>
</header>
<payload>
<relpath>mail/sent-mail</relpath>
<id>hourly.1</id>
</payload>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>snapshotrestore</operation>
<success>true</success>
</header>
<payload>
<relpath>mail/sent-mail.restored-1</relpath>
</payload>
</cheneyResponse>
</XML>
<XML>
<cheneyRequest>
<header>
<version>2</version>
<operation>getpages</operation>
</header>
</cheneyRequest>
</XML>
<XML>
<cheneyResponse>
<header>
<version>2</version>
<operation>getpages</operation>
<success>true</success>
</header>
<payload>
<quota>100</quota>
<paid>20</paid>
<total>120</total>
</payload>
</cheneyResponse>
</XML>