Online scoring XML specification

Here is an example of XML posting:

<?xml version="1.0"?>
<dynamicresults> 
<contest>ARRL-FIELD-DAY</contest> 
<call>VA2WA</call> 
<ops>VA2WA, VE2FK</ops> 
<soft>N1MM Logger+</soft> 
<version>1.0.7099.0</verions> 
<class power="LOW" assisted = "NON-ASSISTED" transmitter="UNLIMITED" ops="MULTI-OP" bands="ALL" mode="MIXED" overlay="N/A"></class>
<club>Contest Group du Quebec</club>
<soft>My logger</soft>
<version>4.38</version>
<qth> 
<dxcccountry>VE</dxcccountry> 
<cqzone>5</cqzone> 
<iaruzone>4</iaruzone> 
<arrlsection>QC</arrlsection> 
<stprvoth>QC</stprvoth> 
<grid6>FN36QA</grid6> 
</qth> 
<breakdown> 
<qso band="20" mode="CW">177</qso> 
<point band="20" mode="CW">290</point> 
<qso band="20" mode="PH">21</qso> 
<point band="20" mode="PH">20</point> 
<qso band="15" mode="CW">82</qso> 
<point band="15" mode="CW">136</point> 
<qso band="15" mode="PH">3</qso> 
<point band="15" mode="PH">3</point> 
<qso band="10" mode="CW">1</qso> 
<point band="10" mode="CW">2</point> 
<qso band="10" mode="PH">1</qso> 
<point band="10" mode="PH">1</point> 
<qso band="40" mode="CW">67</qso> 
<point band="40" mode="CW">100</point> 
<qso band="40" mode="PH">4</qso> 
<point band="40" mode="PH">4</point>
 <qso band="total" mode="ALL">356</qso>
 <point band="total" mode="ALL">556</point> 
</breakdown>
 <score>1112</score> 
<timestamp>2018-06-24 08:11:32</timestamp>
</dynamicresults>

another one with one multiplier:

 <?xml version="1.0"?>
<dynamicresults> 
<contest>CW-Ops</contest> 
<call>VA2WA</call> 
<ops>VA2WA</ops> 
<class power="HIGH" assisted = "ASSISTED" transmitter="ONE" ops="SINGLE-OP" bands="ALL" mode="CW" overlay="N/A">
</class> 
<club>Contest Group du Quebec</club>
<soft>My logger</soft>
<version>4.38</version>
<qth> 
 <dxcccountry>K</dxcccountry> 
 <cqzone>5</cqzone> 
 <iaruzone>4</iaruzone>
 <arrlsection>EPA</arrlsection> 
 <stprvoth>PA</stprvoth> 
<grid6>FN36QA</grid6> </qth> 
<breakdown> 
<qso band="20" mode="CW">77</qso> 
<mult band="20" mode="CW" type="state">72</mult> 
<point band="20" mode="CW">77</point> 
<qso band="15" mode="CW">16</qso> 
<mult band="15" mode="CW" type="state">16</mult> 
<point band="15" mode="CW">16</point> 
<qso band="40" mode="CW">39</qso> 
<mult band="40" mode="CW" type="state">29</mult> 
<point band="40" mode="CW">39</point> 
<qso band="total" mode="ALL">132</qso> 
<mult band="total" mode="ALL" type="state">117</mult> 
<point band="total" mode="ALL">132</point> 
</breakdown> <score>15444</score> 
<timestamp>2018-06-20 19:58:31</timestamp>
</dynamicresults> 

with two multipliers:

<?xml version="1.0"?>
<dynamicresults>
 <contest>CQ-WW-SSB</contest>
 <call>VA2WA</call>
 <ops>VA2WA</ops>
 <class power="HIGH" assisted = "NON-ASSISTED" transmitter="ONE" ops="SINGLE-OP"   bands="ALL" mode="SSB" overlay="N/A"></class> 
<club>Contest Group du Quebec</club>
<soft>My logger</soft>
<version>4.38</version>
<qth> 
  <dxcccountry>K</dxcccountry> 
  <cqzone>3</cqzone> 
  <iaruzone>6</iaruzone> 
  <arrlsection>WWA</arrlsection> 
  <stprvoth>WA</stprvoth> 
  <grid4>CN88</grid4> 
</qth> 
<breakdown> 
 <qso band="160" mode="PH">28</qso> 
 <mult band="160" mode="PH" type="zone">9</mult> 
 <mult band="160" mode="PH" type="country">8</mult> 
 <point band="160" mode="PH">45</point> 
 <qso band="20" mode="PH">1413</qso> 
 <mult band="20" mode="PH" type="zone">36</mult> 
 <mult band="20" mode="PH" type="country">118</mult> 
 <point band="20" mode="PH">3632</point> 
 <qso band="15" mode="PH">180</qso> 
 <mult band="15" mode="PH" type="zone">18</mult> 
 <mult band="15" mode="PH" type="country">40</mult> 
 <point band="15" mode="PH">408</point> 
 <qso band="10" mode="PH">2</qso> 
 <mult band="10" mode="PH" type="zone">1</mult> 
 <mult band="10" mode="PH" type="country">2</mult> 
 <point band="10" mode="PH">2</point> 
 <qso band="80" mode="PH">109</qso> 
 <mult band="80" mode="PH" type="zone">19</mult> 
 <mult band="80" mode="PH" type="country">33</mult> 
 <point band="80" mode="PH">215</point> 
 <qso band="40" mode="PH">669</qso> 
 <mult band="40" mode="PH" type="zone">29</mult> 
 <mult band="40" mode="PH" type="country">71</mult> 
 <point band="40" mode="PH">1626</point> 
 <qso band="total" mode="ALL">2401</qso> 
 <mult band="total" mode="ALL" type="zone">112</mult> 
 <mult band="total" mode="ALL" type="country">272</mult> 
 <point band="total" mode="ALL">5928</point> 
 </breakdown> 
 <score>2276352</score> 
 <timestamp>2018-10-29 13:19:47</timestamp>
</dynamicresults>


and a short one without bands breakdown:

<?xml version="1.0"?>
<dynamicresults> 
 <contest>CQ-WW-SSB</contest> 
 <call>VA2WA</call> <ops>NR9Q</ops> 
 <class power="HIGH" assisted = "ASSISTED" transmitter="ONE" ops="SINGLE-OP" bands="ALL" mode="SSB" overlay="N/A"></class>
<club>Contest Group du Quebec</club>
<soft>My logger</soft>
<version>4.38</version>
<qth> 
 <dxcccountry>K</dxcccountry> 
 <cqzone>4</cqzone> 
 <iaruzone>8</iaruzone> 
 <arrlsection>IL</arrlsection> 
 <stprvoth>IL</stprvoth> 
 <grid6>EN40IC</grid6> 
</qth> 
<breakdown> 
<qso band="total" mode="ALL">20</qso> 
<mult band="total" mode="ALL" type="zone">13</mult> 
<mult band="total" mode="ALL" type="country">17</mult> 
<point band="total" mode="ALL">49</point> 
</breakdown> <score>1470</score> 
<timestamp>2018-10-29 13:20:27</timestamp>
</dynamicresults>

The elements properties values are pre-defined:


<class power="LOW" assisted = "NON-ASSISTED" transmitter="UNLIMITED" ops="MULTI-OP" bands="ALL" mode="MIXED" overlay="N/A"></class>  

power        LOW, HIGH, QRP

assisted    NON-ASSISTED, ASSISTED

transmitter  UNLIMITED, TWO, ONE

ops            MULTI-OP, SINGLE-OP  **

bands ALL, 160M, 80M, 40M, 20M, 15M, 10M, 6M, 2M, 1.25M, 0.70M, 0.33M, 0.23M, 0.13M, 009M, 0.05M, 0.03M etc.

mode          MIXED, CW, PH, RTTY, PSK, FT8, DIGI

overlay      N/A, TB-WIRES, ROCKY, CLASSIC, WIRE-ONLY


** some loggers provide different operators category coding:


ops             = SINGLE-OP, MULTI-ONE, MULTI-TWO, MULTI-MULTI


If so way the transmitter could be TWO or ONE makes sense only for SINGLE-OP to declare SO2R or SO1R.

  1. It’s important to have summary at the end:
<qso band="total" mode="ALL">20</qso> 
<mult band="total" mode="ALL" type="zone">13</mult>
<mult band="total" mode="ALL" type="country">17</mult>
<point band="total" mode="ALL">49</point>

The multiplier summary should be provided once per every mult in a contest respectively.

There is a list of mult IDs recognized by online scoring servers. So you have to pick one from the list:

zone
country
state
gridsquare
wpxprefix
prefix
hq

** they should be in only lowercase.

2. Contest id and multipliers attributes :  https://contestonlinescore.com/settings/. It’s based on N1MM Cabrillo Contest ID list.


3. XML post should be sent with Basic HTTP Authentication providing a callsign as a username and a password


4. Our posting gateway URL: https://contestonlinescore.com/post/

5. The score posting output is provided over HTML in json:

 {"status":200,"status_message":"OK-Full"}  

if it has been successfully accepted

or

{“status”:404,”status_message”:”Error! Contest is closed or is not valid”}
{“status”:405,”status_message”:”Error! Empty call”}

if a posting has not been not accepted.

Please contact us in case if you are a logging software developer. We’ll be happy to assist you.

73!