/v1/string
Vibrating-string harmonics
Try it live
10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.
It works. Grab an API key and use it in your project.
Get an API keyCode snippets
curl "https://api.oanor.com/standingwave-api/v1/string" \ -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/standingwave-api/v1/string", {
headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/standingwave-api/v1/string");
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/standingwave-api/v1/string",
headers={"x-oanor-key": "oanor_test_..."}
)
Example response
A real response from this endpoint, captured by the latest health check.
{
"data": {
"system": "string (fixed at both ends)",
"formula": "v = √(T/μ); f_n = n·v/(2L); λ_n = 2L/n.",
"length_m": 0.65,
"harmonics": [
{
"index": 1,
"nodes": 2,
"antinodes": 1,
"frequency_hz": 307.692308,
"wavelength_m": 1.3,
"harmonic_number": 1
},
{
"index": 2,
"nodes": 3,
"antinodes": 2,
"frequency_hz": 615.384615,
"wavelength_m": 0.65,
"harmonic_number": 2
},
{
"index": 3,
"nodes": 4,
"antinodes": 3,
"frequency_hz": 923.076923,
"wavelength_m": 0.43333333,
"harmonic_number": 3
},
{
"index": 4,
"nodes": 5,
"antinodes": 4,
"frequency_hz": 1230.769231,
"wavelength_m": 0.325,
"harmonic_number": 4
},
{
"index": 5,
"nodes": 6,
"antinodes": 5,
"frequency_hz": 1538.461538,
"wavelength_m": 0.26,
"harmonic_number": 5
},
{
"index": 6,
"nodes": 7,
"antinodes": 6,
"frequency_hz": 1846.153846,
"wavelength_m": 0.21666667,
"harmonic_number": 6
}
],
"tension_n": 80,
"wave_speed_ms": 400,
"linear_density_kg_m": 0.0005,
"linear_density_source": "given",
"fundamental_frequency_hz": 307.692308,
"fundamental_wavelength_m": 1.3
},
"meta": {
"timestamp": "2026-06-04T10:18:52.706Z",
"request_id": "e851d804-f5ac-4f82-99cb-be4362a7ed2c"
},
"status": "ok",
"message": "Vibrating-string harmonics",
"success": true
}