Documentação para programadores

Documentação da API JolyMusic

Integre a sua aplicação com o catálogo musical e as contas JolyMusic.

URL base: https://jolymusic.com. Todos os caminhos começam por /api.

Acesso e ciclo de vida dos tokens

Os tokens pessoais da API estão disponíveis enquanto a conta tiver um plano pago ativo. Crie-os e revogue-os em Perfil → Tokens da API.

  • O token completo é apresentado apenas uma vez; guarde-o num gestor de palavras-passe ou cofre de segredos.
  • A JolyMusic guarda apenas um hash irreversível do token.
  • Revogue imediatamente tokens perdidos ou que já não sejam necessários.
  • Tokens revogados, expirados ou associados a um plano Gratuito são recusados.

Autenticação

Envie o token pessoal em cada pedido autenticado usando exatamente este cabeçalho:

X-Joly-Api-Token: joly_your_token_here

Nunca coloque um token num URL, pacote do navegador, repositório público ou aplicação cliente. A origem dos clientes web deve ser permitida pela configuração CORS do servidor.

Início rápido

Confirme a autenticação com o endpoint do utilizador atual:

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

Num servidor HTTPS local com certificado autoassinado, adicione -k ao curl. Nunca use -k em produção.

Convenções de pedidos e respostas

  • As respostas são JSON. Envie Content-Type application/json quando o corpo for JSON.
  • As respostas de catálogo e inicialização contêm data; as respostas agregadas também incluem meta.includes e meta.count.
  • Vários endpoints de leitura devolvem um ETag. Envie If-None-Match em pedidos GET posteriores e reutilize o corpo em cache após uma resposta 304 Not Modified.
  • As rotas de itens usam identificadores inteiros positivos.
  • As rotas públicas do catálogo não exigem token. Use um token pessoal nas rotas que identificam ou alteram a conta.

Selecionar apenas os grupos de catálogo necessários

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

Referência de endpoints

Esta é a interface de integração estável. A referência OpenAPI interativa documenta o conjunto mais amplo de recursos da API Platform.

Conta e catálogo agregado

MétodoCaminhoAutenticaçãoDescrição
GET/api/mobile/meObrigatóriaConta, funções, subscrição e capacidades do utilizador atual.
GET/api/mobile/music-bootstrapOpcionalTonalidades, escalas e instrumentos. Suporta keyId, bassIntervalId e relationships.
GET/api/mobile/entitiesOpcionalCatálogo agregado. O parâmetro opcional include, separado por vírgulas, limita os grupos devolvidos.
GET/api/mobile/circular-tracksOpcionalCatálogo visível de pistas circulares.

Coleções de recursos móveis

Para obter um recurso, acrescente /{id} ao caminho da coleção.

ColeçãoItemDescrição
GET /api/mobile/keysGET /api/mobile/keys/{id}Tonalidades musicais.
GET /api/mobile/intervalsGET /api/mobile/intervals/{id}Intervalos musicais.
GET /api/mobile/key-scalesGET /api/mobile/key-scales/{id}Relações entre tonalidades e escalas.
GET /api/mobile/harmoniesGET /api/mobile/harmonies/{id}Harmonias visíveis.
GET /api/mobile/circular-rhythmsGET /api/mobile/circular-rhythms/{id}Ritmos circulares.
GET /api/mobile/sound-enginesGET /api/mobile/sound-engines/{id}Metadados dos motores de som.
GET /api/mobile/sound-presetsGET /api/mobile/sound-presets/{id}Predefinições de som visíveis.
GET /api/mobile/articlesGET /api/mobile/articles/{id}Artigos publicados.
GET /api/mobile/media-assetsGET /api/mobile/media-assets/{id}Metadados de multimédia visíveis.
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 linhas de instrumento.
GET /api/mobile/music-systemsGET /api/mobile/music-systems/{id}Catálogo de sistemas musicais.
GET /api/mobile/music-systems/{id}/stateEstado resolvido de um sistema musical.

Utilitários públicos

MétodoCaminhoDescrição
GET/api/keysColeção de tonalidades.
GET/api/instrumentsColeção de instrumentos.
GET/api/instruments_selectOpções de seleção de instrumentos.
GET/api/instrument_rows_selectOpções de seleção de linhas de instrumento.
GET/api/drum-folders.json /api/drum-folder-files.jsonPastas e ficheiros do navegador de bateria.

Exemplos de respostas

Cada endpoint apresentado acima tem abaixo um exemplo concreto de resposta JSON.

Os exemplos são abreviados para facilitar a leitura. As respostas reais podem conter mais registos e campos; os identificadores, totais, URL e datas dependem dos seus dados e direitos de acesso.

Resultados da conta e do catálogo agregado

GET/api/mobile/me

Exemplo de resposta 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

Exemplo de resposta 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

Exemplo de resposta 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

Exemplo de resposta 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 coleções e itens móveis

Tonalidades musicais.

GET/api/mobile/keys — Resultado da coleção
{
    "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 do item
{
    "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 musicais.

GET/api/mobile/intervals — Resultado da coleção
{
    "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 do item
{
    "meta": {
        "resource": "interval",
        "count": 7,
        "filters": []
    },
    "data": {
        "id": 5,
        "name": "Major Third",
        "abbreviation": "M3",
        "jazzAbbreviation": "3",
        "semitones": 4,
        "color": "#FFFF00",
        "degree": "III"
    }
}

Relações entre tonalidades e escalas.

GET/api/mobile/key-scales — Resultado da coleção
{
    "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 do item
{
    "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
            }
        ]
    }
}

Harmonias visíveis.

GET/api/mobile/harmonies — Resultado da coleção
{
    "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 do item
{
    "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 da coleção
{
    "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 do item
{
    "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"
    }
}

Metadados dos motores de som.

GET/api/mobile/sound-engines — Resultado da coleção
{
    "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 do item
{
    "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"
        ]
    }
}

Predefinições de som visíveis.

GET/api/mobile/sound-presets — Resultado da coleção
{
    "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 do item
{
    "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"
        }
    }
}

Artigos publicados.

GET/api/mobile/articles — Resultado da coleção
{
    "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 do item
{
    "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"
        ]
    }
}

Metadados de multimédia visíveis.

GET/api/mobile/media-assets — Resultado da coleção
{
    "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 do item
{
    "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 da coleção
{
    "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 do item
{
    "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 linhas de instrumento.

GET/api/mobile/instrument-rows — Resultado da coleção
{
    "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 do item
{
    "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 musicais.

GET/api/mobile/music-systems — Resultado da coleção
{
    "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 do item
{
    "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 resolvido de um sistema musical.

GET/api/mobile/music-systems/1/state — Resultado do item
{
    "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 dos utilitários públicos

GET/api/keys

Exemplo de resposta 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

Exemplo de resposta 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

Exemplo de resposta 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

Exemplo de resposta 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

Exemplo de resposta 200

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

Exemplo de resposta 200

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

Erros e resolução de problemas

EstadoSignificadoAção
200SucessoUtilize os dados da resposta.
304A representação em cache está atualizadaReutilize o corpo guardado em cache.
401Token ausente ou inválidoVerifique o cabeçalho e substitua qualquer token perdido ou revogado.
403O utilizador autenticado não tem autorizaçãoVerifique o plano, a propriedade e as permissões.
404Recurso indisponívelVerifique o caminho e o identificador.
422Falha na validação de escritaConsulte os detalhes de validação na resposta JSON.

Referência OpenAPI

A referência interativa integrada documenta os esquemas e operações dos recursos da API Platform para além dos endpoints de integração apresentados acima.

Abrir a referência da API