{"openapi":"3.1.0","info":{"title":"Music theory","version":"0.1.0","description":"Music-theory primitives — parse notes and their frequency/MIDI number, name the interval between two notes, transpose, and build scales and chords with correct diatonic spelling. Standard pitch A4 = 440 Hz.","x-guidance":"Music-theory primitives — parse notes and their frequency/MIDI number, name the interval between two notes, transpose, and build scales and chords with correct diatonic spelling. Standard pitch A4 = 440 Hz. Each operation is an HTTP POST to its /v1/<operation> path with a JSON request body (see each operation's requestBody schema) and returns a JSON response. Endpoints are paid per successful call via x402 or MPP (USDC on Base); an unpaid request returns 402 with payment metadata in the WWW-Authenticate header.","contact":{"email":"hello@openverbs.com"}},"x-discovery":{"ownershipProofs":["0xb1401a71756f51464a9962db12f1eb3e9522490cd20010b06d00cf7b7770acfd5f79721f9dfdf2643f8cecd29af3bde9ec133941a386042b32d9886053a70de61b","0xc1c1f11793e18a00fcb7072421f26e89fb75b6aa517fa84370564991f4b10efa024f6f57e4e67eefd20cf46cc01fc5a62d793fa8fbcda04f26c946a3433d73f91b","0x676b474af0ef9ed4809b5d12d2e789b36e52d56215b21f601d71f76620e36ec630347116a7b2b349a3c3681e5db0fbfa76c4169a676b6d6f27864d0e5017284a1c","0xc2ab96522515ed9e9bc4f1a241b774bd48df42e951ddbf7f6aa8fc76f5a96a20421703e1ec402ce7eb1e4eabea3b6e4e4129cf39d56ea91cf4fcf38561fc94fc1c"]},"servers":[{"url":"https://music.openverbs.com"}],"paths":{"/health":{"get":{"summary":"Health check","security":[],"responses":{"200":{"description":"Healthy","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"service":{"type":"string"},"version":{"type":"string"}}}}}}}}},"/v1/note":{"post":{"summary":"Note parse","description":"Parse a note in scientific pitch notation (e.g. \"A4\", \"C#5\", \"Bb3\") into its letter, accidental, pitch class (0..11), octave, MIDI number and frequency in Hz (A4 = 440 Hz). Paid endpoint (x402 + MPP). Price: $0.002000 USDC per successful payment.","tags":["parse musical note","note frequency lookup","midi note converter","scientific pitch notation","musical note api","convert note to hz"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","minLength":1,"maxLength":8,"description":"e.g. \"A4\", \"C#5\", \"Bb3\"."}},"required":["note"],"additionalProperties":false},"example":{"note":"C4"}}}},"responses":{"200":{"description":"`{ name, letter, accidental, pitchClass, octave, midi, frequency }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ name, letter, accidental, pitchClass, octave, midi, frequency }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Parse a note in scientific pitch notation (e.g. \"A4\", \"C#5\", \"Bb3\") into its letter, accidental, pitch class (0..11), octave, MIDI number and frequency in Hz (A4 = 440 Hz).","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Parse a note in scientific pitch notation (e.g. \"A4\", \"C#5\", \"Bb3\") into its letter, accidental, pitch class (0..11), octave, MIDI number and frequency in Hz (A4 = 440 Hz).","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Parse a note in scientific pitch notation (e.g. \"A4\", \"C#5\", \"Bb3\") into its letter, accidental, pitch class (0..11), octave, MIDI number and frequency in Hz (A4 = 440 Hz).","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/interval":{"post":{"summary":"Interval between notes","description":"Name the interval between two notes (`to` at or above `from`) — its size in semitones, its diatonic number and its quality (perfect/major/minor/augmented/diminished). Correct spelling matters: C→F# is an augmented fourth, C→Gb a diminished fifth. Paid endpoint (x402 + MPP). Price: $0.002000 USDC per successful payment.","tags":["music interval calculator","interval between notes","name musical interval","semitone interval lookup","diatonic interval api","compare two notes"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","minLength":1,"maxLength":8,"description":"Lower note."},"to":{"type":"string","minLength":1,"maxLength":8,"description":"Upper note (>= from)."}},"required":["from","to"],"additionalProperties":false},"example":{"from":"C4","to":"G4"}}}},"responses":{"200":{"description":"`{ semitones, number, quality, name }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ semitones, number, quality, name }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Name the interval between two notes (`to` at or above `from`) — its size in semitones, its diatonic number and its quality (perfect/major/minor/augmented/diminished). Correct spelling matters: C→F# is an augmented fourth, C→Gb a diminished fifth.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Name the interval between two notes (`to` at or above `from`) — its size in semitones, its diatonic number and its quality (perfect/major/minor/augmented/diminished). Correct spelling matters: C→F# is an augmented fourth, C→Gb a diminished fifth.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Name the interval between two notes (`to` at or above `from`) — its size in semitones, its diatonic number and its quality (perfect/major/minor/augmented/diminished). Correct spelling matters: C→F# is an augmented fourth, C→Gb a diminished fifth.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/transpose":{"post":{"summary":"Transpose a note","description":"Transpose a note by a (possibly negative) number of semitones. Result is spelled chromatically with sharps, or flats when `preferFlats` is true. Paid endpoint (x402 + MPP). Price: $0.002000 USDC per successful payment.","tags":["transpose musical note","shift note by semitones","note transposition api","convert pitch up down","music key transpose","semitone transpose"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","minLength":1,"maxLength":8,"description":"Note to transpose."},"semitones":{"type":"integer","minimum":-127,"maximum":127,"description":"Semitones to move (negative = down)."},"preferFlats":{"type":"boolean","description":"Spell the result with flats. Default false (sharps)."}},"required":["note","semitones"],"additionalProperties":false},"example":{"note":"C4","semitones":7,"preferFlats":false}}}},"responses":{"200":{"description":"`{ name, midi, frequency }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ name, midi, frequency }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Transpose a note by a (possibly negative) number of semitones. Result is spelled chromatically with sharps, or flats when `preferFlats` is true.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Transpose a note by a (possibly negative) number of semitones. Result is spelled chromatically with sharps, or flats when `preferFlats` is true.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Transpose a note by a (possibly negative) number of semitones. Result is spelled chromatically with sharps, or flats when `preferFlats` is true.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/scale":{"post":{"summary":"Build a scale","description":"Build a scale from a root note and type (major, natural-minor, harmonic-minor, melodic-minor, dorian, phrygian, lydian, mixolydian, locrian, major-pentatonic, minor-pentatonic, blues, chromatic). Heptatonic scales and modes are spelled diatonically (F major → F G A Bb C D E). Returns the note names, MIDI numbers and semitone intervals. Paid endpoint (x402 + MPP). Price: $0.002000 USDC per successful payment.","tags":["build music scale","scale notes generator","major scale api","musical mode builder","diatonic scale lookup","generate scale notes"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"root":{"type":"string","minLength":1,"maxLength":8,"description":"Root note, e.g. \"C4\"."},"type":{"type":"string","enum":["major","natural-minor","harmonic-minor","melodic-minor","dorian","phrygian","lydian","mixolydian","locrian","major-pentatonic","minor-pentatonic","blues","chromatic"],"description":"Scale type."}},"required":["root","type"],"additionalProperties":false},"example":{"root":"C4","type":"major"}}}},"responses":{"200":{"description":"`{ root, type, notes, midi, intervals }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ root, type, notes, midi, intervals }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Build a scale from a root note and type (major, natural-minor, harmonic-minor, melodic-minor, dorian, phrygian, lydian, mixolydian, locrian, major-pentatonic, minor-pentatonic, blues, chromatic). Heptatonic scales and modes are spelled diatonically (F major → F G A Bb C D E). Returns the note names, MIDI numbers and semitone intervals.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Build a scale from a root note and type (major, natural-minor, harmonic-minor, melodic-minor, dorian, phrygian, lydian, mixolydian, locrian, major-pentatonic, minor-pentatonic, blues, chromatic). Heptatonic scales and modes are spelled diatonically (F major → F G A Bb C D E). Returns the note names, MIDI numbers and semitone intervals.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Build a scale from a root note and type (major, natural-minor, harmonic-minor, melodic-minor, dorian, phrygian, lydian, mixolydian, locrian, major-pentatonic, minor-pentatonic, blues, chromatic). Heptatonic scales and modes are spelled diatonically (F major → F G A Bb C D E). Returns the note names, MIDI numbers and semitone intervals.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/chord":{"post":{"summary":"Build a chord","description":"Build a chord from a root note and quality (major, minor, dim, aug, maj7, min7, dom7, dim7, half-dim7, sus2, sus4, maj6, min6). Notes are spelled by stacked thirds (C dom7 → C E G Bb). Returns the note names, MIDI numbers and semitone intervals. Paid endpoint (x402 + MPP). Price: $0.002000 USDC per successful payment.","tags":["build music chord","chord notes generator","chord quality lookup","triad seventh chord api","generate chord tones","music chord builder"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"root":{"type":"string","minLength":1,"maxLength":8,"description":"Root note, e.g. \"C4\"."},"quality":{"type":"string","enum":["major","minor","dim","aug","maj7","min7","dom7","dim7","half-dim7","sus2","sus4","maj6","min6"],"description":"Chord quality."}},"required":["root","quality"],"additionalProperties":false},"example":{"root":"C4","quality":"major"}}}},"responses":{"200":{"description":"`{ root, quality, notes, midi, intervals }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ root, quality, notes, midi, intervals }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Build a chord from a root note and quality (major, minor, dim, aug, maj7, min7, dom7, dim7, half-dim7, sus2, sus4, maj6, min6). Notes are spelled by stacked thirds (C dom7 → C E G Bb). Returns the note names, MIDI numbers and semitone intervals.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Build a chord from a root note and quality (major, minor, dim, aug, maj7, min7, dom7, dim7, half-dim7, sus2, sus4, maj6, min6). Notes are spelled by stacked thirds (C dom7 → C E G Bb). Returns the note names, MIDI numbers and semitone intervals.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Build a chord from a root note and quality (major, minor, dim, aug, maj7, min7, dom7, dim7, half-dim7, sus2, sus4, maj6, min6). Notes are spelled by stacked thirds (C dom7 → C E G Bb). Returns the note names, MIDI numbers and semitone intervals.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}}},"x-service-info":{"categories":["media"],"docs":{"homepage":"https://music.openverbs.com","apiReference":"https://music.openverbs.com/openapi.json"}}}