Vessel Tracker API Documentation
Real-time vessel position tracking API
Overview
The Vessel Tracker API provides flexible methods for submitting vessel position data to keep your friends, family, and followers updated on your journey. Whether you're sailing with full internet connectivity or crossing oceans with only satellite email access, we have a solution that works for your situation.
Choose the method that best fits your vessel's connectivity:
REST API
For vessels with reliable internet connectivity. Integrate with your navigation system for automatic position updates with real-time tracking.
→ Best for: Marina WiFi, cellular data, Starlink
Email Reports
Perfect for offshore passages with limited connectivity. Send position reports via any email system and receive confirmations.
→ Best for: Iridium GO!, SSB email, satellite phones
REST API Submission
Authentication
All API requests require authentication using a Bearer token in the Authorization header.
Authorization: Bearer YOUR_API_KEY
Your API key can be found in your vessel's admin dashboard.
Base URL
https://trackmywake.com/api/v1
Endpoints
/positions
Record a new vessel position with optional weather and navigation data.
Request Body
{
"timestamp": "2025-07-22T12:00:00Z",
"lat": 40.7128,
"lon": -74.0060,
"course": 180.5,
"speed": 8.2,
"air_temp": 22.5,
"water_temp": 18.3,
"wind_speed": 12.1
}
Field Descriptions
-
timestamp
- Optional. ISO 8601 datetime, defaults to current time -
lat
- Required. Latitude in decimal degrees (-90 to 90) -
lon
- Required. Longitude in decimal degrees (-180 to 180) -
course
- Optional. Course over ground in degrees (0-360) -
speed
- Optional. Speed over ground in knots -
air_temp
- Optional. Air temperature in Celsius -
water_temp
- Optional. Water temperature in Celsius -
wind_speed
- Optional. Wind speed in knots
Response
Success (201 Created)
{
"status": "ok",
"message": "Position recorded"
}
Error (422 Unprocessable Entity)
{
"status": "error",
"errors": {
"lat": ["can't be blank"],
"lon": ["can't be blank"]
}
}
Example cURL Request
curl -X POST https://trackmywake.com/api/v1/positions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"lat": 40.7128,
"lon": -74.0060,
"course": 180.5,
"speed": 8.2,
"air_temp": 22.5,
"water_temp": 18.3,
"wind_speed": 12.1
}'
Error Codes
Code | Description |
---|---|
401 | Unauthorized - Invalid or missing API key |
422 | Unprocessable Entity - Invalid request data |
500 | Internal Server Error - Contact support |
Getting Started
Get your API Key
Sign in to your vessel's admin dashboard to find your unique API key.
Test the API
Use the cURL example above to send your first position update.
View Live Updates
Watch your vessel's position update in real-time on the tracking page.
Real-time Updates
When positions are submitted via the API, they are automatically broadcast in real-time to the vessel's tracking page using WebSockets.
Live Tracking Page
View your vessel's real-time position at:
https://trackmywake.com/your-vessel-slug
Email Position Reports
For vessels with limited connectivity, you can send position reports via email. You'll receive a confirmation email for each report.
Setup
- Configure your vessel's email address in the admin settings
-
Send position reports to:
positions@app.trackmywake.com
Email Format
Send position data in the email body. You can include multiple reports (one per line) with timestamps:
# With timestamps (ISO, European, or US format): 2024-01-20 14:30 lat: 45.1234, lon: -123.4567 2024-01-20T15:45:00Z lat: 45.2345, lon: -123.5678, speed: 5.5, course: 270 20/01/2024 16:00 45°12.34'N 123°45.67'W # With additional weather data: 2024-01-20 17:00 lat: 45.3456, lon: -123.6789, speed: 6.2, course: 185, airtemp: 22.5, watertemp: 18.3, windspeed: 12.1 # Without timestamps (uses current time): lat: 45.1234, lon: -123.4567 lat: 45.4567, lon: -123.7890, course: 90, speed: 7.5 45°12.34'N 123°45.67'W # Various field name formats accepted: lat: 45.5678, lon: -123.8901, air temp: 20, water temp: 16, wind: 15
Supported Formats
- ✓ Decimal degrees: lat: 45.1234, lon: -123.4567
- ✓ Marine format: 45°12.34'N 123°45.67'W
- ✓ Navigation fields: speed (knots), course (degrees true)
- ✓ Weather fields: airtemp/air temperature (°C), watertemp/water temperature (°C), windspeed/wind (knots)
- ✓ Multiple reports: One position per line, each with optional timestamp
- ✓ Timestamp formats: ISO 8601, DD/MM/YYYY HH:MM, MM-DD-YYYY HH:MM