Active Travel Logger Help

Export your data

Spreadsheet exports from the dashboards, and API keys for automated extracts.

There are two ways to get data out: download it from a dashboard, or pull it programmatically with an API key.

Spreadsheet export

Every dashboard offers Export CSV and Export Excel. The download covers the scope and period currently on screen, so set the period selector — Today, This week, Term or School year — before exporting.

This is the right route for a programme report, a board paper, or anything you are going to open in Excel anyway.

API keys

For a recurring extract into your own reporting system, use an API key. Only Council Administrators can issue them, from API keys.

Issuing a key

  1. Open API keys.
  2. Create a key, scoped either to your council or to a single school.
  3. Copy it immediately.

The key is shown to you once, at creation. Only a hash of it is stored, so it cannot be recovered or shown again. If you lose it, revoke it and issue a new one.

Handling a key

A key is a credential with standing read access to your programme data. Under the terms you have agreed:

Issue one key per integration. Shared keys cannot be revoked without breaking everything at once, and tell you nothing about who was using them.

Calling the API

GET /api/v1/export
Authorization: Bearer <your key>
Parameter Values Default
scope school or council Whatever the key is scoped to
id The school or council id The key's own scope
from YYYY-MM-DD 30 days ago
to YYYY-MM-DD Today

Example:

curl -H "Authorization: Bearer $ATT_KEY" \
  "https://tapin.ie/api/v1/export?scope=council&from=2026-09-01&to=2026-09-30"

A key can only read within its own scope. Asking for a council or school the key was not issued for returns 403, not data.

The API reference lists every endpoint a key can call, including the dashboard figures, with the fields each returns. The same OpenAPI specification can be downloaded and imported into tools such as Postman.

What comes back

JSON, aggregated by date, school, class and mode. No individual pupil appears — the response says so itself:

{
  "meta": {
    "scope": "council",
    "id": "…",
    "from": "2026-09-01",
    "to": "2026-09-30",
    "totalRecords": 1284,
    "note": "Data is aggregated by date/school/class/mode. No individual student identifiers are included."
  },
  "data": [
    {
      "date": "2026-09-01",
      "school": "St. Brigid's NS",
      "className": "3rd Class A",
      "yearGroup": "3rd",
      "mode": "WALK",
      "count": 18
    }
  ]
}

One row per date, class and mode, with a count of journeys. mode is one of WALK, CYCLE, SCOOTER, PARK_STRIDE, BUS, RAIL, CAR_SHARE, CAR.

Calculating rates yourself

The export gives you raw counts, not rates. If you are reproducing the active-travel rate the dashboards show, remember it counts every mode except CAR — see reading your dashboards for why that distinction matters in a report.

CO₂ saved and km walked / wheeled are not in the export because they are not stored — they are modelled from journey counts using a 2 km average journey and 0.17 kg of CO₂ per km. Apply the same factors if you need to reproduce them.

Response codes

Code Meaning
401 No key, or the key is not valid
403 The key does not cover the requested school or council
404 The school or council does not exist
400 scope was something other than school or council

Practical notes


Still stuck? Email our support team.