Upload any dronelog from Copter, Plane, Rover, or Sub — dataflash .BIN / .LOG, or MAVLink .TLOG — and get back a clean CSV. No Mission Planner exports, no parsing code to maintain.
Free tier includes 100 API calls/month. No credit card required.
POST the file straight off the SD card or telemetry radio — dataflash .BIN/.LOG, or MAVLink .TLOG, no conversion needed.
The upload returns a flightId immediately. A background worker decodes MAVLink/dataflash messages — GPS, mode, battery — and merges them onto a single timeline.
Poll the status endpoint with your flightId. Once status is processed, pull back the parsed CSV.
Lat/lng, altitude, and satellite count at every GPS fix — the timeline anchor for the rest of the log.
Current mode from dataflash MODE messages or MAVLink HEARTBEAT, forward-filled onto each GPS fix.
Voltage and current from dataflash BAT messages or MAVLink BATTERY_STATUS.
One row per GPS fix, with the latest known flight mode and battery state merged in — ready to drop into a spreadsheet or database.
Upload the log, then poll the status endpoint with the returned flightId. Polling doesn't count toward your monthly API usage.
# 1. Upload — returns 202 with a flightId
curl -X POST https://dronelogapi.com/api/v2/logs/upload/ardupilot \
-H "Authorization: Bearer YOUR_KEY" \
-F "file=@00000001.BIN"
# 2. Poll until status is "processed" (or "failed")
curl https://dronelogapi.com/api/v2/logs/status/FLIGHT_ID \
-H "Authorization: Bearer YOUR_KEY"
{"status": "pending"}
{"status": "processed", "csv": "..."}
{"status": "failed", "error": "decode error"}
Full request and error reference in the API documentation. Flying DJI too? See the DJI flight log parser.
Get your API key in 30 seconds. 100 free calls per month, no credit card needed.