THIS IS A DEMONSTRATION DOCUMENT, NOT THE REAL ADIF DOCUMENT

ADIF

(version 2.1.8, updated 2006-08-18 by AA6YQ)

Table of Contents

Physical Specifications

Each data field is preceded by a field name and length enclosed in angle brackets. The name and length are separated by a colon. The field name may be in upper, lower, or mixed case. Case is insignificant. For instance, CALL, Call, or call are equivalent. The length specification is ASCII text in display format, and may be of any non-negative value. The data follows the closing angle bracket. For example:

<CALL:6>WN4AZY

Records are made up of multiple fields and terminated with <EOR> or <eor> as an end-of-record marker. For example:

<call:6>WN4AZY<band:3>20M<mode:4>RTTY<qso_date:8>19960513<time_on:4>1305<eor>

An optional data type indicator may follow the field length, separated by a colon: For example:

<qso_date:8:d>19960513

or

<APP_MONOLOG_BIRTHDAY:8:d>19470726

Data type indicators are defined for each ADIF data type. The data type indicator may be in upper, lower, or mixed case. Data type indicators are redundant for ADIF-defined fields such as qso_date above, but are useful in application-defined fields as a hint for applications attempting to import such fields. 

Any number of characters of any value except < may be added after a fieldÂ's data or <eor> and before the start of the next field. This is typically carriage returns and/or linefeeds to make the file easier to read in a text viewer. For example:

<call:6>WN4AZY<band:3>20M<mode:4>RTTY
<qso_date:8:d>19960513<time_on:4>1305<eor>

<call:5>N6MRQ<band:2>2M<mode:2>FM
<qso_date:8:d>19961231<time_on:6>235959<eor>

In this example, a newline is inserted in the middle of each record, and two newlines are inserted at the end of each record. This makes long records easy to read in a text editor.

Optional header information may be included before the actual data in the file. To include optional header info, the first character of the file must be something other than <. Any amount of header info of any value except <eoh> may be included. The header info must be terminated with <eoh>. Any number of characters of any value except < may follow <eoh>. The first < after <eoh> is the start of the first field of the first data record in the file. Here is an example:

this data was exported using WF1B RTTY version 9, conforming to ADIF standard specification version 9.99<eoh>

<call:4>aa1a...

If the first character of a file is <, it is presumed to be the first field of the first data record.

The ADIF version may be included in the header info as follows: <adif_ver:4>1.00 is included as part of the header specification, an importing program can easily determine the ADIF version used to create the file. Note that this must not be at the beginning of the header info, because < as the first character indicates that there is no header.

It is important for the programmer importing ADIF data to note that any number of characters of any value may follow the actual data in a field. For example, carriage return/linefeed, or just a line feed. There is nothing in the specifications to prevent an exporter from placing a comment after the actual data. Therefore, after reading a fieldÂ's data based on the length specification, the programmer should read and discard characters until the start of a new field (<) or <eor> is encountered.

There is no specification for the order in which fields appear. They may appear in any order. Unused fields may be omitted entirely. Therefore, each record will not necessarily have the same fields. The specification does not prohibit a zero-length field, so those writing import programs should allow for this.

There is no specification for field length or maximum field length in the Physical Specifications. Unless there is a length specification in the Field Definition, exporters simply export all data in their field. Importers import as much data as their program can accept.

Note that while these examples have all been of simple ASCII fields, the specification permits data of any type or length. It could be easily used to transfer pictures or text documents, for instance.

Data Types

Data Type

Data Type Indicator

Description (all numbers are radix 10)

Boolean B
  • if True, the single ASCII character Y
  • if False, the single ASCII character N
Digit N an ASCII character whose code lies in the range of 48 through 57, inclusive
Number N a sequence of Digits optionally preceded by a minus sign (ASCII  code 45) and optionally including a single decimal point  (ASCII  code 46)
Character S an ASCII character whose code lies in the range of 32 through 126, inclusive
Date D 8 Digits representing a UTC date in YYYYMMDD format, where
  • YYYY is a 4-Digit year specifier, where 1930 <= YYYY 

  • MM is a 2-Digit month specifier, where 1 <= MM <= 12 [use leading zeroes]

  • DD is a 2-Digit day specifier, where 1 <= DD <= DaysInMonth(MM)  [use leading zeroes]

Time T 6 Digits representing a UTC time in HHMMSS format or 4 Digits representing a time in HHMM format, where
  • HH is a 2-Digit hour specifier, where 0 <= HH <= 23  [use leading zeroes]

  • MM is a 2-Digit minute specifier, where 0 <= MM <= 59  [use leading zeroes]

  • SS is a 2-Digit second specifier, where 0 <= SS <= 59   [use leading zeroes]

String S a sequence of Characters
MultilineString M a sequence of Characters and line-breaks, where a line break is an ASCII CR (code 13) followed immediately by an ASCII LF (code 10)
Enumeration (not applicable) an explicit list of legal values set forth in set notation, e.g. {A, B, C, D}, or defined in a table
Location L a sequence of characters representing a latitude or longitude in XDDD MM.MMM format, where
  • X is a directional Character from the set {E, W, N, S}

  • DDD is a 3-Digit degrees specifier, where 0 <= DDD <= 180 [use leading zeroes]

  • MM.MMM is a 6-Digit minutes specifier, where 0 <= MM.MMM <= 59.999  [use leading zeroes]

Fields

Name Data Type Enumeration Header Only Description
ADDRESS MultilineString     the contacted station's mailing address 
ADIF_VER String   yes identifies the version of the ADIF used in this file
AGE Number     the contacted station's operator's age in years
A_INDEX Number     the geomagnetic A index at the time of the QSO
ANT_AZ Number     the logging station's antenna azimuth, in degrees
ANT_EL Number     the logging station's antenna elevation, in degrees
ANT_PATH Enumeration Ant Path   the signal path
ARRL_SECT Enumeration ARRL Section   the contacted station's ARRL section
BAND Enumeration Band   QSO Band
BAND_RX Enumeration Band   in a split frequency QSO, the logging station's receiving band
CALL  String     the contacted station's Callsign
CHECK String     contest check (e.g. for ARRL Sweepstakes)
CLASS String     contest class (e.g. for ARRL Field Day)
CNTY Enumeration function of STATE   the contacted station's Secondary Administrative Subdivision of contacted station (e.g. US county, JA Gun), in the specified format
COMMENT String     comment field for QSO
CONT Enumeration {NA, SA, EU, AF, OC, AS, AN}   the contacted station's Continent
CONTACTED_OP String     the callsign of the individual operating the contacted station
CONTEST_ID String Contest ID   QSO Contest Identifier
  • use enumeration values for interoperability
COUNTRY Enumeration Country   the contacted station's DXCC entity name
CQZ Number     the contacted station's CQ Zone
DISTANCE Number     the distance between the logging station and the contacted station in kilometers
DXCC Number     the contacted station's Country Code
EMAIL String     the contacted station's email address
EQ_CALL String     the contacted station's owner's callsign
FORCE_INIT Boolean     new EME "initial"
FREQ Number     QSO frequency in Megahertz
FREQ_RX Number     in a split frequency QSO, the logging station's receiving frequency in Megahertz
GRIDSQUARE String     the contacted station's Maidenhead Grid Square
GUEST_OP String     deprecated: use OPERATOR instead
IOTA String    

the contacted station's IOTA designator, in format CC-XXX, where

  • CC is the continent designator {NA, SA, EU , AF, OC, AS, AN}

  • XXX is the island designator, where 0 <= XXX ,<= 999 [use leading zeroes]

ITUZ String     the contacted station's ITU zone
K_INDEX Number     the geomagnetic K index at the time of the QSO
LAT Location     the contacted station's latitude
LON Location     the contacted station's longitude
MAX_BURSTS Number     maximum length of meteor scatter bursts heard by the logging station, in seconds
MODE  Enumeration Mode   QSO Mode
MS_SHOWER String     For Meteor Scatter QSOs, the name of the meteor shower in progress
MY_CITY String     the logging station's city
MY_CNTY Enumeration function of MY_STATE   the logging station's Secondary Administrative Subdivision  (e.g. US county, JA Gun) , in the specified format
MY_COUNTRY Enumeration Country   the logging station's DXCC entity name
MY_CQ_ZONE Number     the logging station's CQ Zone
MY_GRIDSQUARE String     the logging station's Maidenhead Grid Square
MY_IOTA String     the logging station's IOTA designator, in format CC-XXX, where
  • CC is the continent designator {NA, SA, EU , AF, OC, AS, AN}

  • XXX is the island designator, where 0 <= XXX ,<= 999  [use leading zeroes]

MY_ITU_ZONE Number     the logging station's ITU zone
MY_LAT Location     the logging station's latitude
MY_LON Location     the logging station's longitude
MY_NAME String     the logging operator's name
MY_POSTAL_CODE String     the logging station's postal code
MY_RIG String     description of the logging station's equipment
MY_SIG String     special interest activity or event
MY_SIG_INFO String     special interest activity or event information
MY_STATE Enumeration function of MY_COUNTRY   the code for the logging station's Primary Administrative Subdivision (e.g. US State, JA Island, VE Province)
MY_STREET String     the logging station's street
NAME String     the contacted station's operator's name
NOTES MultilineString     QSO notes
NR_BURSTS Number     the number of meteor scatter bursts heard by the logging station
NR_PINGS Number     the number of meteor scatter pings heard by the logging station
OPERATOR String    

the logging operator's callsign 

  • if STATION_CALLSIGN is absent, OPERATOR shall be treated as both the logging station's callsign and the logging operator's callsign

OWNER_CALLSIGN String     the callsign of the owner of the station used to log the contact (the
callsign of the OPERATOR's host)
PFX String     the contacted station's WPX prefix
PRECEDENCE String     contest precedence (e.g. for ARRL Sweepstakes)
PROGRAMID String   yes identifies the name of the logger, converter, or utility that created or processed this ADIF file
PROGRAMVERSION String   yes identifies the version of the logger, converter, or utility that created or processed this ADIF file
PROP_MODE Enumeration Propagation   QSO propagation mode
PUBLIC_KEY String     public encryption key
QSLMSG MultilineString     QSL card message
QSLRDATE Date     QSL received date
QSLSDATE Date     QSL sent date
QSL_RCVD Enumeration {Y, N, R, I}   QSL received status
  • Y - yes

  • N - no

  • R - requested

  • I - ignore or invalid

QSL_RCVD_VIA Enumeration {B, D, E}   means by which the QSL was received by the logging station
  • B - bureau

  • D - direct

  • E - electronic

QSL_SENT Enumeration {Y, N, R, Q, I}   QSL sent status 
  • Y - yes

  • N - no

  • R - requested

  • Q - queued

  • I - ignore or invalid

QSL_SENT_VIA Enumeration {B, D, E}   means by which the QSL was sent by the logging station
  • B - bureau

  • D - direct

  • E - electronic

QSL_VIA String     the contacted station's QSL route
QSO_COMPLETE Enumeration {Y, N, NIL, ?}   indicates whether the QSO was complete from the perspective of the logging station
  • Y - yes

  • N - no

  • NIL - not heard

  • ? - uncertain

QSO_DATE  Date     QSO date
QSO_RANDOM Boolean     indicates whether the QSO was random or scheduled
QTH String     the contacted station's city
RIG MultilineString     description of the contacted station's equipment
RST_RCVD String     signal report from the contacted station
RST_SENT String     signal report sent to the contacted station
RX_PWR Number     the contacted station's transmitter power in watts
SAT_MODE Enumeration     satellite mode
SAT_NAME String     name of satellite
SFI Number     the solar flux at the time of the QSO
SIG String     the name of the contacted station's special activity or interest group
SIG_INFO String     information associated with the contacted station's activity or interest group
SRX Number     contest QSO received serial number
SRX_STRING String     contest QSO received information
  • use Cabrillo format to convey contest information for which ADIF fields are not specified
  • in the event of a conflict between information in a dedicated contest field and this field, information in the dedicated contest field shall prevail
STATE Enumeration function of Country Code   the code for the contacted station's Primary Administrative Subdivision (e.g. US State, JA Island, VE Province)
STATION_CALLSIGN String     the logging station's callsign (the callsign used over the air)
  • if STATION_CALLSIGN is absent, OPERATOR shall be treated as both the logging station's callsign and the logging operator's callsign

STX Number     contest QSO transmitted serial number
STX_STRING String     contest QSO transmitted information
  • use Cabrillo format to convey contest information for which ADIF fields are not specified
  • in the event of a conflict between information in a dedicated contest field and this field, information in the dedicated contest field shall prevail
SWL Boolean     indicates that the QSO information pertains to an SWL report
TEN_TEN Number     Ten-Ten number
TIME_OFF Time     HHMM or HHMMSS in UTC
TIME_ON  Time     HHMM or HHMMSS in UTC
TX_PWR Number     the logging station's power in watts
VE_PROV String     deprecated; use State instead
WEB String     the contacted station's URL

 

Application-defined Fields

Applications may define their own fields. To avoid naming collisions, such fields must be named using the format

APP_{PROGRAMID}_{FIELDNAME}

where {PROGRAMID} is replaced by the string used in the PROGRAMID field.  An application whose PROGRAMID string is MONOLOG could thus define the field APP_MONOLOG_BIRTHDAY .

if it wished to capture the contacted operator's birthday. To facilitate importing,  display, and editing by other applications, instances of application-defined fields should include the optional data type indicator, as in

<APP_MONOLOG_BIRTHDAY:8:d>19470726

 

Enumerations

All Enumerations

[WA5ZNU PROPOSAL] All enumerations are available as a single XML file, for access by logging programs. They are also available as individual files in XML and CSV format.

Ant Path Enumeration

Abbreviation Meaning
G grayline
O other
S short path
L long path

 

ARRL Section Enumeration

The ARRL Sections Enumeration is available in the following three formats:

Band Enumeration

Contest ID

The Contests Enumeration is available in the following three formats:

Mode Enumeration

Propagation Mode Enumeration

Primary Administrative Subdivisions

Secondary Administrative Subdivisions

Country Codes and Names