Entwicklerdokumentation

JolyMusic-API-Dokumentation

Integrieren Sie Ihre Anwendung mit dem Musikkatalog und den Konten von JolyMusic.

Basis-URL: https://jolymusic.com. Alle Pfade beginnen mit /api.

Zugriff und Token-Lebenszyklus

Persönliche API-Tokens sind verfügbar, solange das Konto einen aktiven kostenpflichtigen Tarif hat. Erstellen und widerrufen Sie sie unter Profil → API-Tokens.

  • Das vollständige Token wird nur einmal angezeigt; speichern Sie es in einem Passwortmanager oder Secret Store.
  • JolyMusic speichert nur einen nicht umkehrbaren Hash des Tokens.
  • Widerrufen Sie verlorene oder nicht mehr benötigte Tokens sofort.
  • Widerrufene, abgelaufene und einem kostenlosen Tarif zugeordnete Tokens werden abgelehnt.

Authentifizierung

Senden Sie das persönliche Token bei jeder authentifizierten Anfrage mit genau diesem Header:

X-Joly-Api-Token: joly_your_token_here

Legen Sie Tokens niemals in URLs, Browser-Bundles, öffentlichen Repositorys oder Client-Anwendungen ab. Die Herkunft von Browser-Clients muss durch die CORS-Konfiguration des Servers erlaubt sein.

Schnellstart

Prüfen Sie die Authentifizierung über den Endpunkt des aktuellen Benutzers:

curl --request GET \
  --header "X-Joly-Api-Token: joly_your_token_here" \
  https://jolymusic.com/api/mobile/me

Fügen Sie bei einem lokalen HTTPS-Server mit selbstsigniertem Zertifikat -k zu curl hinzu. Verwenden Sie -k niemals in der Produktion.

Anfrage- und Antwortkonventionen

  • Antworten sind JSON. Senden Sie bei einem JSON-Body Content-Type application/json.
  • Katalog- und Bootstrap-Antworten enthalten data; aggregierte Antworten enthalten zusätzlich meta.includes und meta.count.
  • Mehrere Lese-Endpunkte liefern ein ETag. Senden Sie bei späteren GET-Anfragen If-None-Match und verwenden Sie nach 304 Not Modified den zwischengespeicherten Body.
  • Elementrouten verwenden positive ganzzahlige IDs.
  • Öffentliche Katalogrouten benötigen kein Token. Verwenden Sie ein persönliches Token für Routen, die das Konto identifizieren oder ändern.

Nur benötigte Kataloggruppen auswählen

curl "https://jolymusic.com/api/mobile/entities?include=keys,intervals,instruments"

Endpunktreferenz

Dies ist die stabile Integrationsoberfläche. Die interaktive OpenAPI-Referenz dokumentiert die umfassenderen API-Platform-Ressourcen.

Konto und aggregierter Katalog

MethodePfadAuthentifizierungBeschreibung
GET/api/mobile/meErforderlichKonto, Rollen, Abonnement und Funktionen des aktuellen Benutzers.
GET/api/mobile/music-bootstrapOptionalTonarten, Skalen und Instrumente. Unterstützt keyId, bassIntervalId und relationships.
GET/api/mobile/entitiesOptionalAggregierter Katalog. Der optionale, kommagetrennte Parameter include begrenzt die zurückgegebenen Gruppen.
GET/api/mobile/circular-tracksOptionalSichtbarer Katalog kreisförmiger Spuren.

Mobile Ressourcensammlungen

Hängen Sie /{id} an den Sammlungspfad an, um eine Ressource abzurufen.

SammlungElementBeschreibung
GET /api/mobile/keysGET /api/mobile/keys/{id}Musikalische Tonarten.
GET /api/mobile/intervalsGET /api/mobile/intervals/{id}Musikalische Intervalle.
GET /api/mobile/key-scalesGET /api/mobile/key-scales/{id}Beziehungen zwischen Tonarten und Skalen.
GET /api/mobile/harmoniesGET /api/mobile/harmonies/{id}Sichtbare Harmonien.
GET /api/mobile/circular-rhythmsGET /api/mobile/circular-rhythms/{id}Kreisförmige Rhythmen.
GET /api/mobile/sound-enginesGET /api/mobile/sound-engines/{id}Metadaten der Klangerzeuger.
GET /api/mobile/sound-presetsGET /api/mobile/sound-presets/{id}Sichtbare Klangvoreinstellungen.
GET /api/mobile/articlesGET /api/mobile/articles/{id}Veröffentlichte Artikel.
GET /api/mobile/media-assetsGET /api/mobile/media-assets/{id}Sichtbare Medienmetadaten.
GET /api/mobile/instrumentsGET /api/mobile/instruments/{id}Instrumentenkatalog.
GET /api/mobile/instrument-rowsGET /api/mobile/instrument-rows/{id}Katalog der Instrumentenreihen.
GET /api/mobile/music-systemsGET /api/mobile/music-systems/{id}Katalog der Musiksysteme.
GET /api/mobile/music-systems/{id}/stateAufgelöster Zustand eines Musiksystems.

Öffentliche Hilfsendpunkte

MethodePfadBeschreibung
GET/api/keysTonartensammlung.
GET/api/instrumentsInstrumentensammlung.
GET/api/instruments_selectAuswahloptionen für Instrumente.
GET/api/instrument_rows_selectAuswahloptionen für Instrumentenreihen.
GET/api/drum-folders.json /api/drum-folder-files.jsonOrdner und Dateien des Drum-Browsers.

Antwortbeispiele

Für jeden oben aufgeführten Endpunkt folgt ein konkretes Beispiel einer JSON-Antwort.

Die Beispiele sind zur besseren Lesbarkeit gekürzt. Tatsächliche Antworten können mehr Datensätze und Felder enthalten; IDs, Anzahlen, URLs und Datumswerte hängen von Ihren Daten und Zugriffsrechten ab.

Ergebnisse für Konto und aggregierten Katalog

GET/api/mobile/me

Beispiel für eine 200-Antwort

{
    "id": 42,
    "username": "ada",
    "email": "ada@example.com",
    "roles": [
        "ROLE_USER"
    ],
    "personas": [
        "musician"
    ],
    "favoriteInstrumentIds": [
        10
    ],
    "locale": "en",
    "isVerified": true,
    "tier": "premium",
    "subscriptionPlan": "premium",
    "subscriptionTier": "premium",
    "subscriptionPlanCode": "premium-monthly",
    "groupQuota": 10,
    "canMakePrivate": true,
    "canUsePaidFeatures": true
}
GET/api/mobile/music-bootstrap

Beispiel für eine 200-Antwort

{
    "meta": {
        "includes": [
            "keys",
            "key_scales",
            "instruments"
        ],
        "count": {
            "keys": 24,
            "key_scales": 202,
            "instruments": 33
        }
    },
    "data": {
        "keys": [
            {
                "id": 8,
                "baseTone": {
                    "id": 1,
                    "name": "C",
                    "midi": 48,
                    "solfege": "do"
                },
                "alteration": 0,
                "accidentals": 0,
                "signature": "",
                "frequency": 415.305,
                "color": "#ff0000"
            }
        ],
        "key_scales": [
            {
                "id": 1,
                "keyId": 8,
                "name": "Major (Ionian)",
                "type": "scale",
                "signature": "1,2,2,1,2,2,2",
                "fullName": "C Major (Ionian)",
                "keyToneName": "C",
                "canonicalPath": "\/chords-and-scales\/c\/major-ionian",
                "tones": [
                    {
                        "intervalId": 1,
                        "intervalAbbr": "1",
                        "noteName": "C",
                        "midiNumber": 48
                    },
                    {
                        "intervalId": 3,
                        "intervalAbbr": "2",
                        "noteName": "D",
                        "midiNumber": 50
                    }
                ]
            }
        ],
        "instruments": [
            {
                "id": 10,
                "name": "Bass (4-string)",
                "slug": "bass-4-string",
                "familyRouteKey": "fretboard",
                "familyCode": "FRETBOARD",
                "familyName": "Fretboard",
                "isPublic": true,
                "isPublished": true,
                "musicSystemIds": [
                    1
                ],
                "allowedPlaybackCapabilities": [
                    "monotonal",
                    "polytonal"
                ]
            }
        ]
    }
}
GET/api/mobile/entities?include=keys,intervals,instruments

Beispiel für eine 200-Antwort

{
    "meta": {
        "includes": [
            "keys",
            "intervals",
            "instruments"
        ],
        "count": {
            "keys": 24,
            "intervals": 25,
            "instruments": 33
        }
    },
    "data": {
        "keys": [
            {
                "id": 8,
                "baseTone": {
                    "id": 1,
                    "name": "C",
                    "midi": 48,
                    "solfege": "do"
                },
                "alteration": 0,
                "accidentals": 0,
                "signature": "",
                "frequency": 415.305,
                "color": "#ff0000"
            }
        ],
        "intervals": [
            {
                "id": 5,
                "name": "Major Third",
                "abbreviation": "M3",
                "jazzAbbreviation": "3",
                "semitones": 4,
                "color": "#FFFF00",
                "degree": "III"
            }
        ],
        "instruments": [
            {
                "id": 10,
                "name": "Bass (4-string)",
                "slug": "bass-4-string",
                "familyRouteKey": "fretboard",
                "familyCode": "FRETBOARD",
                "familyName": "Fretboard",
                "isPublic": true,
                "isPublished": true,
                "musicSystemIds": [
                    1
                ],
                "allowedPlaybackCapabilities": [
                    "monotonal",
                    "polytonal"
                ]
            }
        ]
    }
}
GET/api/mobile/circular-tracks?limit=1

Beispiel für eine 200-Antwort

{
    "meta": {
        "resource": "circular_tracks",
        "count": 1,
        "total": 148,
        "limit": 1
    },
    "data": [
        {
            "id": "rhythm:148",
            "kind": "rhythm",
            "name": "Circular Dubstep Half Time",
            "isPublic": true,
            "transport": {
                "bpm": 140,
                "ppq": 960,
                "beatsPerBar": 4,
                "beatUnit": 4
            },
            "ringCount": 4,
            "circularTrack": {
                "id": "standalone-circular-track",
                "type": "CIRCULAR",
                "rings": []
            },
            "source": {
                "type": "rhythm",
                "rhythmId": 148,
                "slug": "circular-dubstep-half-time"
            }
        }
    ]
}

Ergebnisse mobiler Sammlungen und Elemente

Musikalische Tonarten.

GET/api/mobile/keys — Sammlungsergebnis
{
    "meta": {
        "resource": "keys",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 8,
            "baseTone": {
                "id": 1,
                "name": "C",
                "midi": 48,
                "solfege": "do"
            },
            "alteration": 0,
            "accidentals": 0,
            "signature": "",
            "frequency": 415.305,
            "color": "#ff0000"
        }
    ]
}
GET/api/mobile/keys/8 — Elementergebnis
{
    "meta": {
        "resource": "key",
        "count": 7,
        "filters": []
    },
    "data": {
        "id": 8,
        "baseTone": {
            "id": 1,
            "name": "C",
            "midi": 48,
            "solfege": "do"
        },
        "alteration": 0,
        "accidentals": 0,
        "signature": "",
        "frequency": 415.305,
        "color": "#ff0000"
    }
}

Musikalische Intervalle.

GET/api/mobile/intervals — Sammlungsergebnis
{
    "meta": {
        "resource": "intervals",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 5,
            "name": "Major Third",
            "abbreviation": "M3",
            "jazzAbbreviation": "3",
            "semitones": 4,
            "color": "#FFFF00",
            "degree": "III"
        }
    ]
}
GET/api/mobile/intervals/5 — Elementergebnis
{
    "meta": {
        "resource": "interval",
        "count": 7,
        "filters": []
    },
    "data": {
        "id": 5,
        "name": "Major Third",
        "abbreviation": "M3",
        "jazzAbbreviation": "3",
        "semitones": 4,
        "color": "#FFFF00",
        "degree": "III"
    }
}

Beziehungen zwischen Tonarten und Skalen.

GET/api/mobile/key-scales — Sammlungsergebnis
{
    "meta": {
        "resource": "key_scales",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 1,
            "keyId": 8,
            "name": "Major (Ionian)",
            "type": "scale",
            "signature": "1,2,2,1,2,2,2",
            "fullName": "C Major (Ionian)",
            "keyToneName": "C",
            "canonicalPath": "\/chords-and-scales\/c\/major-ionian",
            "tones": [
                {
                    "intervalId": 1,
                    "intervalAbbr": "1",
                    "noteName": "C",
                    "midiNumber": 48
                },
                {
                    "intervalId": 3,
                    "intervalAbbr": "2",
                    "noteName": "D",
                    "midiNumber": 50
                }
            ]
        }
    ]
}
GET/api/mobile/key-scales/1 — Elementergebnis
{
    "meta": {
        "resource": "key_scale",
        "count": 9,
        "filters": []
    },
    "data": {
        "id": 1,
        "keyId": 8,
        "name": "Major (Ionian)",
        "type": "scale",
        "signature": "1,2,2,1,2,2,2",
        "fullName": "C Major (Ionian)",
        "keyToneName": "C",
        "canonicalPath": "\/chords-and-scales\/c\/major-ionian",
        "tones": [
            {
                "intervalId": 1,
                "intervalAbbr": "1",
                "noteName": "C",
                "midiNumber": 48
            },
            {
                "intervalId": 3,
                "intervalAbbr": "2",
                "noteName": "D",
                "midiNumber": 50
            }
        ]
    }
}

Sichtbare Harmonien.

GET/api/mobile/harmonies — Sammlungsergebnis
{
    "meta": {
        "resource": "harmonies",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 42,
            "name": "Autumn Leaves",
            "ownerId": 3,
            "ownerUsername": "jolymusic",
            "isPublic": true,
            "events": [
                {
                    "id": 101,
                    "startTick": 0,
                    "durationTick": 3840,
                    "keyId": 8,
                    "scaleId": 1,
                    "label": "Cmaj7"
                }
            ],
            "sections": [
                {
                    "id": 12,
                    "sectionType": "A",
                    "label": "Theme A",
                    "position": 0,
                    "repeatCount": 2
                }
            ],
            "ownerTags": [
                "jazz"
            ],
            "userTags": []
        }
    ]
}
GET/api/mobile/harmonies/42 — Elementergebnis
{
    "meta": {
        "resource": "harmony",
        "count": 9,
        "filters": []
    },
    "data": {
        "id": 42,
        "name": "Autumn Leaves",
        "ownerId": 3,
        "ownerUsername": "jolymusic",
        "isPublic": true,
        "events": [
            {
                "id": 101,
                "startTick": 0,
                "durationTick": 3840,
                "keyId": 8,
                "scaleId": 1,
                "label": "Cmaj7"
            }
        ],
        "sections": [
            {
                "id": 12,
                "sectionType": "A",
                "label": "Theme A",
                "position": 0,
                "repeatCount": 2
            }
        ],
        "ownerTags": [
            "jazz"
        ],
        "userTags": []
    }
}

Kreisförmige Rhythmen.

GET/api/mobile/circular-rhythms — Sammlungsergebnis
{
    "meta": {
        "resource": "circular_rhythms",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 148,
            "name": "Circular Dubstep Half Time",
            "slug": "circular-dubstep-half-time",
            "isPublic": true,
            "ownerTags": [
                "dubstep",
                "half-time"
            ],
            "state": {
                "bpm": 140,
                "ppq": 960,
                "beatsPerBar": 4
            },
            "updatedAt": "2026-06-09T00:30:30+00:00"
        }
    ]
}
GET/api/mobile/circular-rhythms/148 — Elementergebnis
{
    "meta": {
        "resource": "circular_rhythm",
        "count": 7,
        "filters": []
    },
    "data": {
        "id": 148,
        "name": "Circular Dubstep Half Time",
        "slug": "circular-dubstep-half-time",
        "isPublic": true,
        "ownerTags": [
            "dubstep",
            "half-time"
        ],
        "state": {
            "bpm": 140,
            "ppq": 960,
            "beatsPerBar": 4
        },
        "updatedAt": "2026-06-09T00:30:30+00:00"
    }
}

Metadaten der Klangerzeuger.

GET/api/mobile/sound-engines — Sammlungsergebnis
{
    "meta": {
        "resource": "sound_engines",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 1,
            "code": "tone",
            "label": "Tone.js",
            "description": "Browser synthesis and sampling engine",
            "isEnabled": true,
            "defaultConfig": {
                "playMode": "pitched"
            },
            "supportedPlaybackCapabilities": [
                "monotonal",
                "polytonal",
                "percussion"
            ]
        }
    ]
}
GET/api/mobile/sound-engines/1 — Elementergebnis
{
    "meta": {
        "resource": "sound_engine",
        "count": 7,
        "filters": []
    },
    "data": {
        "id": 1,
        "code": "tone",
        "label": "Tone.js",
        "description": "Browser synthesis and sampling engine",
        "isEnabled": true,
        "defaultConfig": {
            "playMode": "pitched"
        },
        "supportedPlaybackCapabilities": [
            "monotonal",
            "polytonal",
            "percussion"
        ]
    }
}

Sichtbare Klangvoreinstellungen.

GET/api/mobile/sound-presets — Sammlungsergebnis
{
    "meta": {
        "resource": "sound_presets",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 29,
            "name": "Tone.js \u2022 Realistic Acoustic Kit",
            "color": "#e67e22",
            "isPublic": true,
            "isKit": true,
            "playbackCapability": "percussion",
            "engine": {
                "id": 1,
                "code": "tone",
                "label": "Tone.js"
            },
            "playback": {
                "engineCode": "tone",
                "playMode": "percussion",
                "toneInstrument": "db-tone:29"
            }
        }
    ]
}
GET/api/mobile/sound-presets/29 — Elementergebnis
{
    "meta": {
        "resource": "sound_preset",
        "count": 8,
        "filters": []
    },
    "data": {
        "id": 29,
        "name": "Tone.js \u2022 Realistic Acoustic Kit",
        "color": "#e67e22",
        "isPublic": true,
        "isKit": true,
        "playbackCapability": "percussion",
        "engine": {
            "id": 1,
            "code": "tone",
            "label": "Tone.js"
        },
        "playback": {
            "engineCode": "tone",
            "playMode": "percussion",
            "toneInstrument": "db-tone:29"
        }
    }
}

Veröffentlichte Artikel.

GET/api/mobile/articles — Sammlungsergebnis
{
    "meta": {
        "resource": "articles",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 17,
            "title": "Understanding tonal gravity",
            "slug": "understanding-tonal-gravity",
            "content": "<p>Article content\u2026<\/p>",
            "published": true,
            "createdAt": "2026-01-12T10:00:00+00:00",
            "updatedAt": "2026-06-10T14:30:00+00:00",
            "tags": [
                "harmony",
                "theory"
            ]
        }
    ]
}
GET/api/mobile/articles/17 — Elementergebnis
{
    "meta": {
        "resource": "article",
        "count": 8,
        "filters": []
    },
    "data": {
        "id": 17,
        "title": "Understanding tonal gravity",
        "slug": "understanding-tonal-gravity",
        "content": "<p>Article content\u2026<\/p>",
        "published": true,
        "createdAt": "2026-01-12T10:00:00+00:00",
        "updatedAt": "2026-06-10T14:30:00+00:00",
        "tags": [
            "harmony",
            "theory"
        ]
    }
}

Sichtbare Medienmetadaten.

GET/api/mobile/media-assets — Sammlungsergebnis
{
    "meta": {
        "resource": "media_assets",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 91,
            "title": "Practice backing track",
            "nameSlug": "practice-backing-track",
            "kind": "audio",
            "audience": "public",
            "mimeType": "audio\/mpeg",
            "path": "\/uploads\/media\/practice-backing-track.mp3",
            "durationMs": 182000,
            "isPublic": true
        }
    ]
}
GET/api/mobile/media-assets/91 — Elementergebnis
{
    "meta": {
        "resource": "media_asset",
        "count": 9,
        "filters": []
    },
    "data": {
        "id": 91,
        "title": "Practice backing track",
        "nameSlug": "practice-backing-track",
        "kind": "audio",
        "audience": "public",
        "mimeType": "audio\/mpeg",
        "path": "\/uploads\/media\/practice-backing-track.mp3",
        "durationMs": 182000,
        "isPublic": true
    }
}

Instrumentenkatalog.

GET/api/mobile/instruments — Sammlungsergebnis
{
    "meta": {
        "resource": "instruments",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 10,
            "name": "Bass (4-string)",
            "slug": "bass-4-string",
            "familyRouteKey": "fretboard",
            "familyCode": "FRETBOARD",
            "familyName": "Fretboard",
            "isPublic": true,
            "isPublished": true,
            "musicSystemIds": [
                1
            ],
            "allowedPlaybackCapabilities": [
                "monotonal",
                "polytonal"
            ]
        }
    ]
}
GET/api/mobile/instruments/10 — Elementergebnis
{
    "meta": {
        "resource": "instrument",
        "count": 10,
        "filters": []
    },
    "data": {
        "id": 10,
        "name": "Bass (4-string)",
        "slug": "bass-4-string",
        "familyRouteKey": "fretboard",
        "familyCode": "FRETBOARD",
        "familyName": "Fretboard",
        "isPublic": true,
        "isPublished": true,
        "musicSystemIds": [
            1
        ],
        "allowedPlaybackCapabilities": [
            "monotonal",
            "polytonal"
        ]
    }
}

Katalog der Instrumentenreihen.

GET/api/mobile/instrument-rows — Sammlungsergebnis
{
    "meta": {
        "resource": "instrument_rows",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 2137,
            "instrumentId": 20,
            "instrumentName": "Drum Kit",
            "familyCode": "DRUMS",
            "midi": 36,
            "label": "Kick",
            "x": 1,
            "y": 3,
            "z": 0,
            "config": {
                "drum": "kick",
                "midi": 36,
                "isPercussion": true
            }
        }
    ]
}
GET/api/mobile/instrument-rows/2137 — Elementergebnis
{
    "meta": {
        "resource": "instrument_row",
        "count": 10,
        "filters": []
    },
    "data": {
        "id": 2137,
        "instrumentId": 20,
        "instrumentName": "Drum Kit",
        "familyCode": "DRUMS",
        "midi": 36,
        "label": "Kick",
        "x": 1,
        "y": 3,
        "z": 0,
        "config": {
            "drum": "kick",
            "midi": 36,
            "isPercussion": true
        }
    }
}

Katalog der Musiksysteme.

GET/api/mobile/music-systems — Sammlungsergebnis
{
    "meta": {
        "resource": "music_systems",
        "count": 1,
        "filters": []
    },
    "data": [
        {
            "id": 1,
            "name": "12-tone equal temperament",
            "slug": "tet-12",
            "systemType": "equal_temperament",
            "octaveRatio": 2,
            "divisions": 12,
            "isPublic": true,
            "intervals": [
                {
                    "stepIndex": 0,
                    "label": "Unison",
                    "ratio": 1,
                    "cents": 0,
                    "color": "#FF0000"
                },
                {
                    "stepIndex": 1,
                    "label": "Minor Second",
                    "ratio": 1.059463,
                    "cents": 100,
                    "color": "#FF6600"
                }
            ]
        }
    ]
}
GET/api/mobile/music-systems/1 — Elementergebnis
{
    "meta": {
        "resource": "music_system",
        "count": 8,
        "filters": []
    },
    "data": {
        "id": 1,
        "name": "12-tone equal temperament",
        "slug": "tet-12",
        "systemType": "equal_temperament",
        "octaveRatio": 2,
        "divisions": 12,
        "isPublic": true,
        "intervals": [
            {
                "stepIndex": 0,
                "label": "Unison",
                "ratio": 1,
                "cents": 0,
                "color": "#FF0000"
            },
            {
                "stepIndex": 1,
                "label": "Minor Second",
                "ratio": 1.059463,
                "cents": 100,
                "color": "#FF6600"
            }
        ]
    }
}

Aufgelöster Zustand eines Musiksystems.

GET/api/mobile/music-systems/1/state — Elementergebnis
{
    "meta": {
        "resource": "music_system_state",
        "count": 5,
        "filters": []
    },
    "data": {
        "musicSystemId": 1,
        "slug": "tet-12",
        "divisions": 12,
        "octaveRatio": 2,
        "tones": [
            {
                "stepIndex": 0,
                "label": "C",
                "cents": 0,
                "frequency": 261.626
            },
            {
                "stepIndex": 1,
                "label": "C\u266f",
                "cents": 100,
                "frequency": 277.183
            }
        ]
    }
}

Ergebnisse öffentlicher Hilfsendpunkte

GET/api/keys

Beispiel für eine 200-Antwort

[
    {
        "id": 8,
        "baseTone": {
            "id": 1,
            "name": "C",
            "midi": 48,
            "solfege": "do"
        },
        "alteration": 0,
        "accidentals": 0,
        "signature": "",
        "frequency": 415.305,
        "color": "#ff0000"
    }
]
GET/api/instruments

Beispiel für eine 200-Antwort

[
    {
        "id": 10,
        "name": "Bass (4-string)",
        "slug": "bass-4-string",
        "familyRouteKey": "fretboard",
        "familyCode": "FRETBOARD",
        "familyName": "Fretboard",
        "isPublic": true,
        "isPublished": true,
        "musicSystemIds": [
            1
        ],
        "allowedPlaybackCapabilities": [
            "monotonal",
            "polytonal"
        ]
    }
]
GET/api/instruments_select

Beispiel für eine 200-Antwort

{
    "items": [
        {
            "id": 10,
            "name": "Bass (4-string)",
            "familyCode": "FRETBOARD",
            "isPublished": true,
            "musicSystemIds": [
                1
            ],
            "isFavorite": false,
            "slug": "bass-4-string"
        }
    ]
}
GET/api/instrument_rows_select?instrumentId=20

Beispiel für eine 200-Antwort

{
    "items": [
        {
            "id": 2137,
            "instrumentId": 20,
            "instrumentName": "Drum Kit",
            "familyCode": "DRUMS",
            "midi": 36,
            "label": "Kick",
            "x": 1,
            "y": 3,
            "z": 0,
            "config": {
                "drum": "kick",
                "midi": 36,
                "isPercussion": true
            }
        }
    ]
}
GET/api/drum-folders.json

Beispiel für eine 200-Antwort

{
    "folders": [
        {
            "label": "acoustic-kit",
            "path": "\/samples\/drums\/acoustic-kit"
        }
    ]
}
GET/api/drum-folder-files.json?path=/samples/drums/acoustic-kit

Beispiel für eine 200-Antwort

{
    "path": "\/samples\/drums\/acoustic-kit",
    "files": [
        {
            "url": "\/samples\/drums\/acoustic-kit\/kick.wav",
            "name": "kick.wav"
        }
    ]
}

Fehler und Problembehebung

StatusBedeutungMaßnahme
200ErfolgreichVerwenden Sie die Antwortdaten.
304Zwischengespeicherte Darstellung ist aktuellVerwenden Sie den zwischengespeicherten Body.
401Token fehlt oder ist ungültigPrüfen Sie den Header und ersetzen Sie verlorene oder widerrufene Tokens.
403Authentifizierter Benutzer ist nicht berechtigtPrüfen Sie Tarif, Eigentum und Berechtigungen.
404Ressource nicht verfügbarPrüfen Sie Pfad und ID.
422Validierung beim Schreiben fehlgeschlagenPrüfen Sie die Validierungsdetails in der JSON-Antwort.

OpenAPI-Referenz

Die integrierte interaktive Referenz dokumentiert Schemas und Operationen der API-Platform-Ressourcen über die oben genannten Integrationsendpunkte hinaus.

API-Referenz öffnen