API · /musicnote-api

Music Theory API

healthy 3,938 Subscribers

Music-theory maths as an API, in equal temperament with A4 = 440 Hz and scientific pitch notation (C4 = middle C = MIDI 60). The note endpoint converts freely between a note name (A4, C#5, Eb3), a MIDI note number and a frequency — and when you pass a frequency it returns the nearest note and how many cents sharp or flat it is. The interval endpoint gives the distance between two notes in semitones and cents, its name (perfect fifth, major third, …) and the exact frequency ratio. The chord endpoint returns the notes, MIDI numbers and frequencies of a chord from a root and a quality (major, minor, dim, aug, sus, 6, 7, maj7, m7, dim7, m7b5, 9 and more). The scale endpoint returns the notes of a scale or mode from a root — major, the three minor scales, the seven church modes, the major and minor pentatonics, blues, whole-tone and chromatic. Sharp or flat spelling is selectable. Everything is computed locally and deterministically, so it is instant and private. Ideal for music apps and games, synthesizers and DAWs, ear-training and theory teaching, tuners and MIDI tools. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 5 endpoints. This is music theory; for searching tracks and artists use a music API and for the classical repertoire use a classical-music API.

api.oanor.com/musicnote-api
Get an API key Try in playground → Contact provider

Machine-readable spec so AI agents can integrate this API.

/api/musicnote-api/openapi.json
/api/musicnote-api/llms.txt

Discovery: GET /api/index.json lists every API.

API health

healthy
Uptime
100.00%
Server probes · 24h
Avg latency
80 ms
Server probes · 24h
Subscribers
3,938
active
Total calls
55
last 7 days
status Full status page → · 25 probes/24h

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 6,735 calls / month
  • 2 requests / second
  • Hard cap (429 above quota, no overage)
  • 6,735 calls/month
  • 2 req/sec
  • Notes / intervals / chords / scales
  • No credit card
Sign in to subscribe

Starter

€8.25 /month

  • 16,250 calls / month
  • 8 requests / second
  • Hard cap (429 above quota, no overage)
  • 16.25k calls/month
  • 8 req/sec
  • MIDI + frequency + cents
  • Email support
Sign in to subscribe

Pro

€28.15 /month

  • 213,500 calls / month
  • 20 requests / second
  • Hard cap (429 above quota, no overage)
  • 213.5k calls/month
  • 20 req/sec
  • Synth / DAW / MIDI pipelines
  • Priority support
Sign in to subscribe

Mega

€66.15 /month

  • 1,110,000 calls / month
  • 50 requests / second
  • Hard cap (429 above quota, no overage)
  • 1.11M calls/month
  • 50 req/sec
  • Platform scale
  • Dedicated SLA
Sign in to subscribe

Built by

Related APIs

Other APIs with overlapping tags.

Music Theory API

Music-theory maths as an API, computed locally and deterministically over the twelve-tone chromatic scale. The interval endpoint gives the number of semitones and the interval name between two notes — C to G is seven semitones, a perfect fifth. The transpose endpoint shifts one or more notes up or down by a number of semitones, so C E G transposed up seven becomes G B D and a negative value transposes down. The chord endpoint returns the notes of a chord from a root and a type — major, minor, diminished, augmented, the sevenths (major7, minor7, dominant7, diminished7, half-diminished7), sixths, suspended, add9, ninth and power chords — so C major is C E G and C7 is C E G B♭. The scale endpoint returns the notes of a scale from a root and a mode — the major and three minor scales, the seven church modes, the major and minor pentatonics, blues, whole-tone and chromatic — so C major is C D E F G A B and A natural-minor is A B C D E F G. Notes use C, C#, D♭ … B, and accidental=flat spells with flats. Everything is computed locally and deterministically, so it is instant and private. Ideal for music-education, ear-training, songwriting, DAW-plugin, notation and instrument app developers, chord-and-scale tools, and practice software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 4 endpoints. This is pitch-class theory; for the actual frequency of a note use a music-note API.

api.oanor.com/musictheory-api

Equine Care API

Horse-care maths as an API, computed locally and deterministically — the everyday numbers a horse owner, barn manager or vet tech runs without reaching for a chart. The weight endpoint estimates body weight from a weight-tape measurement using the classic formula weight ≈ heart girth² × body length ÷ a type divisor (adult 330, yearling 301, weanling 280, pony 299) with measurements in inches — a horse with a 72-inch girth and 66-inch length comes out at about 1,037 lb (470 kg), the number you actually dose wormer and feed against. The feed endpoint turns body weight and a goal into daily forage: horses eat roughly 1.5–2.5 % of body weight in dry-matter forage a day, so a 1,000 lb horse on maintenance wants about 15–20 lb of hay, more to gain and less to slim. The gestation endpoint gives the foaling due date and the normal 320–362 day window from a breeding date — a mare bred on 1 April is due around 7 March the next year, give or take three weeks. Everything is computed locally and deterministically, so it is instant and private. Ideal for barn-management and horse-care apps, breeding and foaling trackers, feed-calculator and tack-shop sites, and equine-vet tools. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Educational estimates — not veterinary advice.

api.oanor.com/equine-api

Darkroom API

Analog darkroom and film maths as an API, computed locally and deterministically — the three corrections that bite when you develop film and make prints by hand. The reciprocity endpoint corrects long exposures for reciprocity failure, where film loses sensitivity past about a second: corrected time = metered^p (Schwarzschild p ≈ 1.3 for many films, settable per datasheet), so a metered 10-second exposure really wants about 20 seconds, a full stop more, while anything under the threshold is left untouched. The printexposure endpoint adjusts enlarger exposure when you change print size — light spreads as you raise the head, so exposure is proportional to (magnification + 1)², where magnification is print size ÷ negative size: going from 2× to 4× magnification turns a 10-second exposure into 27.8 seconds, about 1.5 stops, ready for f-stop printing. The pushpull endpoint scales development time for pushing or pulling film by N stops — time = base × factor^stops, roughly +40 % per stop pushed — turning a 7-minute base into 13.7 minutes at +2 stops, or 5 minutes pulled a stop. Everything is computed locally and deterministically, so it is instant and private. Ideal for film-photography and darkroom apps, light-meter and timer companions, lab and workshop tools, and analog-photography sites. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. For digital depth-of-field use a photography API; for lab molarity use a dilution API.

api.oanor.com/darkroom-api

Aquascape API

Planted-aquarium and aquascaping maths as an API, computed locally and deterministically — the dosing and water numbers a high-tech planted tank runs on, not the rolls of a dice. The co2 endpoint gives the dissolved CO2 concentration from pH and carbonate hardness using the classic relationship CO2 (ppm) ≈ 3 × KH (dKH) × 10^(7 − pH), and flags it against the 15–30 ppm window plants want — at pH 6.6 and KH 4 you are at about 30 ppm, the top of the safe zone, while pH 7.0 and KH 3 is a carbon-limited 9 ppm. The fertilizer endpoint turns a dry-salt dose into the nutrient ppm it adds, the heart of Estimative Index dosing: ppm = grams × the nutrient mass fraction × 1000 ÷ tank litres, so 1 g of KNO3 in 100 litres adds 6.1 ppm nitrate and 3.9 ppm potassium, and it knows KNO3, KH2PO4, K2SO4, MgSO4 (Epsom) and Ca(NO3)2. The substrate endpoint sizes the substrate from the footprint and target depth — a 60 × 30 cm tank at 6 cm deep needs 10.8 litres, two 9-litre aquasoil bags. Everything is computed locally and deterministically, so it is instant and private. Ideal for aquascaping and planted-tank apps, fertiliser-dosing calculators, CO2-rig tools, and aquarium-shop and hobby sites. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. For a tank water volume or fish stocking use an aquarium API; for pool chemistry use a pool API.

api.oanor.com/aquascape-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

How do I get an API key for Music Theory API?
Sign up for free at oanor.com, generate an API key from the developer dashboard, and call Music Theory API with the x-oanor-key header. No credit card needed for the free tier.
What's the rate limit for Music Theory API?
Free tier allows 1 request per second. Paid plans scale up to 50 requests per second on the Mega tier. Hard limits return HTTP 429 above the quota — no surprise overage charges.
How much does Music Theory API cost?
Music Theory API has a free tier with 100 calls / month. Paid plans start at €8.25 / month with higher quotas and faster rate limits.
Can I cancel my subscription anytime?
Yes. Plans are billed monthly and you can cancel anytime from your billing dashboard. No long-term contracts and no cancellation fee.
Is Music Theory API GDPR-compliant?
All requests to Music Theory API go through our EU-based gateway. Your upstream API key never leaves our server and no personal data is shared with the upstream provider beyond the request you send.

Pick an endpoint from the list on the left to see its details and try it.

Code snippets

Sign up to get an API key, then call any path under your slug.

curl https://api.oanor.com/musicnote-api/SOME_PATH \
  -H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/musicnote-api/SOME_PATH", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/musicnote-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
    "https://api.oanor.com/musicnote-api/SOME_PATH",
    headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())

Ratings

Sign in to rate.

No reviews yet.

Discussion

Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.

Sign in to start a thread or reply.

Sign in

New thread

/ 4000

📌 Pinned 🔒 Locked

·

· ·

/ 4000

🔒 This thread is locked — no new replies.

  • No threads yet — start the discussion.

Support

Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.

Sign in to open a support ticket.

Sign in

Open new ticket

Describe what you need help with. The provider team gets an email and replies on the ticket page.

  • No tickets yet for this API.

Subscription active — calls can start immediately.

Send your first request —

Subscription active — copy a snippet and fire off your first call.