MonstercatNet is a .NET wrapper around the API that drives monstercat.com written in C#.
Since this library relies on refit for setting up the API endpoints, there are limitations. You can find the limitations here.
You can find the latest nuget package here.
See here
usingSoftThorn.MonstercatNet;varhttpClient=newHttpClient().UseMonstercatApiV2();varclient=MonstercatApi.Create(httpClient);usingSoftThorn.MonstercatNet;varhttpClient=newHttpClient().UseMonstercatCdn();varclient=MonstercatCdn.Create(httpClient);NOTE: The HttpClient for the CDN should be a different instance than the one for the API, as they use a different BaseAddress.
usingSoftThorn.MonstercatNet;varcredentials=newApiCredentials(){Email="",// your account e-mailPassword=""// your password};awaitclient.Login(credentials);usingSoftThorn.MonstercatNet;vartracks=awaitclient.SearchTracks(newTrackSearchRequest(){Limit=1,Skip=0,Creatorfriendly=true,Genres=new[]{"Drumstep"},ReleaseTypes=new[]{"Album"},Tags=new[]{"Uncaged","Energetic"},});usingSoftThorn.MonstercatNet;varreleases=awaitclient.GetReleases(newReleaseBrowseRequest(){Limit=1,Skip=0});usingSoftThorn.MonstercatNet;varrelease=awaitclient.GetRelease("the release catalogId which looks like this MCRLX001-8");usingSoftThorn.MonstercatNet;varcdn=MonstercatCdn.Create(newHttpClient(newHttpLoggingHandler()).UseMonstercatCdn());varbuilder=ReleaseCoverArtBuilder.Create().ForRelease(newTrackRelease(){CatalogId="the release catalog Id which looks like this 2FMCS1347"};);varreleaseCoverBytes=awaitcdn.GetReleaseCoverAsByteArray(builder);varreleaseCoverStream=awaitcdn.GetReleaseCoverAsStream(builder);The currently implemented and supported endpoints can be found here
See here
See here
A special thanks goes out to defvs who with many others documented the unofficial API.