# Froude Number API
> Froude-number hydrodynamics as an API, computed locally and deterministically. The number endpoint computes the Froude number Fr = v/√(g·L) — the dimensionless ratio of inertial to gravitational forces — from a velocity and a characteristic length, classifies the flow as subcritical (Fr<1, tranquil), critical (Fr=1) or supercritical (Fr>1, rapid), and returns the critical velocity √(g·L) at which Fr=1; the velocity endpoint inverts it to v = Fr·√(g·L). The channel endpoint gives the open-channel Froude number from a flow velocity and depth, the flow regime, and the critical depth y_c = (q²/g)^(1/3) for the unit discharge q = v·y — the boundary between tranquil and shooting flow used in spillway and weir design. The hull-speed endpoint computes the displacement hull speed of a boat from its waterline length, v = 1.34·√(L_wl in ft) knots, the wave-making speed limit where the bow and stern waves equal the hull length, returned in knots, m/s and km/h with the corresponding Froude number — a 10 m waterline gives about 7.7 knots. Gravity defaults to 9.80665 m/s². Everything is computed locally and deterministically, so it is instant and private. Ideal for naval-architecture, marine, hydraulics, civil-engineering, river-modelling and fluid-mechanics-education app developers, spillway, weir and hull-design tools, and simulation software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 4 endpoints. This is the Froude number and flow regime; for Manning open-channel discharge use a Manning API.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/froude-api/..."
```

## Pricing
- **Free** (Free) — 4,700 calls/Mo, 2 req/s
- **Starter** ($6/Mo) — 47,000 calls/Mo, 6 req/s
- **Pro** ($16/Mo) — 218,000 calls/Mo, 15 req/s
- **Mega** ($48/Mo) — 1,260,000 calls/Mo, 40 req/s

## Endpoints

### Froude

#### `GET /v1/channel` — Open-channel Froude & critical depth

**Parameters:**
- `velocity` (query, required, string) — Flow velocity (m/s) Example: `3`
- `depth` (query, required, string) — Flow depth y (m) Example: `0.5`
- `gravity` (query, optional, string) — Gravity (m/s²)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/froude-api/v1/channel?velocity=3&depth=0.5"
```

**Response:**
```json
{
    "data": {
        "note": "Open-channel Froude Fr = v/√(g·y) with flow depth y (rectangular). Critical depth y_c = (q²/g)^(1/3) for unit discharge q = v·y; flow is subcritical when y>y_c, supercritical when y<y_c.",
        "inputs": {
            "depth": 0.5,
            "gravity": 9.80665,
            "velocity": 3
        },
        "regime": "supercritical",
        "froude_number": 1.35480227,
        "critical_depth_m": 0.612191,
        "unit_discharge_m2_s": 1.5
    },
    "meta": {
        "timestamp": "2026-06-05T19:50:28.386Z",
        "request_id": "d9b0eafa-a0f9-4153-87c5-7deffd8e0298"
    },
    "status": "ok",
    "message": "Open-channel Froude",
    "success": true
}
```

#### `GET /v1/hull-speed` — Displacement hull speed

**Parameters:**
- `waterline_length` (query, optional, string) — Waterline length (m) Example: `10`
- `waterline_length_ft` (query, optional, string) — Waterline length (ft)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/froude-api/v1/hull-speed?waterline_length=10"
```

**Response:**
```json
{
    "data": {
        "note": "Displacement hull speed v = 1.34·√(L_wl in ft) knots — the speed where the bow and stern waves equal the hull length (Fr≈0.4). A 10 m waterline gives ≈7.7 knots.",
        "inputs": {
            "waterline_length_m": 10
        },
        "froude_number": 0.398726,
        "hull_speed_ms": 3.9485,
        "hull_speed_kmh": 14.2147,
        "hull_speed_knots": 7.6753
    },
    "meta": {
        "timestamp": "2026-06-05T19:50:28.509Z",
        "request_id": "64a2a221-61eb-4bfe-8eea-8fe86257abde"
    },
    "status": "ok",
    "message": "Hull speed",
    "success": true
}
```

#### `GET /v1/number` — Froude number & regime

**Parameters:**
- `velocity` (query, required, string) — Velocity (m/s) Example: `2`
- `length` (query, required, string) — Characteristic length L (m) Example: `1`
- `gravity` (query, optional, string) — Gravity (m/s², default 9.80665)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/froude-api/v1/number?velocity=2&length=1"
```

**Response:**
```json
{
    "data": {
        "note": "Fr = v/√(g·L). Fr<1 subcritical (tranquil), Fr=1 critical, Fr>1 supercritical (rapid). The critical velocity √(g·L) is the speed at which Fr=1.",
        "inputs": {
            "length": 1,
            "gravity": 9.80665,
            "velocity": 2
        },
        "regime": "subcritical",
        "froude_number": 0.63865991,
        "critical_velocity_ms": 3.131557
    },
    "meta": {
        "timestamp": "2026-06-05T19:50:28.614Z",
        "request_id": "8f7b7590-302b-4190-8b88-6c17c8271c8c"
    },
    "status": "ok",
    "message": "Froude number",
    "success": true
}
```

#### `GET /v1/velocity` — Velocity from Froude

**Parameters:**
- `froude` (query, required, string) — Froude number Example: `1`
- `length` (query, required, string) — Characteristic length L (m) Example: `0.5`
- `gravity` (query, optional, string) — Gravity (m/s²)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/froude-api/v1/velocity?froude=1&length=0.5"
```

**Response:**
```json
{
    "data": {
        "note": "v = Fr·√(g·L).",
        "inputs": {
            "froude": 1,
            "length": 0.5,
            "gravity": 9.80665
        },
        "regime": "critical",
        "velocity_ms": 2.214345,
        "velocity_kmh": 7.9716
    },
    "meta": {
        "timestamp": "2026-06-05T19:50:28.723Z",
        "request_id": "e9490961-4dab-4ce2-bbb9-d8e13283a3e4"
    },
    "status": "ok",
    "message": "Velocity from Froude",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/froude-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "notes": "SI (m, m/s, g=9.80665 m/s²). Fr = v/√(g·L). This is the Froude number and regime; for Manning open-channel discharge use a Manning API.",
        "service": "froude-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/number": "Froude number and regime from a velocity and characteristic length.",
            "GET /v1/channel": "Open-channel Froude number, regime and critical depth.",
            "GET /v1/velocity": "Velocity from a Froude number and length.",
            "GET /v1/hull-speed": "Displacement hull speed from waterline length."
        },
        "description": "Froude number: flow regime, open-channel critical depth, and displacement hull speed."
    },
    "meta": {
        "timestamp": "2026-06-05T19:50:28.821Z",
        "request_id": "1eadddb0-371d-4c08-957c-785942a595c2"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/froude-api
OpenAPI spec: https://www.oanor.com/api/froude-api/openapi.json
