diff --git a/ogn_lib/parser.py b/ogn_lib/parser.py
index f43f6cb..a2ca7ea 100644
--- a/ogn_lib/parser.py
+++ b/ogn_lib/parser.py
@@ -627,3 +627,33 @@ class ServerParser(Parser):
         """
 
         return {'comment': comment}
+
+
+class Spot(Parser):
+    """
+    Parser for Spot-formatted APRS messages.
+    """
+
+    __destto__ = ['OGSPOT', 'OGSPOT-1']
+
+    @staticmethod
+    def _parse_protocol_specific(comment):
+        """
+        Parses the comment string from Spot's APRS messages.
+
+        :param str comment: comment string
+        :return: parsed comment
+        :rtype: dict
+        """
+
+        fields = comment.split(' ', maxsplit=2)
+
+        if len(fields) < 3:
+            raise exceptions.ParseError('SPOT comment incorrectly formatted: '
+                                        'received {}'.format(comment))
+
+        return {
+            'id': fields[0],
+            'model': fields[1],
+            'status': fields[2]
+        }

diff --git a/tests/test_parser.py b/tests/test_parser.py
index cb9b05c..bcd3247 100644
--- a/tests/test_parser.py
+++ b/tests/test_parser.py
@@ -440,6 +440,18 @@ class TestNaviter:
         assert data['address_type'] is constants.AddressType.naviter
 
 
+class TestSpot:
+    def test_parse_protocol_specific(self):
+        data = parser.Spot._parse_protocol_specific('id0-2860357 SPOT3 GOOD')
+        assert data['id'] == 'id0-2860357'
+        assert data['model'] == 'SPOT3'
+        assert data['status'] == 'GOOD'
+
+    def test_parse_protocol_specific_fail(self):
+        with pytest.raises(exceptions.ParseError):
+            parser.Spot._parse_protocol_specific('id0-2860357 SPOT3')
+
+
 class TestServerParser:
 
     def test_parse_message_beacon(self, mocker):

Implement parser for Spot messages (OGSPOT)
tests/test_parser.py::TestSpot::test_parse_protocol_specific tests/test_parser.py::TestSpot::test_parse_protocol_specific_fail
tests/test_parser.py::TestParserBase::test_new_no_id tests/test_parser.py::TestParserBase::test_new_single_id tests/test_parser.py::TestParserBase::test_new_multi_id tests/test_parser.py::TestParserBase::test_no_destto tests/test_parser.py::TestParserBase::test_new_wrong_id tests/test_parser.py::TestParserBase::test_set_default tests/test_parser.py::TestParserBase::test_call tests/test_parser.py::TestParserBase::test_call_server tests/test_parser.py::TestParserBase::test_call_no_parser tests/test_parser.py::TestParserBase::test_call_default tests/test_parser.py::TestParserBase::test_call_failed tests/test_parser.py::TestParser::test_pattern_header tests/test_parser.py::TestParser::test_pattern_header_matches_all tests/test_parser.py::TestParser::test_pattern_location tests/test_parser.py::TestParser::test_pattern_location_matches_all tests/test_parser.py::TestParser::test_pattern_comment_common tests/test_parser.py::TestParser::test_pattern_comment_common_matches_all tests/test_parser.py::TestParser::test_pattern_all tests/test_parser.py::TestParser::test_pattern_all_matches_all tests/test_parser.py::TestParser::test_parse_msg_no_match tests/test_parser.py::TestParser::test_parse_msg_calls tests/test_parser.py::TestParser::test_parse_msg tests/test_parser.py::TestParser::test_parse_msg_full tests/test_parser.py::TestParser::test_parse_msg_delete_update tests/test_parser.py::TestParser::test_parse_msg_comment tests/test_parser.py::TestParser::test_parse_digipeaters tests/test_parser.py::TestParser::test_parse_digipeaters_relayed tests/test_parser.py::TestParser::test_parse_digipeaters_unknown_format tests/test_parser.py::TestParser::test_parse_heading_speed tests/test_parser.py::TestParser::test_parse_heading_speed_both_missing tests/test_parser.py::TestParser::test_parse_heading_speed_null_input tests/test_parser.py::TestParser::test_parse_altitude tests/test_parser.py::TestParser::test_parse_altitude_missing tests/test_parser.py::TestParser::test_parse_attrs tests/test_parser.py::TestParser::test_parse_timestamp_h tests/test_parser.py::TestParser::test_parse_timestamp_z tests/test_parser.py::TestParser::test_parse_time_past tests/test_parser.py::TestParser::test_parse_time_future tests/test_parser.py::TestParser::test_parse_datetime tests/test_parser.py::TestParser::test_parse_location_sign tests/test_parser.py::TestParser::test_parse_location_value tests/test_parser.py::TestParser::test_parse_protocol_specific tests/test_parser.py::TestParser::test_get_location_update_func tests/test_parser.py::TestParser::test_update_location_decimal_same tests/test_parser.py::TestParser::test_update_location_decimal_positive tests/test_parser.py::TestParser::test_update_location_decimal_negative tests/test_parser.py::TestParser::test_call tests/test_parser.py::TestParser::test_update_data tests/test_parser.py::TestParser::test_update_data_missing tests/test_parser.py::TestAPRS::test_parse_protocol_specific tests/test_parser.py::TestAPRS::test_parse_id_string tests/test_parser.py::TestNaviter::test_parse_protocol_specific tests/test_parser.py::TestNaviter::test_parse_id_string tests/test_parser.py::TestServerParser::test_parse_message_beacon tests/test_parser.py::TestServerParser::test_parse_message_status tests/test_parser.py::TestServerParser::test_parse_beacon_comment