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>

<ops> – should be a text string up to 250 symbols. The only operator call or operators’ calls split┬áby comma are allowed. ONLY CALL/CALLS means no name or club name or email address etc. Nothing but the calls and commas. We use that text as guest operator indication. For example the entry VC2A(VA2WA) on the scoreboard would be a result of:

<call>VC2A</call>
<ops>VA2WA</ops>

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, FT4,DIGI

*** We accept also SSB as PH and RY as RTTY

overlay      N/A, TB-WIRES, ROOKIE, 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!