Wader Logbook

Developer API

Read and write one pilot's logbook — flights and previous experience — from a roster app, your own script or an AI assistant. Access is granted by the pilot, per app, and needs an active Wader Pro subscription.

Base URL https://logbook.waderaviation.com/api/v1

Quick start

  1. In Wader, open Profile → API access and create a token. Copy it — it is shown only once.
  2. Send it on every request, with a header naming your app:
    curl https://logbook.waderaviation.com/api/v1/me \
      -H "Authorization: Bearer wdr_pat_…" \
      -H "X-Wader-Client: MyRosterApp/1.0"
  3. Push flights. Send your own stable id as externalId so a re-sent duty updates the same flight instead of creating a duplicate:
    curl -X POST https://logbook.waderaviation.com/api/v1/flights \
      -H "Authorization: Bearer wdr_pat_…" \
      -H "X-Wader-Client: MyRosterApp/1.0" \
      -H "Content-Type: application/json" \
      -d '{"timeReference":"UTC","flights":[{"externalId":"duty-8841",
           "flightDate":"2026-10-12","startTime":"07:05","parkingTime":"09:40",
           "depAirport":"LPPT","arrAirport":"EGLL",
           "aircraftTailnumber":"CS-TJE","function":"SIC",
           "takeoffs":1,"landings":1,"isSimulator":false}]}'

Good to know

  • One format everywhere. You send flights with the Wader spreadsheet columns and get them back as CSV export rows. A flight you read can be changed and sent back as it is.
  • Same rules as a spreadsheet import. function puts the block in the right time; true on ifrTime, instrument or cross-country time means the whole block; takeoffs / landings are split into day and night by Wader.
  • Durations are minutes (95) or "H:MM". Clock times are HH:MM on flightDate, in UTC unless you send timeReference. Airports are ICAO codes (IATA also works).
  • Leave out what you don't know. A new flight is filled from the pilot's logbook preferences; on an update, what you don't send keeps its stored value. 0 overwrites.
  • Unknown codes become the pilot's own. An airport or aircraft type Wader doesn't know is created for that pilot — once, never duplicated.
  • One pilot per token. A token only reaches the logbook of the pilot who created it, and never their account settings.
  • Signed flights are locked (409 flight_signed), and deleted records are never returned.
  • Limits: 5,000 requests per token per day, 250 flights per POST, 300 records per page.
  • Pro required. If the pilot's Pro lapses, calls return 403 pro_required until they renew.

Errors always look like { "error": { "code": "…", "message": "…" } }. Branch on code; show message to people.