{"id":15657785,"url":"https://github.com/pythonicninja/mevo","last_synced_at":"2025-07-13T20:35:53.819Z","repository":{"id":141913944,"uuid":"178254526","full_name":"PythonicNinja/mevo","owner":"PythonicNinja","description":"mevo app decompiled","archived":false,"fork":false,"pushed_at":"2019-03-28T23:37:52.000Z","size":15795,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T02:23:20.876Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PythonicNinja.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-28T17:45:15.000Z","updated_at":"2020-02-09T02:43:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"2be9f307-719a-4920-b788-a9380bac68d4","html_url":"https://github.com/PythonicNinja/mevo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PythonicNinja/mevo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PythonicNinja%2Fmevo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PythonicNinja%2Fmevo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PythonicNinja%2Fmevo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PythonicNinja%2Fmevo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PythonicNinja","download_url":"https://codeload.github.com/PythonicNinja/mevo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PythonicNinja%2Fmevo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265200649,"owners_count":23726865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T13:09:44.608Z","updated_at":"2025-07-13T20:35:53.793Z","avatar_url":"https://github.com/PythonicNinja.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mevo\nMevo app decompiled and it's API analyzed.\n\nTable of contents:\n- [login](#login)\n- [how to reserve bike programatically](#how-to-reserve-bike-programatically)\n- [interesting api routes](#interesting-api-routes)\n- [other parts of the code with constants](#other-parts-of-the-code-with-constants)\n- [links](#links)\n\n# links\n- https://play.google.com/store/apps/details?id=com.mevo.app\n- https://rowermevo.pl/\n\n# interesting api routes\nhttps://mevo-api.nextbike.net/maps/nextbike-live.xml\n\nthere is scrapper for live maps so that map analysis can be performed how bikes moved across the infrastructure\nCrontab rule\n`$ crontab -e`\n```\n*/2   *       *       *       *       cd /path_to_poject/mevo/maps \u0026\u0026 python3 daily.py  \u003e\u003e output.log 2\u003e\u00261\n```\n\n# login\n\n```\ncurl -X POST \\\n  https://mevo-api.nextbike.net/api/login.xml \\\n  -H 'Cache-Control: no-cache' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\t\"api_key\": \"2QwXmCM6h7p6DMeE\",\n\t\"domain\": \"tc\",\n\t\"mobile\": \"\u003cphonenumber\u003e\",\n\t\"pin\": \"\u003cpin\u003e\"\n}'\n\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cnextbike version=\"1.0\" server_time=\"1553557835\" \u003e\n    \u003cuser mobile=\"\u003cphonenumber\u003e\" loginkey=\"\u003cimportant_token\u003e\" rfid_uids=\"\" active=\"0\" lang=\"PL\" domain=\"tc\" currency=\"PLN\" credits=\"0\" free_seconds=\"0\" payment=\"cs\" team_owner=\"0\" team_id=\"0\" max_bikes=\"1\" screen_name=\"\u003cname\u003e\" newsletter=\"0\" accepted_terms=\"tc\" needs_email_verification=\"0\" required_actions=\"activate_account\" is_vcn_active=\"0\" is_swift_active=\"0\" data_daily_reservations=\"[]\" data_daily_reservations_last_update=\"\" data_subscription_purchase_timestamp=\"1552651627\" pesel=\"\u003cpesel\u003e\" /\u003e\n    \u003caccount server_time=\"\" /\u003e\n\u003c/nextbike\u003e\n```\n\n`loginkey` is most important from above response\n\n\n# how to reserve bike programatically\n\n1. obtain loginkey from above\n2. obtain place\n3. obtain start_time\n4. obtain end_time\n5. make api_call\n\n```\ncurl -X POST \\\n  https://mevo-api.nextbike.net/api/booking.xml \\\n  -H 'Cache-Control: no-cache' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\t\"apikey\": \"2QwXmCM6h7p6DMeE\",\n\t\"loginkey\": \"\u003clogin_key\u003e\",\n\t\"num_bikes\": 1,\n\t\"place\": \"11121753\",\n\t\"start_time\": 1553814199, # this needs to be synced with server_time + 3 seconds at least as in source\n\t\"end_time\": 1553814925 # this can be max start_time + 900 (s) - 900 / 60 = 15min\n}'\n```\nas a result you will get:\n```\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cnextbike version=\"1.0\" server_time=\"1553814100\" \u003e\n    \u003cbooking id=\"102295\" biketypes=\"[]\" place_id=\"11121753\" place_name=\"10100\" lat=\"54.445355\" lng=\"18.570946\" spot=\"1\" start_time=\"1553814125\" end_time=\"1553814925\" num_bikes=\"1\" booked=\"1\" max_bookingtime_before_rental=\"0\" state=\"\" state_id=\"0\" cust_id=\"4326798\" booking_code=\"711805\" price=\"0\" price_service=\"0\" confirm=\"1\" used_free_seconds=\"0\" /\u003e\n\u003c/nextbike\u003e\n```\n\n\n# other parts of the code with constants\n\n```\npackage com.mevo.app.constants;\n\npublic class Servers {\n    public static final String API_EXTENDED_PUSH_NODE_URL = \"v1/send-push\";\n    public static final String API_EXTENDED_URL_PROD = \"http://apiapp.veturilo.net.pl/\";\n    public static final String API_NEXTBIKE_MAP_PROD = \"https://mevo-maps.nextbike.net/\";\n    public static final String API_NEXTBIKE_MAP_STG = \"https://px-15.nextbike.net/\";\n    public static final String API_NEXTBIKE_PROD = \"https://mevo-api.nextbike.net\";\n    public static final String API_NEXTBIKE_STG = \"https://px-15.nextbike.net/\";\n    public static final String EXTENDED_API_SYSTEM_ID = \"mevo\";\n    public static final String MEVO_HEATMAP_KEY = \"96dfb8fb4fb9\";\n    public static final String MEVO_REPORTS_KEY = \"PAu8qBmuT9iH5pWs=\";\n    public static final String NEXTBIKE_APIKEY_PROD = \"2QwXmCM6h7p6DMeE\";\n    public static final String NEXTBIKE_APIKEY_STG = \"2QwXmCM6h7p6DMeE\";\n    public static final String POLLS_APIKEY = \"AQKEbjwK5syQW6Ff\";\n}\n\n```\n\n\n```\npublic static class CONFIG_DEBUG extends AppConfig {\n        public CONFIG_DEBUG() {\n            this.isRelease = true;\n            this.apiNextbikeUrl = \"https://px-15.nextbike.net/\";\n            this.apikeyNextbike = \"2QwXmCM6h7p6DMeE\";\n            this.apiNextbikeMapUrl = \"https://px-15.nextbike.net/\";\n            this.domain = Domains.DOMAIN_MEVO;\n            this.bikeDomains = Collections.singletonList(Domains.DOMAIN_MEVO);\n            this.apiExtendedUrl = Servers.API_EXTENDED_URL_PROD;\n            this.fabricEnabled = false;\n            this.loggerEnabled = true;\n            this.serverSwitchAvailable = false;\n            this.returnMaxDistanceMeters = 700000.0d;\n            this.rentMaxDistanceMeters = 700000.0d;\n            this.cacheEnabled = true;\n        }\n    }\n\n    public static class CONFIG_RELEASE_PROD extends AppConfig {\n        public CONFIG_RELEASE_PROD() {\n            this.isRelease = true;\n            this.apiNextbikeUrl = Servers.API_NEXTBIKE_PROD;\n            this.apikeyNextbike = \"2QwXmCM6h7p6DMeE\";\n            this.apiNextbikeMapUrl = Servers.API_NEXTBIKE_MAP_PROD;\n            this.domain = Domains.DOMAIN_MEVO;\n            this.bikeDomains = Collections.singletonList(Domains.DOMAIN_MEVO);\n            this.apiExtendedUrl = Servers.API_EXTENDED_URL_PROD;\n            this.fabricEnabled = true;\n            this.loggerEnabled = false;\n            this.serverSwitchAvailable = false;\n            this.returnMaxDistanceMeters = 30.0d;\n            this.rentMaxDistanceMeters = 75.0d;\n            this.cacheEnabled = true;\n        }\n    }\n\n    public static class CONFIG_RELEASE_STG extends CONFIG_RELEASE_PROD {\n        public CONFIG_RELEASE_STG() {\n            this.apiNextbikeUrl = \"https://px-15.nextbike.net/\";\n            this.apikeyNextbike = \"2QwXmCM6h7p6DMeE\";\n            this.apiNextbikeMapUrl = \"https://px-15.nextbike.net/\";\n            this.domain = Domains.DOMAIN_MEVO;\n            this.bikeDomains = Collections.singletonList(Domains.DOMAIN_MEVO);\n        }\n    }\n```\n\n\n```\npublic interface ApiExtended {\n    @FormUrlEncoded\n    @POST(\"v1/confirm-user\")\n    Call\u003cResponseTrackUser\u003e confirmUser(@Field(\"system_id\") String str, @Field(\"phone\") String str2);\n\n    @GET(\"v1/version-check\")\n    Call\u003cVersionCheck\u003e getCurrentAppVersion();\n\n    @POST(\"https://noweapi.nextbike.pl/api/rental/distance\")\n    Call\u003cResponseRentalsDistances\u003e getDistanceForRentals(@Body RequestArgsRentalsDistances requestArgsRentalsDistances);\n\n    @GET(\"https://mapaciepla.rowermevo.pl/api/rental/positions.json\")\n    Call\u003cResponseRentalBasedPositions\u003e getRentalBasedPositions(@Query(\"shared_key\") String str, @Query(\"rental_id\") String str2);\n\n    @GET(\"https://maps.googleapis.com/maps/api/directions/json\")\n    Call\u003cResponseGoogleRoute\u003e getRoute(@Query(\"key\") String str, @Query(\"origin\") String str2, @Query(\"destination\") String str3, @Query(\"mode\") String str4);\n\n    @POST(\"https://raporty.rowermevo.pl/api/callbacks/issue\")\n    Call\u003cResponseReportResult\u003e sendErrorReport(@Query(\"shared_key\") String str, @Body MevoErrorReport mevoErrorReport);\n\n    @GET(\"v1/send-push-settings\")\n    Call\u003cResponseShouldRegisterForPushMessages\u003e shouldRegisterForPushMessages();\n\n    @FormUrlEncoded\n    @POST(\"v1/update-user\")\n    Call\u003cResponseTrackUser\u003e updateUser(@Field(\"system_id\") String str, @Field(\"phone\") String str2, @Field(\"firstname\") String str3, @Field(\"lastname\") String str4, @Field(\"email\") String str5, @Field(\"street\") String str6, @Field(\"post_code\") String str7, @Field(\"newsletter\") boolean z, @Field(\"pesel\") String str8, @Field(\"status\") int i, @Field(\"consent_1\") Boolean bool, @Field(\"consent_2\") Boolean bool2, @Field(\"consent_3\") Boolean bool3, @Field(\"consent_4\") Boolean bool4, @Field(\"consent_5\") Boolean bool5, @Field(\"consent_6\") Boolean bool6);\n}\n```\n\n\n\n```\npublic interface ApiNextbike {\n    @FormUrlEncoded\n    @POST(\"api/acceptAgreement.xml\")\n    Call\u003cResponseAgreementAccept\u003e acceptAgreement(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"agreement_id\") int i);\n\n    @FormUrlEncoded\n    @POST(\"api/booking.xml\")\n    Call\u003cResponseBookBike\u003e bookBike(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"num_bikes\") int i, @Field(\"place\") String str3, @Field(\"start_time\") Long l, @Field(\"end_time\") Long l2);\n\n    @FormUrlEncoded\n    @POST(\"api/cancelBooking.xml\")\n    Call\u003cResponseCancelBooking\u003e cancelBooking(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"booking_id\") int i, @Field(\"show_errors\") int i2);\n\n    @FormUrlEncoded\n    @POST(\"api/checkAgreement.xml\")\n    Call\u003cResponseAgreement\u003e checkAgreement(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"agreement_id\") int i);\n\n    @GET(\"api/list.xml\")\n    Call\u003cResponseHistory\u003e fetchHistory(@Query(\"apikey\") String str, @Query(\"loginkey\") String str2, @Query(\"limit\") Integer num, @Query(\"offset\") Integer num2);\n\n    @GET(\"api/list.xml\")\n    @Headers({\"Cache-Control: no-cache\"})\n    Call\u003cResponseHistory\u003e fetchHistoryNoCache(@Query(\"apikey\") String str, @Query(\"loginkey\") String str2, @Query(\"limit\") Integer num, @Query(\"offset\") Integer num2);\n\n    @FormUrlEncoded\n    @POST(\"api/activeBookings.xml\")\n    Call\u003cResponseActiveBookings\u003e getActiveBookings(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2);\n\n    @FormUrlEncoded\n    @POST(\"api/getAgreementDataForDomain.xml\")\n    Call\u003cResponseAgreementForDomain\u003e getAgreementForDomain(@Field(\"apikey\") String str, @Field(\"domain\") String str2);\n\n    @FormUrlEncoded\n    @POST(\"api/getBikeState.xml\")\n    Call\u003cResponseBikeState\u003e getBikeState(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"bike\") String str3);\n\n    @FormUrlEncoded\n    @POST(\"api/bikesAvailableToBook.xml\")\n    Call\u003cResponseReturnBike\u003e getBikesAvailableToBook(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"place\") int i);\n\n    @GET(\"api/getPlaceDetails.xml\")\n    Call\u003cResponseStationBikes\u003e getBikesForStation(@Query(\"apikey\") String str, @Query(\"loginkey\") String str2, @Query(\"place\") int i);\n\n    @FormUrlEncoded\n    @POST(\"api/list.xml\")\n    Call\u003cResponseUserDetails\u003e getCredits(@Field(\"apikey\") String str, @Field(\"limit\") int i, @Field(\"loginkey\") String str2);\n\n    @FormUrlEncoded\n    @POST(\"api/getOpenRentals.xml\")\n    Call\u003cResponseOpenRentals\u003e getCurrentRentals(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2);\n\n    @FormUrlEncoded\n    @POST(\"api/getErrorTreeAsJson.xml\")\n    Call\u003cResponseBody\u003e getErrorsList(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2);\n\n    @FormUrlEncoded\n    @POST(\"api/getFlexzones.xml\")\n    Call\u003cResponseFlexzones\u003e getFlexzones(@Field(\"apikey\") String str, @Field(\"domain\") String str2);\n\n    @FormUrlEncoded\n    @POST(\"api/getPaymentForm.xml\")\n    Call\u003cResponsePaymentForm\u003e getPaymentForm(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2);\n\n    @FormUrlEncoded\n    @POST(\"api/getPaymentForm.xml\")\n    Call\u003cResponsePaymentForm\u003e getPaymentForm(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"amount\") Integer num);\n\n    @GET(\"api/getPaymentLinks.xml\")\n    Call\u003cResponsePaymentLink\u003e getPaymentList(@Query(\"apikey\") String str, @Query(\"loginkey\") String str2);\n\n    @FormUrlEncoded\n    @POST(\"api/getRedeems.xml\")\n    Call\u003cResponsePurchasedTariffs\u003e getPurchasedTariffs(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2);\n\n    @FormUrlEncoded\n    @POST(\"api/tariffs.xml\")\n    Call\u003cResponseTariffs\u003e getTariffs(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"domain\") String str3, @Field(\"language\") String str4);\n\n    @FormUrlEncoded\n    @POST(\"api/getUserDetails.xml\")\n    Call\u003cResponseUserDetails\u003e getUserDetails(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2);\n\n    @FormUrlEncoded\n    @POST(\"api/login.xml\")\n    Call\u003cResponseLogin\u003e login(@Field(\"apikey\") String str, @Field(\"mobile\") String str2, @Field(\"pin\") String str3, @Field(\"domain\") String str4);\n\n    @FormUrlEncoded\n    @POST(\"api/updateUser.xml\")\n    Call\u003cResponseUpdateUser\u003e newsletterAgreement(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"newsletter\") int i);\n\n    @FormUrlEncoded\n    @POST(\"api/voucher.xml\")\n    Call\u003cResponsePurchaseVoucher\u003e purchaseVoucher(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"code\") String str3);\n\n    @FormUrlEncoded\n    @POST(\"api/pinRecover.xml\")\n    Call\u003cResponseRecoverPin\u003e recoverPin(@Field(\"apikey\") String str, @Field(\"mobile\") String str2, @Field(\"domain\") String str3);\n\n    @FormUrlEncoded\n    @POST(\"api/register.xml\")\n    Call\u003cResponseRegister\u003e register(@Field(\"apikey\") String str, @Field(\"mobile\") String str2, @Field(\"domain\") String str3, @Field(\"email\") String str4, @Field(\"forename\") String str5, @Field(\"name\") String str6, @Field(\"address\") String str7, @Field(\"zip\") String str8, @Field(\"city\") String str9, @Field(\"country\") String str10, @Field(\"language\") String str11, @Field(\"pesel\") String str12, @Field(\"newsletter\") int i, @Field(\"show_errors\") int i2);\n\n    @FormUrlEncoded\n    @POST(\"api/rent.xml\")\n    Call\u003cResponseRentBike\u003e rentBike(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"bike\") String str3, @Field(\"callback_rent\") String str4, @Field(\"callback_return\") String str5);\n\n    @GET(\"api/rentalBreak.xml\")\n    @Headers({\"Cache-Control: no-cache\"})\n    Call\u003cResponseReturnBike\u003e rentalBreak(@Query(\"apikey\") String str, @Query(\"loginkey\") String str2, @Query(\"rental\") String str3, @Query(\"end\") Boolean bool, @Query(\"lat\") String str4, @Query(\"lng\") String str5);\n\n    @FormUrlEncoded\n    @POST(\"api/return.xml\")\n    Call\u003cResponseReturnBike\u003e returnBikeAtStation(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"bike\") String str3, @Field(\"place\") int i, @Field(\"show_errors\") int i2);\n\n    @FormUrlEncoded\n    @POST(\"api/return.xml\")\n    Call\u003cResponseReturnBike\u003e returnBikeOutsideStation(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"bike\") String str3, @Field(\"place_name\") String str4, @Field(\"lat\") String str5, @Field(\"lng\") String str6, @Field(\"accuracy\") String str7, @Field(\"do_calc_auto_service_fee\") int i, @Field(\"show_errors\") int i2);\n\n    @FormUrlEncoded\n    @POST(\"api/sendErrorReport.xml\")\n    Call\u003cResponseReportProblem\u003e sendErrorReport(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"maincategory\") String str3, @Field(\"reports\") String str4, @Field(\"number\") Integer num, @Field(\"message\") String str5, @Field(\"date\") String str6, @Field(\"lat\") String str7, @Field(\"lng\") String str8);\n\n    @FormUrlEncoded\n    @POST(\"api/setCustomerRfid.xml\")\n    Call\u003cResponseCustomerRfid\u003e setCustomerRfid(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"rfid\") int i);\n\n    @FormUrlEncoded\n    @POST(\"api/updateUser.xml\")\n    Call\u003cResponseUpdateUser\u003e updateSubscriptionExtraData(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"data_daily_reservations\") String str3, @Field(\"data_daily_reservations_last_update\") long j, @Field(\"data_daily_subscription_seconds_used\") long j2, @Field(\"data_subscription_purchase_timestamp\") long j3);\n\n    @FormUrlEncoded\n    @POST(\"api/updateUser.xml\")\n    Call\u003cResponseUpdateUser\u003e updateUser(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"email\") String str3, @Field(\"forename\") String str4, @Field(\"name\") String str5, @Field(\"address\") String str6, @Field(\"zip\") String str7, @Field(\"city\") String str8, @Field(\"country\") String str9, @Field(\"language\") String str10, @Field(\"pesel\") String str11, @Field(\"data_consent_a\") String str12, @Field(\"data_consent_b\") String str13, @Field(\"data_consent_c\") String str14, @Field(\"data_consent_d\") String str15, @Field(\"data_consent_e\") String str16, @Field(\"data_consent_f\") String str17);\n\n    @FormUrlEncoded\n    @POST(\"api/updateUser.xml\")\n    Call\u003cResponseUpdateUser\u003e updateUserBookingHistory(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"data_daily_reservations\") String str3, @Field(\"data_daily_reservations_last_update\") long j, @Field(\"data_daily_subscription_seconds_used\") long j2);\n\n    @FormUrlEncoded\n    @POST(\"api/updateUser.xml\")\n    Call\u003cResponseUpdateUser\u003e updateUserInMyAccount(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"email\") String str3, @Field(\"forename\") String str4, @Field(\"name\") String str5, @Field(\"address\") String str6, @Field(\"zip\") String str7, @Field(\"city\") String str8, @Field(\"country\") String str9, @Field(\"mobile\") String str10, @Field(\"pesel\") String str11);\n\n    @FormUrlEncoded\n    @POST(\"api/updateUser.xml\")\n    Call\u003cResponseUpdateUser\u003e updateUserLanguage(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"language\") String str3);\n\n    @FormUrlEncoded\n    @POST(\"api/updateUser.xml\")\n    Call\u003cResponseUpdateUser\u003e updateUserReports(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"data_battery_reports\") String str3);\n}\n```\n\n```\npublic interface ApiNextbikeJson {\n    @FormUrlEncoded\n    @POST(\"api/getBikeState.json\")\n    Call\u003cResponseBikeStateJson\u003e getBikeState(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"bike\") String str3);\n\n    @GET(\"api/getPlaceDetails.json\")\n    Call\u003cResponseStationDetails\u003e getStationDetails(@Query(\"apikey\") String str, @Query(\"loginkey\") String str2, @Query(\"place\") int i);\n\n    @FormUrlEncoded\n    @POST(\"api/sendErrorReport.json\")\n    Call\u003cResponseReportProblem\u003e sendBatteryReport(@Field(\"apikey\") String str, @Field(\"loginkey\") String str2, @Field(\"maincategory\") String str3, @Field(\"reports\") String str4, @Field(\"number\") Integer num, @Field(\"date\") String str5);\n}\n```\n\n```\npublic interface ApiNextbikeMap {\n    @GET(\"maps/nextbike-live.xml\")\n    Call\u003cResponseStationsData\u003e getStationsData(@Query(\"domains\") String str, @Query(\"lat\") Double d, @Query(\"lng\") Double d2, @Query(\"distance\") Integer num);\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythonicninja%2Fmevo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpythonicninja%2Fmevo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythonicninja%2Fmevo/lists"}