auth_me
ChatGPT[READ] Current account settings (GET /api/auth/me). Requires OAuth/Bearer authorization. Returns only settings needed for vehicle workflows: currency_id — the user's preferred display/reporting currency — plus country, language, fuel consumption unit, quantity unit, and the currently selected vehicle_id. No profile identity fields are returned. Use this together with monetary log tools: each log row can be in a different currency, so read currency_id from auth_me, fetch ridelogger://reference/currencies, convert row amounts to one currency, then aggregate. Errors: 401 if token missing/expired.
charge_logs_create
ChatGPT[WRITE] Create charge log (POST .../charge_logs). Requires OAuth/Bearer authorization. ChargeLogStoreRequest: amount, currency_id, mileage, date (YYYY-MM-DD), and energy are required. Provide energy in kWh; optional unit_price can be included when known, otherwise the API computes it from amount / energy. Optional energy_unit_id, charge_type_id, uuid. Optional geolocation: business_name, business_address, latitude, longitude; rating (1-5 stars, optional). Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
charge_logs_delete
ChatGPT[WRITE] Delete charge log (DELETE .../charge_logs/{charge_log_id}). vehicle_log id. Requires OAuth/Bearer authorization.
charge_logs_get
ChatGPT[READ] Get one charge log (GET .../charge_logs/{charge_log_id}). vehicle_log id. Requires OAuth/Bearer authorization. Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
charge_logs_list
ChatGPT[READ] List charge logs for a vehicle (GET /api/vehicles/{vehicle_id}/charge_logs). Requires OAuth/Bearer authorization. Optional page for pagination. Filters (query params, combined with AND): date_from -> from, date_to -> to (Y-m-d, inclusive), currency_id, charge_type_id. Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
charge_logs_update
ChatGPT[WRITE] Update charge log (PUT .../charge_logs/{charge_log_id}). vehicle_log id. Optional ChargeLogUpdateRequest fields + vehicle log amount, currency_id, mileage, date. Optional geolocation: business_name, business_address, latitude, longitude; rating (1-5 stars, optional). Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
expense_logs_create
ChatGPT[WRITE] Create expense log (POST .../expense_logs). Requires OAuth/Bearer authorization. ExpenseLogStoreRequest: amount, currency_id, mileage, expense_type_id, title; plus date (Y-m-d) for vehicle log; optional description, uuid. Optional geolocation: business_name, business_address, latitude, longitude; rating (1-5 stars, optional). Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
expense_logs_delete
ChatGPT[WRITE] Delete expense log (DELETE .../expense_logs/{expense_log_id}). Requires OAuth/Bearer authorization.
expense_logs_get
ChatGPT[READ] Get one expense log (GET .../expense_logs/{expense_log_id}). Requires OAuth/Bearer authorization. Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
expense_logs_list
ChatGPT[READ] List expense logs for a vehicle (GET /api/vehicles/{vehicle_id}/expense_logs). Requires OAuth/Bearer authorization. Optional page. Filters: date_from -> from, date_to -> to (Y-m-d, inclusive), currency_id, expense_type_id. Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
expense_logs_update
ChatGPT[WRITE] Update expense log (PUT .../expense_logs/{expense_log_id}). Requires OAuth/Bearer authorization. Optional: amount, currency_id, mileage, expense_type_id (ExpenseLogUpdateRequest); optional title, description, date (controller merges vehicle log + expense row). Optional geolocation: business_name, business_address, latitude, longitude; rating (1-5 stars, optional). Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
fuel_logs_create
ChatGPT[WRITE] Create fuel log (POST .../fuel_logs). Requires OAuth/Bearer authorization. Validated fields include FuelLogStoreRequest (amount, currency_id, unit, mileage, fuel_type_id) plus date (Y-m-d) for the vehicle log row; optional unit_price, uuid. Optional unit_id (fuel quantity unit — GET /api/fuel_units): when omitted, API defaults from the user's quantity preference then vehicle fuel unit. Optional geolocation: business_name, business_address, latitude, longitude; rating (1-5 stars, optional). Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
fuel_logs_delete
ChatGPT[WRITE] Delete fuel log (DELETE .../fuel_logs/{fuel_log_id}). Requires OAuth/Bearer authorization.
fuel_logs_get
ChatGPT[READ] Get one fuel log (GET .../fuel_logs/{fuel_log_id}). Requires OAuth/Bearer authorization. Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
fuel_logs_list
ChatGPT[READ] List fuel logs for a vehicle (GET /api/vehicles/{vehicle_id}/fuel_logs). Requires OAuth/Bearer authorization. Optional page for pagination. Filters (passed as query params to the API, combined with AND): date_from -> from, date_to -> to (Y-m-d, inclusive bounds), currency_id, fuel_type_id. Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
fuel_logs_update
ChatGPT[WRITE] Update fuel log (PUT .../fuel_logs/{fuel_log_id}). Requires OAuth/Bearer authorization. Optional fields per FuelLogUpdateRequest (fuel row) plus vehicle log fields amount, currency_id, mileage, date. Optional geolocation: business_name, business_address, latitude, longitude; rating (1-5 stars, optional). Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
generic_vehicle_logs_delete
ChatGPT[WRITE] Delete a generic vehicle log row (DELETE /api/vehicles/{vehicle_id}/vehicle_logs/{vehicle_log_id}). Requires OAuth/Bearer authorization. Returns 202 on success.
generic_vehicle_logs_list
ChatGPT[READ] List all vehicle log entries for a vehicle (fuel, service, expense) — GET /api/vehicles/{vehicle_id}/vehicle_logs. Requires OAuth/Bearer authorization. Filters (passed as query params, combined with AND): date_from -> from, date_to -> to (Y-m-d, inclusive bounds), currency_id. Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
reference_data_refresh
ChatGPT[WRITE] Reload the MCP server's cached reference datasets from the RideLogger API (countries, currencies, etc.). This changes only the server-side cache state — it never reads or modifies any user records. The currencies dataset is needed to convert monetary log rows (each has currency_id) to a single display currency — typically the user's currency_id from auth_me. Does not require user authorization. Use after TTL or when data seems stale.
reminder_complete
ChatGPT[WRITE] Mark reminder complete; recurring creates next (POST .../reminders/{reminder_id}/complete).
reminder_create
ChatGPT[WRITE] Create reminder (POST /api/vehicles/{vehicle_id}/reminders). Built-in slots (reminder_slot_id): 1=Technical inspection, 2=Oil change, 3=Tire swap (summer), 4=Tire swap (winter), 5=Brake check. ALWAYS use a matching slot when the user's request fits one of these 5 categories. Custom reminders may not be available for every account; if unavailable, the API returns a permission error. alarm_type_id: 1=DATE requires target_date, 2=MILEAGE requires target_mileage, 3=ANY requires both target_date and target_mileage. Optional interval_* for recurring.
reminder_delete
ChatGPT[WRITE] Delete reminder (DELETE .../reminders/{reminder_id}). Confirmation recommended.
reminder_list
ChatGPT[READ] List reminders for a vehicle (GET /api/vehicles/{vehicle_id}/reminders). Optional status filter must be one of: active, passed, canceled, completed. Requires OAuth/Bearer authorization.
reminder_list_user
ChatGPT[READ] List reminders for the authenticated user across vehicles (GET /api/user/reminders). Optional status filter must be one of: active, passed, canceled, completed.
reminder_show
ChatGPT[READ] Get one reminder (GET /api/vehicles/{vehicle_id}/reminders/{reminder_id}).
reminder_slots_list
ChatGPT[READ] List built-in reminder slots (GET /api/reminder_slots). Public reference data: slug, default alarm type, default intervals.
reminder_update
ChatGPT[WRITE] Update custom reminder name/description only (PUT /api/vehicles/{vehicle_id}/reminders/{reminder_id}).
service_logs_create
ChatGPT[WRITE] Create service log (POST .../service_logs). Requires OAuth/Bearer authorization. ServiceLogStoreRequest: amount, currency_id, mileage, service_type_id, title; plus date (Y-m-d) for vehicle log; optional description, uuid. Optional geolocation: business_name, business_address, latitude, longitude; rating (1-5 stars, optional). Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
service_logs_delete
ChatGPT[WRITE] Delete service log (DELETE .../service_logs/{service_log_id}). Requires OAuth/Bearer authorization.
service_logs_get
ChatGPT[READ] Get one service log (GET .../service_logs/{service_log_id}). Requires OAuth/Bearer authorization. Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
service_logs_list
ChatGPT[READ] List service logs for a vehicle (GET /api/vehicles/{vehicle_id}/service_logs). Requires OAuth/Bearer authorization. Optional page. Filters: date_from -> from, date_to -> to (Y-m-d, inclusive), currency_id, service_type_id. Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
service_logs_update
ChatGPT[WRITE] Update service log (PUT .../service_logs/{service_log_id}). Requires OAuth/Bearer authorization. Optional: amount, currency_id, mileage, service_type_id, title, description, date (per API controller). Optional geolocation: business_name, business_address, latitude, longitude; rating (1-5 stars, optional). Money: logs are multi-currency — each row has its own currency_id, and amount / total are in that row's currency. Do not sum raw numbers across rows without converting. Call auth_me for the user's preferred currency_id (account settings), use MCP resource ridelogger://reference/currencies (or GET /api/currencies) for codes and exchange value fields, then normalize every row to one target currency before aggregating or comparing totals. Each log row includes resolved reference objects alongside raw IDs: fuel_type {id,name} (fuel logs), charge_type {id,name} (charge logs), service_type {id,name} (service logs), expense_type {id,name} (expense logs), unit_label (fuel unit name string), energy_unit_label (charge logs), currency_info {id,code,name,symbol}. Null when the field does not apply to the log type.
user_avatar_upload
ChatGPT[WRITE] Upload or replace the authenticated user's profile avatar (POST /api/avatar). Requires OAuth/Bearer authorization. Exactly one of: (1) chat_upload_id — UUID from AI chat attachment (ai_chat_uploaded_files), (2) file_base64 + file_name. When using chat_upload_id, the image is taken from the chat upload — no binary data needed. Returns the updated user profile on success.
vehicle_cabinet_create
ChatGPT[WRITE] Upload a cabinet document (POST /api/vehicles/{vehicle_id}/cabinet-documents). Multipart: title, document_category, optional description/issued_at/expires_at, cabinet_file. Provide exactly one file source: chat_upload_id or file_base64 + file_name.
vehicle_cabinet_delete
ChatGPT[WRITE] Delete cabinet document (DELETE .../cabinet-documents/{document_id}). Requires OAuth/Bearer authorization.
vehicle_cabinet_download
ChatGPT[READ] Download cabinet file bytes (GET /api/vehicles/{vehicle_id}/cabinet-documents/{document_id}/download). Returns JSON with base64, content_type, filename_hint.
vehicle_cabinet_get
ChatGPT[READ] Show one cabinet document metadata (GET /api/vehicles/{vehicle_id}/cabinet-documents/{document_id}). Requires OAuth/Bearer authorization.
vehicle_cabinet_list
ChatGPT[READ] List cabinet documents for a vehicle (GET /api/vehicles/{vehicle_id}/cabinet-documents). Requires OAuth/Bearer authorization.
vehicle_cabinet_update
ChatGPT[WRITE] Update cabinet document metadata and/or replace file (PUT /api/vehicles/{vehicle_id}/cabinet-documents/{document_id}). Optional file_base64 + file_name for cabinet_file.
vehicle_images_create
ChatGPT[WRITE] Upload a gallery image (POST /api/vehicles/{vehicle_id}/images). Requires OAuth/Bearer authorization. Exactly one of: (1) chat_upload_id — UUID from AI chat attachment (ai_chat_uploaded_files), (2) file_base64 + file_name. When using chat_upload_id, send form field chat_upload_id only (no binary).
vehicle_images_delete
ChatGPT[WRITE] Delete gallery image (DELETE .../images/{image_id}). Requires OAuth/Bearer authorization.
vehicle_images_get
ChatGPT[READ] Download one gallery image (GET /api/vehicles/{vehicle_id}/images/{image_id}). Requires OAuth/Bearer authorization. Returns JSON with base64, content_type, filename_hint.
vehicle_images_list
ChatGPT[READ] List gallery images for a vehicle (GET /api/vehicles/{vehicle_id}/images). Requires OAuth/Bearer authorization.
vehicle_log_files_delete
ChatGPT[WRITE] Delete one attachment by media uuid (DELETE .../delete_files/{uuid}). Requires OAuth/Bearer authorization.
vehicle_log_files_download
ChatGPT[READ] Download attachment bytes as base64 (GET .../download_files/{uuid}). Requires OAuth/Bearer authorization.
vehicle_log_files_list
ChatGPT[READ] List file attachments on a vehicle log (GET .../vehicle_logs/{vehicle_log_id}/get_files). Requires OAuth/Bearer authorization.
vehicle_log_files_upload
ChatGPT[WRITE] Upload attachment via multipart (POST .../put_files). Field name vehicle_log_file for binary. Requires OAuth/Bearer authorization. Exactly one of: chat_upload_id (AI chat attachment UUID), or file_base64 + file_name. Some accounts allow a limited number of attachments per vehicle log; if the limit is reached, the API returns 403. Remove an existing attachment before retrying.
vehicle_log_files_upload_base64
ChatGPT[WRITE] Upload attachment via JSON body (POST .../put_files_cordova). Requires OAuth/Bearer authorization. Either chat_upload_id (AI chat attachment UUID), or vehicle_log_file (base64) + vehicle_log_file_name — mutually exclusive. Some accounts allow a limited number of attachments per log; if the limit is reached, delete an existing attachment before retrying.
vehicle_plates_create
ChatGPT[WRITE] Create plate (POST .../vehicle_plates). Requires OAuth/Bearer authorization. Fields match VehiclePlateStoreRequest: plate, country_id, valid_from, valid_to, uuid. Use YYYY-MM-DD for valid_from and valid_to; uuid must be a UUID string.
vehicle_plates_delete
ChatGPT[WRITE] Delete plate (DELETE .../vehicle_plates/{plate_id}). Requires OAuth/Bearer authorization.
vehicle_plates_list
ChatGPT[READ] List plates for a vehicle (GET /api/vehicles/{vehicle_id}/vehicle_plates). Requires OAuth/Bearer authorization.
vehicle_plates_update
ChatGPT[WRITE] Update plate (PUT .../vehicle_plates/{plate_id}). Requires OAuth/Bearer authorization. Fields match VehiclePlateUpdateRequest: plate, country_id, valid_from, valid_to. Use YYYY-MM-DD for valid_from and valid_to.
vehicles_create
ChatGPT[WRITE] Create a vehicle (POST /api/vehicles). Requires OAuth/Bearer authorization. Body matches VehicleStoreRequest in ridelogger-api: vehicle_type_id, vehicle_make_id, mileage, fuel_type_id, label, production_year are required; vehicle_model_id is required when vehicle_type_id is 1 (car). Optional: mileage_unit_id (defaults from owner country), steering_side_id (GET /api/steering_sides, defaults from owner country). Optional: plate, valid_to, engine_displacement, engine_power_kw, engine_power_hp. Response includes the created vehicle. Each vehicle includes resolved reference objects alongside raw IDs: vehicle_type {id,name}, fuel_type {id,name}, mileage_unit {id,name,unit,ratio}, steering_side {id,name}, fuel_unit {id,name,unit,units,ratio}, vehicle_make_info {id,name}, vehicle_model_info {id,name}. Use these instead of cross-referencing IDs with ridelogger://reference/* resources.
vehicles_get
ChatGPT[READ] Get one vehicle by id (GET /api/vehicles/{vehicle_id}). Requires OAuth/Bearer authorization. Each vehicle includes resolved reference objects alongside raw IDs: vehicle_type {id,name}, fuel_type {id,name}, mileage_unit {id,name,unit,ratio}, steering_side {id,name}, fuel_unit {id,name,unit,units,ratio}, vehicle_make_info {id,name}, vehicle_model_info {id,name}. Use these instead of cross-referencing IDs with ridelogger://reference/* resources.
vehicles_list
ChatGPT[READ] List vehicles the user can manage (GET /api/vehicles). Requires OAuth/Bearer authorization. Optional filters: vehicle_make_id, vehicle_model_id, production_year (query params). Optional page for paginated responses if API supports it. Returns { data: [...] }. Each vehicle includes resolved reference objects alongside raw IDs: vehicle_type {id,name}, fuel_type {id,name}, mileage_unit {id,name,unit,ratio}, steering_side {id,name}, fuel_unit {id,name,unit,units,ratio}, vehicle_make_info {id,name}, vehicle_model_info {id,name}. Use these instead of cross-referencing IDs with ridelogger://reference/* resources.
vehicles_update
ChatGPT[WRITE] Partial update vehicle (PUT /api/vehicles/{vehicle_id}). Requires OAuth/Bearer authorization. Only vehicle_id is required; include only fields that change (API merges with existing row). Omitted parameters are not sent. mileage_unit_id cannot be changed after create — omit it on update. For cars (vehicle_type_id=1), set vehicle_make_id and vehicle_model_id from reference data when you change identity; omit vehicle_model_id for motorcycles/trucks. Do not send null for unknown IDs — omit the key instead. Optional: steering_side_id (GET /api/steering_sides), powertrain_id, plate, valid_to, country_id (with plate), engine_. Each vehicle includes resolved reference objects alongside raw IDs: vehicle_type {id,name}, fuel_type {id,name}, mileage_unit {id,name,unit,ratio}, steering_side {id,name}, fuel_unit {id,name,unit,units,ratio}, vehicle_make_info {id,name}, vehicle_model_info {id,name}. Use these instead of cross-referencing IDs with ridelogger://reference/ resources.