# Bop 4: compose and edit music over plain HTTP Read this first (plain text, one fetch, every example tested): https://bop-api.sahildev.com/bop/api/v4/guide - Discovery, with a ready-to-fetch example song: https://bop-api.sahildev.com/bop/api/v4 - Compose: POST https://bop-api.sahildev.com/bop/api/v4/compose with a song. The reply has an immutable revision ID and a songUrl (https://sahildev.com/bop/studio/?revision=ID) where people hear and edit it. - Edit: POST .../edit {"revision": ID, "batch": {"edits": [...]}}. Every edit makes a new revision, so branch freely. - Inspect: POST .../inspect {"revision": ID, "inspect": {"view": "summary"}}. - No POST? Every operation accepts GET with percent-encoded JSON, up to 15,000 characters. Use the bop-api.sahildev.com host for long URLs. - Sounds: https://bop-api.sahildev.com/bop/api/v4/sounds - Schemas: https://bop-api.sahildev.com/bop/api/v4/schema - Instrument history, with real-singer comparisons: https://sahildev.com/bop/instrument-review/ Revisions are public to anyone who has their ID. The API never renders audio; the studio plays songs in the browser. Describe what you composed; hearing it requires opening the songUrl. The classic editor at https://sahildev.com/bop/ and its song links, API (https://bop-api.sahildev.com/bop/api/v3) and guide (https://sahildev.com/bop/agent-guide.txt) keep working.