🔗 Integration Guide

How to Use Trackser Live API

⚠️ Disclaimer: Trackser Live API is currently in a private beta phase and not publicly accessible. Information and access are restricted to invited partners and collaborators only.

DO NOT READ

The following documentation is for internal use only and should not be shared externally at this time.

We are working towards a public launch in the future, at which point this documentation will be revised and made available.

Please contact the Trackser team for any questions regarding access or usage during this private beta phase.


📝 Note: Trackser Live is currently available by invitation only. If you'd like to explore API access for your project, contact us at support@trackser.co.uk.

Authentication

All API requests require an API key passed as a query parameter:

GET /live/central/line/latest.json?key=YOUR_API_KEY

Your API key is issued on a per-project basis. Keep it secure and never commit it to version control.

Rate Limiting

Rate limits are enforced per API key and vary depending on your use case:

Metric Limit Description
Requests per second Varies by tier Contact us for your specific limits
Burst allowance Up to 10 requests Brief traffic spikes are allowed
Response time 50-200ms typical Depends on data complexity

If you exceed limits, requests will receive HTTP 429 (Too Many Requests) responses. Contact us if you need higher limits for your use case.

Available Endpoints

Live Data

GET /live/{lineId}/line/latest.json

Complete train data for a specific line (gzip compressed)

GET /live/{lineId}/line/latest-plain.json

Same as above, but uncompressed (larger response)

GET /live/{lineId}/line/latest-stats.json

Statistics only (no train array) - lighter response for monitoring

GET /live/all/line/latest.json

All lines combined - convenient but larger response

Line IDs

Use these line identifiers in the path:

bakerloo, central, circle, district, hammersmith-city, jubilee,
metropolitan, northern, piccadilly, victoria, waterloo-city

Example Requests

JavaScript / Node.js

const API_KEY = 'your-api-key';
const LINE_ID = 'central';

// Fetch latest data
const response = await fetch(`https://trackser.app/live/${LINE_ID}/line/latest.json?key=${API_KEY}`);
const data = await response.json();

// Get train count
console.log(`${data.trains.length} trains currently tracked`);

// Find trains heading to a specific destination
const elingTrains = data.trains.filter(t => 
  t.destinationName?.toLowerCase().includes('ealing')
);
console.log(`${elingTrains.length} trains to Ealing`);

Python

import requests
import json

API_KEY = 'your-api-key'
LINE_ID = 'northern'

url = f'https://trackser.app/live/{LINE_ID}/line/latest.json?key={API_KEY}'
response = requests.get(url)
data = response.json()

# Print summary
print(f"Data as of: {data['as_of']}")
print(f"Total trains: {len(data['trains'])}")

# Find stalled trains
stalled = [t for t in data['trains'] if t.get('isMaybeStalled')]
print(f"Potentially stalled: {len(stalled)} trains")

cURL

curl "https://trackser.app/live/jubilee/line/latest.json?key=YOUR_API_KEY" | jq '.trains | length'

Response Handling

Success Response (200)

Returns a JSON object with train data. Check the as_of timestamp to verify data freshness:

{
  "as_of": "2025-12-15T22:26:58.994Z",
  "sources": { ... },
  "status": "ok",
  "stats": { ... },
  "trains": [ ... ]
}

Common Error Responses

Status Code Meaning Action
401 Unauthorized - Invalid or missing API key Check your API key and request headers
404 Not found - Invalid line ID or endpoint Verify line ID and endpoint path
429 Too many requests - Rate limit exceeded Slow down requests or contact us for higher limits
503 Service unavailable - TfL API or system issue Check our status page and retry

Best Practices

Webhooks & Real-time Updates

Currently, Trackser Live provides a REST polling interface. For future expansions, we're considering:

If real-time streaming is important for your use case, let us know at support@trackser.co.uk.

Troubleshooting

Getting empty train arrays

This usually means the line is not currently operational or TfL data collection failed. Check the status field and verify the line is running at the current time.

Data seems old

Check the as_of timestamp. If it's more than 2 minutes old, TfL's data source may be experiencing issues. Check the system status page.

Location data looks wrong

Track codes are inferred and sometimes ambiguous. Report issues with specific trains (include timestamp and train ID) to support@trackser.co.uk.

Support

For integration questions, technical issues, or feature requests related to API access, please reach out to support@trackser.co.uk.