Ask a Question

Extended single charge info

It would be nice to have access to the hourly charged kWh in the public API. I see that it is already available in the partner API at this: <https://partner-api.monta.com/api/v1/charges/{chargeId}>, in array "kwhPerHour". Any plans on making this available for the public API also?

Retrieve a list of charges: only 10 elements per page

Hello, Regardless start date set and number of items per page, the API only returns 10 elements per page, so one needs to specify one by one the pages to retrieve.

Feature Request: add info to charges

In the app, there is a field 'notes' for charges, so one can add comments or extra information regarding that specific charge. I don't see the equivalent using the API. I am using the API control my charges and have my own integration with my car (Hyundai Kona) API. For example I keep a record of the odometer for each charge, that way I can monitor the consume. It would be great if I could add the odometer value to the charge, even in the 'notes' field. That way I can review it independently of having access to my local record.

Feauture request. Wallet

It would be nice to have information in the API corresponding to the actual amount of money in the wallet. The same information which is in the app showed in the Personal Wallet Thanks in advance

Retrieve a list of charges seems to be ignoring 'fromDate' argument

request: ``` curl --request GET --url '<https://public-api.monta.com/api/v1/charges?chargePointId=zzzzzzz&fromDate=2024-04-23T06%3A58%3A04Z&page=0&perPage=10'> --header 'accept: application/json' --header 'authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' ``` result: ``` { "data": [ { "id": iiiiiiii, "chargePointId": ccccccc, "createdAt": "2024-04-24T23:08:02Z", "updatedAt": "2024-04-25T05:38:45Z", "cablePluggedInAt": "2024-04-24T23:08:02Z", "startedAt": "2024-04-24T23:08:02Z", "stoppedAt": "2024-04-25T05:38:45Z", "fullyChargedAt": null, "failedAt": null, "timeoutAt": null, "state": "completed", "consumedKwh": 34.07, "kwhLimit": null, "startMeterKwh": 5141.459, "endMeterKwh": 5175.524, "cost": 2.81, "price": 0, "priceLimit": null, "averagePricePerKwh": 0, "averageCo2PerKwh": 0, "averageRenewablePerKwh": 0, "failureReason": null, "stopReason": "regular state change", "note": null, "currency": { "identifier": "eur", "name": "Euros", "decimals": 2 }, "soc": null, "socLimit": null }, { "id": iiiiiiii, "chargePointId": ccccccc, "createdAt": "2024-04-22T23:08:01Z", "updatedAt": "2024-04-23T06:58:04Z", "cablePluggedInAt": "2024-04-22T23:08:01Z", "startedAt": "2024-04-22T23:08:01Z", "stoppedAt": "2024-04-23T06:58:04Z", "fullyChargedAt": null, "failedAt": null, "timeoutAt": null, "state": "completed", "consumedKwh": 0.06, "kwhLimit": null, "startMeterKwh": 5141.403, "endMeterKwh": 5141.459, "cost": 0, "price": 0, "priceLimit": null, "averagePricePerKwh": 0, "averageCo2PerKwh": 0, "averageRenewablePerKwh": 0, "failureReason": null, "stopReason": "StoppedByUser", "note": null, "currency": { "identifier": "eur", "name": "Euros", "decimals": 2 }, "soc": null, "socLimit": null }, (...) { "id": iiiiiiii, "chargePointId": ccccccc, "createdAt": "2024-04-13T23:08:01Z", "updatedAt": "2024-04-14T06:58:06Z", "cablePluggedInAt": "2024-04-13T23:08:01Z", "startedAt": "2024-04-13T23:08:02Z", "stoppedAt": "2024-04-14T06:58:05Z", "fullyChargedAt": null, "failedAt": null, "timeoutAt": null, "state": "completed", "consumedKwh": 4.72, "kwhLimit": null, "startMeterKwh": 5055.616, "endMeterKwh": 5060.337, "cost": 0.68, "price": 0, "priceLimit": null, "averagePricePerKwh": 0, "averageCo2PerKwh": 0, "averageRenewablePerKwh": 0, "failureReason": null, "stopReason": "StoppedByUser", "note": null, "currency": { "identifier": "eur", "name": "Euros", "decimals": 2 }, "soc": null, "socLimit": null } ], "meta": { "itemCount": 10, "currentPage": 0, "perPage": 10, "totalPageCount": 31, "totalItemCount": 309 } } ``` It has been working fine until yesterday.

Retrieve a list of charge points

The API seems /api/v1/charge-points multiple charges even though there is only one in the app. It looks it like return chargers without a ´serialNumber´. Might be previously unsuccessful added chargers. This is the response i am receiving. ´´´json ```json Response { "data": [ { "id": 2256635, "createdAt": "2022-11-11T21:04:32Z", "updatedAt": "2022-12-12T10:16:02Z", "serialNumber": null, "name": "Garage", "visibility": "private", "maxKW": 11, "maxKw": 11, "type": "ac", "note": null, "state": "passive", "location": { .... }, "connectors": [ { "identifier": "type2", "name": "Type 2" } ], "lastMeterReadingKwh": null, "cablePluggedIn": false, "brandName": "Zaptec", "modelName": "Zaptec - Go", "firmwareVersion": null }, { "id": 2570439, "createdAt": "2022-12-12T10:12:50Z", "updatedAt": "2022-12-12T10:17:09Z", "serialNumber": null, "name": "Garage", "visibility": "private", "maxKW": 20, "maxKw": 20, "type": "ac", "note": null, "state": "passive", "location": { .... }, "connectors": [ { "identifier": "type2", "name": "Type 2" } ], "lastMeterReadingKwh": null, "cablePluggedIn": false, "brandName": "Zaptec", "modelName": "Zaptec - Go", "firmwareVersion": null }, { "id": 2570441, "createdAt": "2022-12-12T10:15:32Z", "updatedAt": "2022-12-12T10:16:38Z", "serialNumber": null, "name": "Garage", "visibility": "private", "maxKW": 11, "maxKw": 11, "type": "ac", "note": null, "state": "passive", "location": { .... }, "connectors": [ { "identifier": "type2", "name": "Type 2" } ], "lastMeterReadingKwh": null, "cablePluggedIn": false, "brandName": "Zaptec", "modelName": "Zaptec - Go", "firmwareVersion": null }, { "id": 2570442, "createdAt": "2022-12-12T10:17:50Z", "updatedAt": "2022-12-12T10:19:57Z", "serialNumber": null, "name": "Garage", "visibility": "private", "maxKW": 11, "maxKw": 11, "type": "ac", "note": null, "state": "passive", "location": { .... }, "connectors": [ { "identifier": "type2", "name": "Type 2" } ], "lastMeterReadingKwh": null, "cablePluggedIn": false, "brandName": "Zaptec", "modelName": "Zaptec - Go", "firmwareVersion": null }, { "id": 2570443, "createdAt": "2022-12-12T10:20:36Z", "updatedAt": "2022-12-12T11:13:31Z", "serialNumber": null, "name": "Garage", "visibility": "private", "maxKW": 11, "maxKw": 11, "type": "ac", "note": null, "state": "passive", "location": { .... }, "connectors": [ { "identifier": "type2", "name": "Type 2" } ], "lastMeterReadingKwh": null, "cablePluggedIn": false, "brandName": "Zaptec", "modelName": "Zaptec - Go", "firmwareVersion": null }, { "id": 2570463, "createdAt": "2022-12-12T11:18:32Z", "updatedAt": "2022-12-12T11:25:23Z", "serialNumber": null, "name": "garage", "visibility": "private", "maxKW": 11, "maxKw": 11, "type": "ac", "note": null, "state": "passive", "location": { .... }, "connectors": [ { "identifier": "type2", "name": "Type 2" } ], "lastMeterReadingKwh": null, "cablePluggedIn": false, "brandName": "Zaptec", "modelName": "Zaptec - Go", "firmwareVersion": null }, { "id": 2570470, "createdAt": "2022-12-12T11:26:31Z", "updatedAt": "2024-03-05T14:52:10Z", "serialNumber": "ZAP11111", "name": "Garage", "visibility": "private", "maxKW": 10.8, "maxKw": 10.8, "type": "ac", "note": null, "state": "busy-scheduled", "location": { .... }, "connectors": [ { "identifier": "type2", "name": "Type 2" } ], "lastMeterReadingKwh": null, "cablePluggedIn": true, "brandName": "Zaptec", "modelName": "Zaptec - Go", "firmwareVersion": "" } ], "meta": { "itemCount": 7, "currentPage": 0, "perPage": 10, "totalPageCount": 1, "totalItemCount": 7 } } ``` ´´´

Unable to view my charger, just got moved to the norlys solution.

Hi Today my charger was moved to the "Norlys Opladning 2.0" flavor of Monta, and thereby moved to a team controlled by them. Today I also planned to give up waiting for the official HomeAssistant integration, and make my own, but after I am authenticated , GET charge-points gives me just an empty list in return. ``` { "data": [], "meta": { "itemCount": 0, "currentPage": 0, "perPage": 10, "totalPageCount": 0, "totalItemCount": 0 } } ``` Using my browser I can see the charge-point just fine, both in the old portal and the new Monta hub, and it also shows up on the app, both Norlys Opladning 2.0 and the ol' faithful Monta app, so I should have access. When I try to guess the ID of my charger (there's really only two numbers I can find) and ask specifically about that, I get a message telling me that user 5004 does not have access to the charge point. ``` { "status": "FORBIDDEN", "message": "User with ID `50xx` has no access to Charge Point with ID `274xxx`.", "readableMessage": "Forbidden", "errorCode": "ACCESS_FORBIDDEN", "context": null } ``` If I GET charge-transactions I can see a list of transactions too long to paste in here, so something appears to be working. I found an [https://docs.public-api.monta.com/discuss/649546ae60e41400410e52e2]\(earlier discussion about non-personal chargers not being visible via this API) from 8 months ago, but it also looked like the limitation was lifted at that point. I was really hoping to keep the same openness after the switch as before, so I hope this is me doing something wrong and not a limitation in the API, and that someone can point me to what my problem is.

Charging cost start at a (high) random number

Sinde the last few days I have experienced that when I start a charge through the API the field "cost" is populated with a high, random number. After one reading the number goes down to normal again. Seems like there is a spike in the beginning of the charge session.

New status after 'charge stop' request'

Hi, I am controlling my charger through the API, and start the charge every day at 00:05 and stop it at 07:55. The car prioritizes the charge between 02:00 and 04:00, for the ultra-low EV tariff, but using the whole 7:50h period if needed. Until now, after running the 'stop charge' request, the new status of the charger was **`available`**, but it is now **`busy-non-released`** This is the API call I use to stop the charge: ``` curl -s --request POST --url 'https://public-api.monta.com/api/v1/charges/<ChargeSessionId>/stop' \ --header 'accept: application/json' --header 'content-type: application/json' \ --header 'authorization: Bearer <TOKEN>' ``` It worked fine until now, because after that call, the new status for the charger was **`available`**, ``` { "id": *******, "createdAt": "2023-04-24T09:04:57Z", "updatedAt": "2024-01-06T11:18:40Z", "serialNumber": "*******", "name": "************", "visibility": "private", "maxKW": 7.4, "maxKw": 7.4, "type": "ac", "note": null, "state": "available", "location": { "coordinates": { "latitude": 00.000000, "longitude": 0.0000000 }, "address": null }, "connectors": [ { "identifier": "type2", "name": "Type 2" } ], "lastMeterReadingKwh": 3666.186, "cablePluggedIn": true, "brandName": "SyncEV", "modelName": "SyncEV - BG", "firmwareVersion": "AC7K-88071-V3.05" } ``` But it is now **`busy-non-released`** ``` { "id": *******, "createdAt": "2023-04-24T09:04:57Z", "updatedAt": "2024-02-02T09:54:57Z", "serialNumber": "*******", "name": "************", "visibility": "private", "maxKW": 7.4, "maxKw": 7.4, "type": "ac", "note": null, "state": "busy-non-released", "location": { "coordinates": { "latitude": 00.000000, "longitude": 0.0000000 }, "address": null }, "connectors": [ { "identifier": "type2", "name": "Type 2" } ], "lastMeterReadingKwh": 4071.03, "cablePluggedIn": true, "brandName": "SyncEV", "modelName": "SyncEV - BG", "firmwareVersion": "AC7K-88071-V3.05" } ``` The problem with this is that when I try to start the charge again I get this: ``` { "status": "PRECONDITION_FAILED", "message": "Charge point cannot start: not available", "readableMessage": "Charge point cannot start: not available", "errorCode": "CHARGING_CHARGEPOINT_NOT_AVAILABLE", "context": null } ``` So, in short, at some point between `2024-02-01 / 00:05 UTC` (last time I was able to start the charge with the API) and `2024-02-02 / 00:05 UTC` (first time I tried and it failed) the status of the charger after stopping has changed. What is the problem with this? That we are forced to unplug and plug back again the car before we can start a new charge again. And that can be a problem. Any solution for this? Thanks

Alternate input parameters for /api/v1/auth/token

Hello, we are further developing our app Elly to use your Public API. We believe that ClientId and ClientSecret are difficult to handle for normal users through copy/paste. We think that /api/v1/auth/token should be able to be called with email/phonenumber and a password, like we do in your app and your portal. This way it would be much easier to give our users a smoother way of signing up for your Public API. What is your opinion on this? Best regards Esben Rud Nielsen, NetBryggeriet, Denmark