MusicBrainz · Agentic Access
MusicBrainz Agentic Access
x-agentic-access
generated
MusicBrainz exposes 36 API operations that an AI agent could call, of which 6 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.
By consequence: 30 read and 6 write.
Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.
MusicMetadataEncyclopediaOpen DataCatalogIdentifiersISRCISWCMBIDDiscIDArtistsReleasesRecordingsWorksLabelsCover ArtOpen SourceNon Profit
Operations: 36
Acting: 6
Human-in-the-loop: 0
Method: generated
By consequence
read 30
write 6
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/musicbrainz-web-service-openapi.yml
description: Recommended x-agentic-access execution contracts, classified heuristically from
the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
audience per deployment. See research/curity/agentic-governance/.
summary:
operations: 36
by_action_class:
connected: 30
acting: 6
by_consequence:
read: 30
write: 6
human_in_the_loop_required: 0
operations:
- path: /artist/{mbid}
method: get
operationId: lookupArtist
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /artist
method: get
operationId: browseOrSearchArtists
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /release/{mbid}
method: get
operationId: lookupRelease
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /release
method: get
operationId: browseOrSearchReleases
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /release
method: post
operationId: submitBarcodes
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- submit_barcode
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /release-group/{mbid}
method: get
operationId: lookupReleaseGroup
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /release-group
method: get
operationId: browseOrSearchReleaseGroups
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /recording/{mbid}
method: get
operationId: lookupRecording
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /recording
method: get
operationId: browseOrSearchRecordings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /recording
method: post
operationId: submitISRCs
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- submit_isrc
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /work/{mbid}
method: get
operationId: lookupWork
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /work
method: get
operationId: browseOrSearchWorks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /label/{mbid}
method: get
operationId: lookupLabel
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /label
method: get
operationId: browseOrSearchLabels
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /place/{mbid}
method: get
operationId: lookupPlace
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /place
method: get
operationId: browseOrSearchPlaces
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /area/{mbid}
method: get
operationId: lookupArea
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /area
method: get
operationId: searchAreas
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /event/{mbid}
method: get
operationId: lookupEvent
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /event
method: get
operationId: browseOrSearchEvents
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /instrument/{mbid}
method: get
operationId: lookupInstrument
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /instrument
method: get
operationId: searchInstruments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /series/{mbid}
method: get
operationId: lookupSeries
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /series
method: get
operationId: searchSeries
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /url/{mbid}
method: get
operationId: lookupUrl
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /url
method: get
operationId: lookupUrlsByResource
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /genre/all
method: get
operationId: listAllGenres
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /isrc/{isrc}
method: get
operationId: lookupRecordingsByISRC
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /iswc/{iswc}
method: get
operationId: lookupWorksByISWC
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /discid/{discid}
method: get
operationId: lookupReleasesByDiscID
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /collection
method: get
operationId: listUserCollections
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /collection/{collection_mbid}
method: get
operationId: lookupCollection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /collection/{collection_mbid}/{entity_type}
method: put
operationId: addEntitiesToCollection
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- collection
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /collection/{collection_mbid}/{entity_type}
method: delete
operationId: removeEntitiesFromCollection
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- collection
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /tag
method: post
operationId: submitTags
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tag
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /rating
method: post
operationId: submitRatings
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- rating
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required