musicbrainz terms of service for client side/ajax website

Hello,

I’m building a small, non-commercial web project and trying to understand the intended way to use the MusicBrainz API.

My question is about client-side usage, meaning having the API calls made directly from each user’s browser (fetch/AJAX, relying on CORS) rather than routing everything through a central backend. In that setup, each user’s requests come from their own IP, and each stays well under the 1 request/second limit individually. There’s no bulk querying, just occasional lookups as a user browses.

A few things I’d like to clarify:

  1. Is this kind of per-user, client-side (browser) usage an acceptable way to use the API, given that requests are distributed across users’ own IPs rather than concentrated on one server IP?
  2. Since browsers don’t allow setting a custom User-Agent header, client-side requests go out with the normal browser User-Agent. Is that a problem, or is it fine for this kind of light per-user usage?
  3. For a project of this size, self-hosting a full mirror (musicbrainz-docker) feels like overkill and I would basically pour the money for something that brings zero revenue.

I assume it’s allowed because MusicBrainz allows CORS?

Just want to make sure I’m using the service the way you intend before I build on it. Thanks for any guidance!

1 Like