Documentación para desarrolladores

Documentación de la API de JolyMusic

Integra tu aplicación con el catálogo musical y las cuentas de JolyMusic.

URL base: https://jolymusic.com. Todas las rutas comienzan por /api.

Acceso y ciclo de vida de los tokens

Los tokens personales de API están disponibles mientras la cuenta tenga un plan de pago activo. Créelos y revócalos en Perfil → Tokens de API.

  • El token completo se muestra una sola vez; guárdalo en un gestor de contraseñas o almacén de secretos.
  • JolyMusic solo almacena un hash irreversible del token.
  • Revoca inmediatamente los tokens perdidos o que ya no necesites.
  • Se rechazan los tokens revocados, caducados o pertenecientes a un plan Gratuito.

Autenticación

Envía el token personal en cada solicitud autenticada mediante este encabezado exacto:

X-Joly-Api-Token: joly_your_token_here

Nunca incluyas un token en una URL, un paquete del navegador, un repositorio público ni una aplicación cliente. El origen de los clientes web debe estar permitido por la configuración CORS del servidor.

Inicio rápido

Confirma la autenticación con el endpoint del usuario actual:

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

Para un servidor HTTPS local con certificado autofirmado, añade -k a curl. Nunca uses -k en producción.

Convenciones de solicitudes y respuestas

  • Las respuestas son JSON. Envía Content-Type application/json cuando el cuerpo sea JSON.
  • Las respuestas de catálogo e inicio contienen data; las respuestas agregadas también incluyen meta.includes y meta.count.
  • Varios endpoints de lectura devuelven un ETag. Envía If-None-Match en solicitudes GET posteriores y reutiliza el cuerpo almacenado tras una respuesta 304 Not Modified.
  • Las rutas de elementos usan identificadores enteros positivos.
  • Las rutas públicas del catálogo no requieren token. Usa un token personal para las rutas que identifican o modifican la cuenta.

Selecciona solo los grupos de catálogo necesarios

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

Referencia de endpoints

Esta es la interfaz de integración estable. La referencia OpenAPI interactiva documenta el conjunto más amplio de recursos de API Platform.

Cuenta y catálogo agregado

MétodoRutaAutenticaciónDescripción
GET/api/mobile/meObligatoriaCuenta, roles, suscripción y capacidades del usuario actual.
GET/api/mobile/music-bootstrapOpcionalTonalidades, escalas e instrumentos. Admite keyId, bassIntervalId y relationships.
GET/api/mobile/entitiesOpcionalCatálogo agregado. El parámetro opcional include, separado por comas, limita los grupos devueltos.
GET/api/mobile/circular-tracksOpcionalCatálogo visible de pistas circulares.

Colecciones de recursos móviles

Para obtener un recurso, añade /{id} a la ruta de la colección.

ColecciónElementoDescripción
GET /api/mobile/keysGET /api/mobile/keys/{id}Tonalidades musicales.
GET /api/mobile/intervalsGET /api/mobile/intervals/{id}Intervalos musicales.
GET /api/mobile/key-scalesGET /api/mobile/key-scales/{id}Relaciones entre tonalidades y escalas.
GET /api/mobile/harmoniesGET /api/mobile/harmonies/{id}Armonías visibles.
GET /api/mobile/circular-rhythmsGET /api/mobile/circular-rhythms/{id}Ritmos circulares.
GET /api/mobile/sound-enginesGET /api/mobile/sound-engines/{id}Metadatos de motores de sonido.
GET /api/mobile/sound-presetsGET /api/mobile/sound-presets/{id}Preajustes de sonido visibles.
GET /api/mobile/articlesGET /api/mobile/articles/{id}Artículos publicados.
GET /api/mobile/media-assetsGET /api/mobile/media-assets/{id}Metadatos de medios visibles.
GET /api/mobile/instrumentsGET /api/mobile/instruments/{id}Catálogo de instrumentos.
GET /api/mobile/instrument-rowsGET /api/mobile/instrument-rows/{id}Catálogo de filas de instrumento.
GET /api/mobile/music-systemsGET /api/mobile/music-systems/{id}Catálogo de sistemas musicales.
GET /api/mobile/music-systems/{id}/stateEstado resuelto de un sistema musical.

Utilidades públicas

MétodoRutaDescripción
GET/api/keysColección de tonalidades.
GET/api/instrumentsColección de instrumentos.
GET/api/instruments_selectOpciones de selección de instrumentos.
GET/api/instrument_rows_selectOpciones de selección de filas de instrumento.
GET/api/drum-folders.json /api/drum-folder-files.jsonCarpetas y archivos del explorador de baterías.

Ejemplos de respuestas

Cada endpoint indicado anteriormente tiene a continuación un ejemplo concreto de respuesta JSON.

Los ejemplos están abreviados para facilitar la lectura. Las respuestas reales pueden contener más registros y campos; los identificadores, cantidades, URL y fechas dependen de tus datos y permisos de acceso.

Resultados de cuenta y catálogo agregado

GET/api/mobile/me

Ejemplo de respuesta 200

{
    "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

Ejemplo de respuesta 200

{
    "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

Ejemplo de respuesta 200

{
    "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

Ejemplo de respuesta 200

{
    "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"
            }
        }
    ]
}

Resultados de colecciones y elementos móviles

Tonalidades musicales.

GET/api/mobile/keys — Resultado de colección
{
    "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 — Resultado de elemento
{
    "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"
    }
}

Intervalos musicales.

GET/api/mobile/intervals — Resultado de colección
{
    "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 — Resultado de elemento
{
    "meta": {
        "resource": "interval",
        "count": 7,
        "filters": []
    },
    "data": {
        "id": 5,
        "name": "Major Third",
        "abbreviation": "M3",
        "jazzAbbreviation": "3",
        "semitones": 4,
        "color": "#FFFF00",
        "degree": "III"
    }
}

Relaciones entre tonalidades y escalas.

GET/api/mobile/key-scales — Resultado de colección
{
    "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 — Resultado de elemento
{
    "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
            }
        ]
    }
}

Armonías visibles.

GET/api/mobile/harmonies — Resultado de colección
{
    "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 — Resultado de elemento
{
    "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": []
    }
}

Ritmos circulares.

GET/api/mobile/circular-rhythms — Resultado de colección
{
    "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 — Resultado de elemento
{
    "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"
    }
}

Metadatos de motores de sonido.

GET/api/mobile/sound-engines — Resultado de colección
{
    "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 — Resultado de elemento
{
    "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"
        ]
    }
}

Preajustes de sonido visibles.

GET/api/mobile/sound-presets — Resultado de colección
{
    "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 — Resultado de elemento
{
    "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"
        }
    }
}

Artículos publicados.

GET/api/mobile/articles — Resultado de colección
{
    "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 — Resultado de elemento
{
    "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"
        ]
    }
}

Metadatos de medios visibles.

GET/api/mobile/media-assets — Resultado de colección
{
    "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 — Resultado de elemento
{
    "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
    }
}

Catálogo de instrumentos.

GET/api/mobile/instruments — Resultado de colección
{
    "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 — Resultado de elemento
{
    "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"
        ]
    }
}

Catálogo de filas de instrumento.

GET/api/mobile/instrument-rows — Resultado de colección
{
    "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 — Resultado de elemento
{
    "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
        }
    }
}

Catálogo de sistemas musicales.

GET/api/mobile/music-systems — Resultado de colección
{
    "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 — Resultado de elemento
{
    "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"
            }
        ]
    }
}

Estado resuelto de un sistema musical.

GET/api/mobile/music-systems/1/state — Resultado de elemento
{
    "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
            }
        ]
    }
}

Resultados de utilidades públicas

GET/api/keys

Ejemplo de respuesta 200

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

Ejemplo de respuesta 200

[
    {
        "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

Ejemplo de respuesta 200

{
    "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

Ejemplo de respuesta 200

{
    "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

Ejemplo de respuesta 200

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

Ejemplo de respuesta 200

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

Errores y solución de problemas

EstadoSignificadoAcción
200Solicitud correctaUsa los datos de la respuesta.
304La representación en caché está actualizadaReutiliza el cuerpo almacenado en caché.
401Token ausente o no válidoComprueba el encabezado y sustituye cualquier token perdido o revocado.
403El usuario autenticado no está autorizadoComprueba el plan, la propiedad y los permisos.
404Recurso no disponibleComprueba la ruta y el identificador.
422Error de validación de escrituraConsulta los detalles de validación en la respuesta JSON.

Referencia OpenAPI

La referencia interactiva integrada documenta los esquemas y operaciones de los recursos de API Platform más allá de los endpoints de integración anteriores.

Abrir la referencia de la API