Skip to content
GET /v1/course-made-good

Course/speed over ground

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/setanddrift-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/setanddrift-api/v1/course-made-good" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/setanddrift-api/v1/course-made-good", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/setanddrift-api/v1/course-made-good");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/setanddrift-api/v1/course-made-good",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "data": {
        "note": "Adding the boat's velocity through the water to the current vector gives the real track over the ground: the course over ground (COG) and speed over ground (SOG). 'Set' is the direction the current flows toward and 'drift' its speed. The difference between COG and the heading is the drift angle — the current quietly pushes you off your nose, so a steady heading is not a steady track.",
        "inputs": {
            "set_deg": 0,
            "drift_kt": 2,
            "heading_deg": 90,
            "speed_through_water_kt": 10
        },
        "drift_angle_deg": -11.31,
        "speed_over_ground_kt": 10.2,
        "course_over_ground_deg": 78.69
    },
    "meta": {
        "timestamp": "2026-06-07T08:17:58.893Z",
        "request_id": "24884640-ba59-4628-9ae4-30eb952f2fcf"
    },
    "status": "ok",
    "message": "Course made good",
    "success": true
}