{"library":"musicbrainz-api","title":"MusicBrainz API Client","description":"The `musicbrainz-api` package provides a TypeScript-first client for interacting with the MusicBrainz web service, enabling both reading detailed metadata and submitting new information to the database. Currently at stable version 1.2.0, the library maintains an active release cadence with updates typically occurring every few weeks or months. Key differentiators include its robust support for retrieving various entity types, comprehensive TypeScript definitions for enhanced developer experience, and intelligent request throttling that automatically adheres to MusicBrainz API rate limits, including retries for rate-limit hits. It simplifies the required application identification (User-Agent) by prompting for `appName`, `appVersion`, and `appContactInfo` during client configuration. This library exclusively uses ECMAScript Modules (ESM) since version 8, requiring Node.js 16 or higher for usage.","language":"javascript","status":"active","last_verified":"Tue Apr 21","install":{"commands":["npm install musicbrainz-api"],"cli":null},"imports":["import { MusicBrainzApi } from 'musicbrainz-api'","import type { Artist } from 'musicbrainz-api'","import type { ReleaseIncludes } from 'musicbrainz-api'"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { MusicBrainzApi } from 'musicbrainz-api';\nimport type { Artist } from 'musicbrainz-api';\n\nconst client = new MusicBrainzApi({\n  appName: 'MyAwesomeApp',\n  appVersion: '1.0.0',\n  appContactInfo: 'mailto:me@example.com' // Required by MusicBrainz API\n});\n\nasync function searchArtist(query: string) {\n  try {\n    console.log(`Searching for artist: ${query}...`);\n    const result = await client.searchArtist(query);\n    if (result.artists && result.artists.length > 0) {\n      const firstArtist: Artist = result.artists[0];\n      console.log(`Found artist: ${firstArtist.name} (MBID: ${firstArtist.id})`);\n      if (firstArtist.area) {\n        console.log(`  Area: ${firstArtist.area.name}`);\n      }\n      if (firstArtist['life-span']) {\n        console.log(`  Life Span: ${firstArtist['life-span'].begin || 'Unknown'} - ${firstArtist['life-span'].end || 'Present'}`);\n      }\n    } else {\n      console.log('No artists found.');\n    }\n  } catch (error) {\n    console.error('Error searching for artist:', error);\n  }\n}\n\nsearchArtist('Radiohead');\nsearchArtist('Pink Floyd');","lang":"typescript","description":"Initializes the MusicBrainz API client and performs a search for an artist, logging basic details.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}