Vehicle Alerts Service

Vehicle Alerts is a service designed to gather the history of the different alerts produced by a vehicle in a unique place. It also provide all the information about the current state of the vehicle and the history of its alerts in a centralized database.

Prerequisites

Before you begin, make sure you have:

Get Alerts by DEVICE

Querying an Alert using GraphQL

Given a device with IMEI 123456789123456, the following query requests the BATTERY MONITORING information.

Get Alert by Device
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"""
Variables:
 
{
    "id": 123456789123456
}

"""
query {
  device (id: "123456789123456") {
    alerts (types: [BATTERY_MONITORING]) {
    	  list {
    	  	type
        	 ... on VehicleAlertBatteryStateOfCharge {
          value
            timestamp
            level
                 }
          ... on VehicleAlertBatteryStateOfHealthLowVoltage{
          level
            last_occurrence_timestamp_end
                }
           	  ... on VehicleAlertBatteryDischarge{
          level
              timestamp
                              
              }}}}}   
1
2
3
4
5
6
export TOKEN=<YOUR_MUNIC_CONNECT_TOKEN>

curl --request POST 'https://api.munic.io/services/ekko/v2/graphql' \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/json" \
--data '{"query": "query {\n  device (id: "123456789123456") {\n    alerts (types: [BATTERY_MONITORING]) {\n    	  list {\n    	  	type\n        	 ... on VehicleAlertBatteryStateOfCharge {\n          value\n            timestamp\n            level\n                 }\n          ... on VehicleAlertBatteryStateOfHealthLowVoltage{\n          level\n            last_occurrence_timestamp_end\n                }\n           	  ... on VehicleAlertBatteryDischarge{\n          level\n              timestamp\n                              \n              }}}}}   ", "variables":{    "id": 123456789123456}}'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import requests

token = <YOUR_MUNIC_CONNECT_TOKEN>
url = "https://api.munic.io/services/ekko/v2/graphql"

payload = """
{"query": "query {
  device (id: "123456789123456") {
    alerts (types: [BATTERY_MONITORING]) {
    	  list {
    	  	type
        	 ... on VehicleAlertBatteryStateOfCharge {
          value
            timestamp
            level
                 }
          ... on VehicleAlertBatteryStateOfHealthLowVoltage{
          level
            last_occurrence_timestamp_end
                }
           	  ... on VehicleAlertBatteryDischarge{
          level
              timestamp
                              
              }}}}}   ", "variables":
{
    "id": 123456789123456
}
}
"""

payload = payload.replace("\n", "")

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer %s'%(token)
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
See JSON Answer
{
  "data": {
    "device": {
      "alerts": {
        "list": [
          {
            "last_occurrence_timestamp_end": "2023-11-13T07:07:14Z",
            "level": "ALERT",
            "type": "BATTERY_MONITORING"
          },
          {
            "level": "CHARGED",
            "timestamp": "2023-11-11T07:46:41Z",
            "type": "BATTERY_MONITORING",
            "value": 82
          },
          {
            "level": "NO_DISCHARGE",
            "timestamp": "2023-09-21T15:10:06Z",
            "type": "BATTERY_MONITORING"
          }]
      }}}}

Given a device with IMEI 123456789123456, the following query requests the BAD INSTALLATION information.

Get Alert by Device
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
"""
Variables:
 
{
    "id": 123456789123456
}

"""
query {
  device (id: "123456789123456") {
    alerts (types: [BAD_INSTALLATION]) {
    	   list {
    	  	type
          ... on VehicleAlertBadInstallation {
          created_at
          feedback_status
          sporadic_unplug
        source                                 
              }}}}}   
1
2
3
4
5
6
export TOKEN=<YOUR_MUNIC_CONNECT_TOKEN>

curl --request POST 'https://api.munic.io/services/ekko/v2/graphql' \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/json" \
--data '{"query": "query {\n  device (id: "123456789123456") {\n    alerts (types: [BAD_INSTALLATION]) {\n    	   list {\n    	  	type\n          ... on VehicleAlertBadInstallation {\n          created_at\n          feedback_status\n          sporadic_unplug\n        source                                 \n              }}}}}   ", "variables":{    "id": 123456789123456}}'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import requests

token = <YOUR_MUNIC_CONNECT_TOKEN>
url = "https://api.munic.io/services/ekko/v2/graphql"

payload = """
{"query": "query {
  device (id: "123456789123456") {
    alerts (types: [BAD_INSTALLATION]) {
    	   list {
    	  	type
          ... on VehicleAlertBadInstallation {
          created_at
          feedback_status
          sporadic_unplug
        source                                 
              }}}}}   ", "variables":
{
    "id": 123456789123456
}
}
"""

payload = payload.replace("\n", "")

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer %s'%(token)
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
See JSON Answer
{
  "data": {
    "device": {
      "alerts": {
        "list": [
          {
            "created_at": "2023-03-10T10:47:36.402Z",
            "feedback_status": "NO",
            "source": "DEVICE",
            "sporadic_unplug": false,
            "type": "BAD_INSTALLATION"
          }]}}}}

Given a device with IMEI 123456789123456, the following query requests the CRASH information.

Get Alert by Device
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
"""
Variables:
 
{
    "id": 123456789123456
}

"""
query {
  device (id: "123456789123456") {
    alerts (types: [CRASH]) {
    	  list {
    	  	type
          ... on  VehicleAlertCrash{
          confidence
            created_at
            status
            source
            type                      
              }}}}    
1
2
3
4
5
6
export TOKEN=<YOUR_MUNIC_CONNECT_TOKEN>

curl --request POST 'https://api.munic.io/services/ekko/v2/graphql' \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/json" \
--data '{"query": "query {\n  device (id: "123456789123456") {\n    alerts (types: [CRASH]) {\n    	  list {\n    	  	type\n          ... on  VehicleAlertCrash{\n          confidence\n            created_at\n            status\n            source\n            type                      \n              }}}}    ", "variables":{    "id": 123456789123456}}'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import requests

token = <YOUR_MUNIC_CONNECT_TOKEN>
url = "https://api.munic.io/services/ekko/v2/graphql"

payload = """
{"query": "query {
  device (id: "123456789123456") {
    alerts (types: [CRASH]) {
    	  list {
    	  	type
          ... on  VehicleAlertCrash{
          confidence
            created_at
            status
            source
            type                      
              }}}}    ", "variables":
{
    "id": 123456789123456
}
}
"""

payload = payload.replace("\n", "")

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer %s'%(token)
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
See JSON Answer
{
  "data": {
    "device": {
      "alerts": {
        "list": []
      }}}}

Given a device with IMEI 123456789123456, the following query requests the DTC information.

Get Alert by Device
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""
Variables:
 
{
    "id": 123456789123456
}

"""
query {
  device (id: "864826051047754") {
    alerts (types: [DTC]) {
    	  list {
    	  	type
          ... on VehicleAlertDtc {
          created_at
        feedback_status
          dtc {
            cause
            classification
            code
            code_description
            code_subdescription           
            recommendation          
            source
            source_description
            source_id
            source_name
            warning
          }
            dtc_status {
              fmi
              fmi_description
              is_active
              mode
              mode_description
            }}}}}}      
1
2
3
4
5
6
export TOKEN=<YOUR_MUNIC_CONNECT_TOKEN>

curl --request POST 'https://api.munic.io/services/ekko/v2/graphql' \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/json" \
--data '{"query": "query {\n  device (id: "864826051047754") {\n    alerts (types: [DTC]) {\n    	  list {\n    	  	type\n          ... on VehicleAlertDtc {\n          created_at\n        feedback_status\n          dtc {\n            cause\n            classification\n            code\n            code_description\n            code_subdescription           \n            recommendation          \n            source\n            source_description\n            source_id\n            source_name\n            warning\n          }\n            dtc_status {\n              fmi\n              fmi_description\n              is_active\n              mode\n              mode_description\n            }}}}}}      ", "variables":{    "id": 123456789123456}}'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import requests

token = <YOUR_MUNIC_CONNECT_TOKEN>
url = "https://api.munic.io/services/ekko/v2/graphql"

payload = """
{"query": "query {
  device (id: "864826051047754") {
    alerts (types: [DTC]) {
    	  list {
    	  	type
          ... on VehicleAlertDtc {
          created_at
        feedback_status
          dtc {
            cause
            classification
            code
            code_description
            code_subdescription           
            recommendation          
            source
            source_description
            source_id
            source_name
            warning
          }
            dtc_status {
              fmi
              fmi_description
              is_active
              mode
              mode_description
            }}}}}}      ", "variables":
{
    "id": 123456789123456
}
}
"""

payload = payload.replace("\n", "")

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer %s'%(token)
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
See JSON Answer
{
  "data": {
    "device": {
      "alerts": {
        "list": [
          {
            "created_at": "2023-06-22T05:30:20.579Z",
            "dtc": {
              "cause": "Possible causes:\\n- Additive container fluid level\\n- faulty additive system component\\n- Defective ECU\\n",
              "classification": "INFORMATION",
              "code": "P2BAA",
              "code_description": "NOx content exceeded ADDITIVE CONSUMPTION TOO LOW",
              "code_subdescription": "Function:\\nDepending on exhaust-gas temperature/-quantity, NOx adsorption catalyst temperature and the NOx concentration in the exhaust branch, the metering unit supplies the correct additive quantity that can be effectively processed by the catalyst.\\n",
              "recommendation": "Please visit a shop if the warning lamp is permanently on.",
              "source": "POWERTRAIN",
              "source_description": "",
              "source_id": "7E8",
              "source_name": "POWERTRAIN",
              "warning": ""
            },
            "dtc_status": {
              "fmi": "",
              "fmi_description": "",
              "is_active": true,
              "mode": "ACTIVE",
              "mode_description": "ACTIVE"
            },
            "feedback_status": "NO",
            "type": "DTC"
          },
          {
            "created_at": "2023-06-22T05:30:20.697Z",
            "dtc": {
              "cause": "",
              "classification": "INFORMATION",
              "code": "P20FF",
              "code_description": "",
              "code_subdescription": "",
              "recommendation": "",
              "source": "POWERTRAIN",
              "source_description": "",
              "source_id": "7E8",
              "source_name": "POWERTRAIN",
              "warning": ""
            },
            "dtc_status": {
              "fmi": "",
              "fmi_description": "",
              "is_active": false,
              "mode": "ABSENT",
              "mode_description": "ABSENT"
            },
            "feedback_status": "NO",
            "type": "DTC"
          }]}}}}

Given a device with IMEI 123456789123456, the following query requests the PLUG/UNPLUG information.

Get Alert by Device
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""
Variables:
 
{
    "id": 123456789123456
}

"""
query {
  device (id: "864826051047754") {
    alerts (types: [PLUG_UNPLUG]) {
    	  list {
    	  	type
          ... on  VehicleAlertPlugUnplug{
          created_at
          feedback_status                      
          last_received                        
          last_reported            
          plug {
               mileage
               potential
               }             
         source
         status
         type                      
         unplug {
         duration
         mileage
         potential
}}}}}}   
1
2
3
4
5
6
export TOKEN=<YOUR_MUNIC_CONNECT_TOKEN>

curl --request POST 'https://api.munic.io/services/ekko/v2/graphql' \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/json" \
--data '{"query": "query {\n  device (id: "864826051047754") {\n    alerts (types: [PLUG_UNPLUG]) {\n    	  list {\n    	  	type\n          ... on  VehicleAlertPlugUnplug{\n          created_at\n          feedback_status                      \n          last_received                        \n          last_reported            \n          plug {\n               mileage\n               potential\n               }             \n         source\n         status\n         type                      \n         unplug {\n         duration\n         mileage\n         potential\n}}}}}}   ", "variables":{    "id": 123456789123456}}'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import requests

token = <YOUR_MUNIC_CONNECT_TOKEN>
url = "https://api.munic.io/services/ekko/v2/graphql"

payload = """
{"query": "query {
  device (id: "864826051047754") {
    alerts (types: [PLUG_UNPLUG]) {
    	  list {
    	  	type
          ... on  VehicleAlertPlugUnplug{
          created_at
          feedback_status                      
          last_received                        
          last_reported            
          plug {
               mileage
               potential
               }             
         source
         status
         type                      
         unplug {
         duration
         mileage
         potential
}}}}}}   ", "variables":
{
    "id": 123456789123456
}
}
"""

payload = payload.replace("\n", "")

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer %s'%(token)
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
See JSON Answer
{
  "data": {
    "device": {
      "alerts": {
        "list": [
          {
            "created_at": "2023-06-15T19:07:59.915Z",
            "feedback_status": "NO",
            "last_received": "2023-06-15T19:07:04.000Z",
            "last_reported": "2023-06-15T19:07:04.000Z",
            "plug": {
              "mileage": null,
              "potential": null
            },
            "source": "DEVICE",
            "status": "CLOSED",
            "type": "PLUG_UNPLUG",
            "unplug": {
              "duration": null,
              "mileage": null,
              "potential": null
            }
          },
          {
            "created_at": "2023-04-03T18:07:03.386Z",
            "feedback_status": "NO",
            "last_received": "2023-04-03T18:06:14.000Z",
            "last_reported": "2023-04-05T14:15:06.281Z",
            "plug": {
              "mileage": null,
              "potential": null
            },
            "source": "DEVICE",
            "status": "CLOSED",
            "type": "PLUG_UNPLUG",
            "unplug": {
              "duration": null,
              "mileage": null,
              "potential": null
            }
          },
          {
            "created_at": "2023-04-03T18:07:00.506Z",
            "feedback_status": "NO",
            "last_received": "2023-04-03T18:06:00.000Z",
            "last_reported": "2023-04-05T14:15:06.281Z",
            "plug": {
              "mileage": null,
              "potential": null
            },
            "source": "DEVICE",
            "status": "CLOSED",
            "type": "PLUG_UNPLUG",
            "unplug": {
              "duration": null,
              "mileage": null,
              "potential": null
            }
          },
          {
            "created_at": "2023-03-10T10:47:35.590Z",
            "feedback_status": "NO",
            "last_received": "2023-03-10T10:45:49.000Z",
            "last_reported": "2023-04-05T14:15:06.281Z",
            "plug": {
              "mileage": null,
              "potential": null
            },
            "source": "DEVICE",
            "status": "CLOSED",
            "type": "PLUG_UNPLUG",
            "unplug": null
          }]}}}}

Given a device with IMEI 123456789123456, the following query requests the WARNING LIGHT information.

Get Alert by Device
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
"""
Variables:
 
{
    "id": 123456789123456
}

"""
query {
  device (id: "123456789123456") {
    alerts (types: [WARNING_LIGHT]) {
    	  list {
    	  	type          
          ... on VehicleAlertWarningLight {
            created_at
            description
            code                        
			extra_information                            
          }}}}}  
1
2
3
4
5
6
export TOKEN=<YOUR_MUNIC_CONNECT_TOKEN>

curl --request POST 'https://api.munic.io/services/ekko/v2/graphql' \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/json" \
--data '{"query": "query {\n  device (id: "123456789123456") {\n    alerts (types: [WARNING_LIGHT]) {\n    	  list {\n    	  	type          \n          ... on VehicleAlertWarningLight {\n            created_at\n            description\n            code                        \n			extra_information                            \n          }}}}}  ", "variables":{    "id": 123456789123456}}'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import requests

token = <YOUR_MUNIC_CONNECT_TOKEN>
url = "https://api.munic.io/services/ekko/v2/graphql"

payload = """
{"query": "query {
  device (id: "123456789123456") {
    alerts (types: [WARNING_LIGHT]) {
    	  list {
    	  	type          
          ... on VehicleAlertWarningLight {
            created_at
            description
            code                        
			extra_information                            
          }}}}}  ", "variables":
{
    "id": 123456789123456
}
}
"""

payload = payload.replace("\n", "")

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer %s'%(token)
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
See JSON Answer
{
  "data": {
    "device": {
      "alerts": {
        "list": [
          {
            "code": "W0003",
            "created_at": "2023-10-05T15:36:08.855Z",
            "description": "This warning indicator light means that the brake fluid level in the master cylinder should be checked.",
            "extra_information": "",
            "type": "WARNING_LIGHT"
          },
          {
            "code": "W0024",
            "created_at": "2023-10-05T15:36:08.790Z",
            "description": "This warning indicator light means that the windscreen washer fluid reservoir is nearly empty.",
            "extra_information": "The windscreen washer fluid reservoir should be filled.",
            "type": "WARNING_LIGHT"
          },
          {
            "code": "W0031",
            "created_at": "2023-04-11T14:29:11.976Z",
            "description": "Malfunction Indicator Light.",
            "extra_information": "",
            "type": "WARNING_LIGHT"
          },
          {
            "code": "W0018",
            "created_at": "2023-04-11T14:59:05.440Z",
            "description": "Cet indicateur d'avertissement signifie que l'eau dans le filtre à carburant a atteint une capacité maximale.",
            "extra_information": "L'eau doit être drainée du filtre.",
            "type": "WARNING_LIGHT"
          },
          {
            "code": "W0014",
            "created_at": "2023-04-03T18:07:02.454Z",
            "description": "Ce voyant d'avertissement signifie qu'une ceinture de sécurité n'a pas été fixée pour un passager ou pour le conducteur.",
            "extra_information": "",
            "type": "WARNING_LIGHT"
          },
          {
            "code": "W0001",
            "created_at": "2023-04-11T14:59:05.487Z",
            "description": "Cet avertissement indique que le niveau d'huile moteur a baissé en dessous de la limite inférieure acceptable.",
            "extra_information": "",
            "type": "WARNING_LIGHT"
          }]}}}}

Given a device with IMEI 123456789123456, the following query requests the MAINTENANCE information.

Get Alert by Device
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
"""
Variables:
 
{
    "id": 123456789123456
}

"""
query {
  device (id: "123456789123456") {
    alerts (types: [UPCOMING_MAINTENANCE]) {
    	  list {
    	  	type          
          ... on VehicleAlertUpcomingMaintenance {
            created_at
            updated_at
            criticality
            time_to_next   
            date_deadline
            distance_to_next
            mileage_deadline                            
            }}}}}   
1
2
3
4
5
6
export TOKEN=<YOUR_MUNIC_CONNECT_TOKEN>

curl --request POST 'https://api.munic.io/services/ekko/v2/graphql' \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/json" \
--data '{"query": "query {\n  device (id: "123456789123456") {\n    alerts (types: [UPCOMING_MAINTENANCE]) {\n    	  list {\n    	  	type          \n          ... on VehicleAlertUpcomingMaintenance {\n            created_at\n            updated_at\n            criticality\n            time_to_next   \n            date_deadline\n            distance_to_next\n            mileage_deadline                            \n            }}}}}   ", "variables":{    "id": 123456789123456}}'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import requests

token = <YOUR_MUNIC_CONNECT_TOKEN>
url = "https://api.munic.io/services/ekko/v2/graphql"

payload = """
{"query": "query {
  device (id: "123456789123456") {
    alerts (types: [UPCOMING_MAINTENANCE]) {
    	  list {
    	  	type          
          ... on VehicleAlertUpcomingMaintenance {
            created_at
            updated_at
            criticality
            time_to_next   
            date_deadline
            distance_to_next
            mileage_deadline                            
            }}}}}   ", "variables":
{
    "id": 123456789123456
}
}
"""

payload = payload.replace("\n", "")

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer %s'%(token)
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
See JSON Answer
{
  "data": {
    "device": {
      "alerts": {
        "list": [
          {
            "created_at": "2023-06-29T12:19:58.811Z",
            "criticality": "MAINTENANCE_MISSED",
            "date_deadline": "2021-02-26T05:49:12Z",
            "distance_to_next": 20000,
            "mileage_deadline": 20000,
            "time_to_next": 0,
            "type": "UPCOMING_MAINTENANCE",
            "updated_at": "2023-10-05T12:11:15.480Z"
             }]}}}}

For more details, please read the full trip documentation graphql reference.

Get a Vehicle’s Alert information using pokes

The Alert Summary poke consists of : a header :

  • Timestamp of the creation of the poke.
  • Vehicle information.
  • Language.

An array of alerts :

  • Alert timestamp :The last time it was received.
  • Alert : A structured data type. Currently, DTC, Warning Lights, Plug Unplug, Different VIN, Bad Installation, Battery Monitoring and Crash alerts are available.
  • Alert icon.
  • Alert id.
Example DTC Poke
{
   "header": {
       "recorded_at": "2021-12-10T15:30:14.016563558Z",
       "vehicle": {
           "vin": "XXXXXXXXXXXXXXX",
           "vehicle_id": ""
       },
       "language": "ENGLISH"
   },
   "alerts": [
        {
           "received_at": "2021-12-10T09:40:49Z",
           "alert": {
"diagnostic_trouble_code": {
                   "dtc": {
                       "code": "P0141",
                       "code_description": "Exhaust Gas Sensor Heater Monitor Bank 1 Sensor 2 - Fault in electric circuit",
                       "code_subdescription": "Function:\\n- The minimum operating temp. of probe is approx. 570F/300°C. An integrated heating coil is used to heat up probe and reach necessary temperature quickly.\\n",
                       "cause": "Possible causes:\\n- Defective fuse\\n- defective probe\\n- Defective ECU\\n",
                       "effect": "Possible effects:\\n- Missing engine power\\n- jerking\\n- high fuel consumption\\n- faulty emission values\\n- idle speed severely fluctuating (surging)\\n- Fault lamp on (possibly)\\n",
                       "recommendation": "Please visit a shop if one or more of the following faults occur: Sudden drop in power, irregular engine operation, engine jerking, warning lamp is on",
                       "warning": "",
                       "classification": "WARNING",
                       "source": "7E8",
                       "source_name": "POWERTRAIN",
                       "source_description": "",
                       "sensor": "",
                       "sensor_description": "",
                       "protocol": "OBDII"
                   },
                   "status": {
                       "mode": "ACTIVE",
                       "fmi": "",
                       "mode_description": "ACTIVE",
                       "fmi_description": "",
                       "is_active": true
                   },
                   "freeze_frames": null
               }
           },
           "icon": "",
           "id":"816045976262836233"
       },
       {
           "received_at": "2021-10-27T15:54:59Z",
           "alert": {
               "diagnostic_trouble_code": {
                   "dtc": {
                       "code": "P22B2",
                       "code_description": "Oxygen Sensor Bank 1 Sensor 2 - Faulty SIGNAL",
                       "code_subdescription": "Function:\\n- The lambda probe monitors exhaust composition after CAT and evaluates efficiency of CAT.\\n",
                       "cause": "Possible causes:\\n- Unmetered air\\n- faulty ignition\\n- no compression\\n- intake system clogged (air filter, intake manifold etc.)\\n- FAULTY FUEL PRESSURE\\n- defective probe\\n- defective catalyst\\n- Defective ECU\\n",
                       "effect": "Possible effects:\\n- Missing engine power\\n- jerking\\n- high fuel consumption\\n- faulty emission values\\n- Fault lamp on (possibly)\\n",
                       "recommendation": "Please visit a shop if one or more of the following faults occur: Sudden drop in power, irregular engine operation, engine jerking, warning lamp is on",
                       "warning": "",
                       "classification": "WARNING",
                       "source": "7E8",
                       "source_name": "POWERTRAIN",
                       "source_description": "",
                       "sensor": "",
                       "sensor_description": "",
                       "protocol": "OBDII"
                   },
                   "status": {
                       "mode": "ACTIVE",
                       "fmi": "",
                       "mode_description": "ACTIVE",
                       "fmi_description": "",
                       "is_active": true
                   },
                   "freeze_frames": {
                       "details": {
                           "parameters": [
                               {
                                   "id": 2,
                                   "description": "",
                                   "value": "IrI=",
                                   "unit": ""
                               }
                           ]
                       },
                       "description": ""
                   }
               }
           },
           "icon": "",
           "id":"816045976262836233"
       },
  ]
}
Diagnostic Trouble CodeDescription
DTC
CodeDTC Code
Code DescriptionDTC Code Description
Code SubdescriptionDTC Code Subdescription
CauseDTC Code cause
EffectDTC Code effect
RecommendationRecommandation
WarningWarning
ClassificationDTC Code classification: INFORMATION, WARNING, HIDDEN, CRITICAL
SourceECU
Source NameDTC system: AC, ADAS, BRAKING, DIESEL, EV, FUEL_IGNITION, GEARBOX, IMMOBILISER, INSTRUMENT, MULTIFUNCTION, TPMS, AIRBAG, IGNITION, TCS, ISS, SUSPENSION, CHASSIS, NETWORK, BODY, POWERTRAIN, UNKNOWN_SYSTEM
Source Description
SensorsystemMeta.SubSystemName (case of OEM dtc)
Sensor DescriptionsystemMeta.SystemName (case of OEM dtc)
ProtocolOBDII
Status
Mode1, 2, 3, 4
Mode DescriptionINTERMITTENT / HISTORICAL / ACTIVE / ABSENT
Fmi
Fmi Description
is_activetrue / false, depends on the code mode
Freeze Frames
Details
IdPID (if OBD standard)
Descriptionexists If OBD OEM
ValueValue
Unitexists If OBD OEM
Description
Example Warning Light Poke
{
   "header": {
       "recorded_at": "2021-12-10T15:30:14.016563558Z",
       "vehicle": {
           "vin": "XXXXXXXXXXXXXXX",
           "vehicle_id": ""
       },
       "language": "ENGLISH"
   },
   "alerts": [
{
           "received_at": "2022-01-31T05:14:26Z",
           "alert": {
               "warning_light": {
                   "code": "W0031",
                   "name": "Check Engine Warning",
                   "description": "Malfunction Indicator Light.",
                   "level": "WARNING",
                   "extra_information": "",
                   "is_active": true
               }
           },
           "icon": "https://api.integration.munic.io/services/vehicle_alerts/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHNLd2tDZ01Mc2F2YkFDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--e1693bc71346f4804aabd2ffad951afbdb7fc8f5/warninglightW0031-logo",
           "id":"816045976262836233"
       },
       {
   "received_at": "2022-01-27T20:02:39Z",
   "alert": {
       "warning_light": {
           "code": "W0042",
           "name": "Broken Lamp Warning",
           "description": "This warning indicator light means that the computer detects a non-normal voltage in any of the bulbs circuits.",
           "level": "WARNING",
           "extra_information": "If the lamp or bulb in question is a headlamp or taillight, it could be dangerous to drive.",
           "is_active": true
       }
   },
   "icon": "https://api.integration.munic.io/services/vehicle_alerts/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHNLd2tDZ0gzL2IvYkFDUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--27a39386f1f910584c2652f4b33041d165ac2cc5/warninglightW0042-logo",
   "id":"816045976262836233"
}
   ]
}
FieldDescription
CodeWarning code
NameWarning name
DescriptionWarning description from local database
LevelWarning level: WARNING, ADVISORY, INFORMATION, UNCLASSIFIED_WARNING
Extra InformationExtra information about the warning
is_activeThe warning is active: true/false
Example Plug/Unplug Poke
{
   "header": {
       "recorded_at": "2022-02-01T10:15:16.213822878Z",
       "vehicle": {
           "vin": "XXXXXXXXXXXX",
           "vehicle_id": ""
       },
       "language": "ENGLISH"
   },
   "alerts": [
       {
           "received_at": "2022-02-01T10:01:16Z",
           "alert": {
               "device_plug_unplug": {
                   "unplug_information": {
                       "timestamp": "2022-01-31T23:17:55Z",
                       "position": {
                           "latitude": 48.05078,
                           "longitude": 7.68418
                       }
                   },
                   "replug_information": {
                       "timestamp": "2022-02-01T09:59:48Z",
                       "position": {
                           "latitude": 48.05072,
                           "longitude": 7.68416
                       }
                   }
               }
           },
           "icon": "",
           "id":"816045976262836233"
       }
   ]
}
Plug / UnplugDescription
replug_information.timestampReplug timestamp.
replug_information.positionUnplug Position.
unplug_information.timestampUnplug timestamp.
unplug_information.positionUnplug position
Example Battery Monitoring State of Charge Poke
{
   "header": {
       "recorded_at": "2022-03-29T08:49:35.375595Z",
       "vehicle": {
           "vin": "",
           "vehicle_id": ""
       },
       "language": "ENGLISH"
   },
   "alerts": [
       {
           "received_at": "2022-03-29T08:49:35.375595Z",
           "alert": {
               "battery_monitoring": {
                   "timestamp": "2022-03-29T08:49:35.375595Z",
                   "state_of_charge": {
                       "level": "FULLY_CHARGED",
                       "value": 95,
                       "ocv": 12558
                   }
               }
           },
           "icon": "",
           "id":"816045976262836233"
       }
   ]
}

Alert Status

An alert status could be closed or ongoing. The status is set according to the following conditions :

Alert TypeConditions
dtcongoing if is_active = true closed if is_active = falsetrue
warning lightinformation if the warning light was first seen inactive and still inactive ongoing if is_active = trueclosed if is_active = false (after being true)
plug unplugongoing if replug is nullclosed if replug is not null
Battery Monitoring - State of Chargeinformation if level is OK, CHARGED or FULLY_CHARGED Else ongoing
Battery Monitoring - Dischargeinformation if level is NO_INFORMATION, NO_DISCHARGE or SOFT_DISCHARGEElse ongoing
Battery Monitoring -state_of_health_low_voltageinformation if level is UNKNOWN or NONEElse ongoing
Battery Monitoring - excessive_crank_valleysAlways ongoing
Battery Monitoring - voltage_high_level_gapAlways ongoing
upcoming maintenanceAlways ongoing
crashAlways ongoing
bad installationongoing if status is trueclosed if status is false
Different vinAlways ongoing