{"uid":"cap_uVZAXMN33iDVvXK0EetpL","slug":"radio-withzero-xyz-radio-withzero-station-library-with-musical-analysis-62a8584a","name":"Radio WithZero Station Library with Musical Analysis","description":"Your station library with musical analysis (bpm, phase map) — pick queue transition cues (exit/enter by section) from it.","url":"https://radio.withzero.xyz/api/v1/stations/{id}/programs","method":"GET","headers":{},"bodySchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"responseSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["station","programs"],"properties":{"station":{"type":"string"},"programs":{"type":"array","items":{"type":"object","required":["programId","title","durationMs","bpm","sections","analysis","analysisUrl","reactions"],"properties":{"bpm":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Analysed tempo — null when analysis failed."},"title":{"type":"string"},"analysis":{"anyOf":[{"type":"object","required":["version","grid","phases"],"properties":{"key":{"type":"object","required":["root","mode","camelot","confidence"],"properties":{"mode":{"enum":["major","minor"],"type":"string"},"root":{"type":"string","description":"Pitch class, e.g. \"A\"."},"camelot":{"type":"string","description":"Camelot wheel position (\"8A\") — harmonic mixing: blend long within ±1 number or same-number letter swap."},"confidence":{"type":"number","maximum":1,"minimum":0,"description":"Margin over the runner-up key; below ~0.05 treat as ambiguous."}},"additionalProperties":false},"cues":{"type":"object","required":["mixInMs","mixOutMs"],"properties":{"mixInMs":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"First sustained full-drums beat — the natural earliest blend-in point."},"mixOutMs":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Where full drums leave — blend out at or before this."}},"additionalProperties":false},"grid":{"type":"object","required":["bpm","beatOffsetMs","beatIntervalMs","beatsPerBar","phraseBars","downbeatOffsetBeats","downbeatConfidence","totalBeats"],"properties":{"bpm":{"type":"number","exclusiveMinimum":0},"phraseBars":{"type":"number","const":8},"totalBeats":{"type":"integer","maximum":9007199254740991,"minimum":0},"beatsPerBar":{"type":"number","const":4},"beatOffsetMs":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Track-time of absolute beat 0."},"beatIntervalMs":{"type":"number","exclusiveMinimum":0},"downbeatConfidence":{"type":"number","maximum":1,"minimum":0,"description":"Confidence in the beat-one inference; four-on-the-floor tracks are often ambiguous."},"downbeatOffsetBeats":{"type":"integer","maximum":3,"minimum":0,"description":"Absolute beat index modulo four inferred as beat one."}},"additionalProperties":false},"energy":{"type":"array","items":{"type":"number","maximum":1,"minimum":0},"description":"Ten normalized mean-rms buckets across the track — the energy profile a set planner sequences against."},"phases":{"type":"array","items":{"type":"object","required":["kind","start","end"],"properties":{"end":{"type":"object","required":["ms","beat","bar","beatInBar"],"properties":{"ms":{"type":"integer","maximum":9007199254740991,"minimum":0},"bar":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991,"description":"Bar index relative to the inferred first downbeat; may be negative for a pickup."},"beat":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Absolute beat index on the track grid."},"beatInBar":{"type":"integer","maximum":4,"minimum":1}},"description":"Exclusive phase boundary.","additionalProperties":false},"kind":{"type":"string","description":"intro | build | drop | breakdown | groove | outro"},"start":{"type":"object","required":["ms","beat","bar","beatInBar"],"properties":{"ms":{"type":"integer","maximum":9007199254740991,"minimum":0},"bar":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991,"description":"Bar index relative to the inferred first downbeat; may be negative for a pickup."},"beat":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Absolute beat index on the track grid."},"beatInBar":{"type":"integer","maximum":4,"minimum":1}},"additionalProperties":false}},"additionalProperties":false}},"version":{"type":"number","const":2},"loudness":{"type":"object","required":["integratedLufs","rangeLu"],"properties":{"rangeLu":{"type":"number","description":"Loudness range (LRA) — dynamics. Low (<4) = flat/repetitive feel; high (>8) = strong builds and valleys."},"integratedLufs":{"type":"number","description":"EBU R128 integrated loudness — ABSOLUTE cross-track intensity (unlike the per-track-normalized energy buckets)."}},"additionalProperties":false},"brightness":{"type":"array","items":{"type":"number","maximum":1,"minimum":0},"description":"Ten spectral-centroid buckets (0=dark/warm, 1=bright/airy) — the timbre arc for mood matching and dayparting."}},"additionalProperties":false},{"type":"null"}],"description":"Compact beat grid and phase boundaries. Fetch analysisUrl only for candidate tracks needing beat-wave detail."},"sections":{"anyOf":[{"type":"array","items":{"type":"object","required":["kind","startMs","endMs"],"properties":{"kind":{"type":"string","description":"intro | build | drop | breakdown | groove | outro"},"endMs":{"type":"number"},"startMs":{"type":"number"}},"additionalProperties":false}},{"type":"null"}],"description":"The track's phase map — feed these into queue transition cues (exit/enter by section)."},"programId":{"type":"string"},"reactions":{"type":"object","required":["up","down","voters"],"properties":{"up":{"type":"number"},"down":{"type":"number"},"voters":{"type":"array","items":{"type":"object","required":["who","reaction"],"properties":{"who":{"type":"string"},"reaction":{"enum":["up","down"],"type":"string"}},"additionalProperties":false},"description":"Named votes only — whose taste each vote represents."}},"description":"Cumulative listener thumb tallies for this program.","additionalProperties":false},"durationMs":{"type":"number"},"analysisUrl":{"type":"string","description":"Owner-proof program detail with the normalized per-beat wave map."}},"additionalProperties":false}}},"additionalProperties":false},"example":null,"exampleRequest":null,"tags":[],"displayCostAmount":"0","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"proven_free","priceSource":"registry","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"metered","summary":"metered — billed by usage","primary":{"kind":"metered","protocol":"mpp","network":"tempo","amountUsd":null,"per":"call","confidence":"unknown"},"accepted":[{"kind":"metered","protocol":"mpp","network":"tempo","amountUsd":null,"per":"call","confidence":"unknown"}]},"paymentMethods":[{"uid":"pm_J8heW46cFq6Mbv31-xSFy","protocol":"mpp","methodType":"crypto","chain":"tempo","mode":"charge","costAmount":"0","costPer":"request","priority":0,"asset":"0x20C000000000000000000000b9537d11c60E8b50","unit":"request","depositMicros":null,"planRef":"radio.programs.list:1"}],"brandName":"radio.withzero.xyz","brandSlug":"radio-withzero-xyz-mpp","brandBaseUrl":"https://radio.withzero.xyz","brandDocsUrl":null,"whatItDoes":"Returns the program library for a station including BPM, phase maps, beat grids, harmonic key analysis, and mix-in/mix-out cue points for DJ queue transitions.","exampleAgentPrompt":"Show me my station library for station ID 'abc123' — I need the BPM, Camelot key, and mix-in/mix-out cue points for each program so I can plan smooth transitions in my queue.","exampleUseCases":[{"title":"Planning harmonically compatible DJ transitions","prompt":"Pull up my station library for station 'xyz99' and show me the Camelot wheel positions and BPM for each program — I want to find which tracks I can blend together without a key clash."},{"title":"Automating queue cue point scheduling","prompt":"Get the full program list for my station 'beta7' with the mix-in and mix-out timestamps for every track so my agent can automatically schedule smooth queue transitions between sections."},{"title":"Reviewing station rotation before going live","prompt":"List all the programs in station 'morning-show-01' with their phase maps and BPM so I can review the rotation and pick the best exit and entry cues before I go live."}],"resultDescription":"A JSON object containing the station ID and an array of programs, each with programId, title, duration in milliseconds, BPM, sections, musical analysis (beat grid with BPM/offset/interval/phrase bars, harmonic key with root/mode/Camelot position/confidence, mix-in/mix-out cue timestamps in ms, phase boundaries), an analysis URL, and audience reactions.","failureModes":["Station ID not found — 404 response if the specified station does not exist","Analysis fields null — BPM and analysis object may be null if audio analysis failed for a given program","Unauthorized access — attempting to access another owner's private station library may return 401 or 403","Empty programs array — station exists but has no programs added to its library yet","Partial analysis data — some programs may have a beat grid but missing key or cue data if analysis is incomplete"],"whenToPreferThis":"Use this endpoint when you need to browse a station's full program rotation with rich DJ-oriented musical metadata — especially BPM, Camelot harmonic key, beat grids, and mix-in/mix-out cue points — to plan or automate queue transitions. Prefer this over the single-program detail endpoint when you need an overview of the entire library rather than deep beat-numbered analysis of one track.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-11T06:41:39.165Z","isFirstParty":true}