CurseForge.APIClient 2.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package CurseForge.APIClient --version 2.1.0                
NuGet\Install-Package CurseForge.APIClient -Version 2.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CurseForge.APIClient" Version="2.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CurseForge.APIClient --version 2.1.0                
#r "nuget: CurseForge.APIClient, 2.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install CurseForge.APIClient as a Cake Addin
#addin nuget:?package=CurseForge.APIClient&version=2.1.0

// Install CurseForge.APIClient as a Cake Tool
#tool nuget:?package=CurseForge.APIClient&version=2.1.0                

CurseForge API Client

Nuget GitHub issues GitHub stars GitHub license

This project aims to be a fully functional .NET client that allows you to use the CurseForge API,

All you need is an API key, your partner ID and a contact email to get started.

Initialize the ApiClient

Please make note that the ApiClient inheirits of IDisposable, so that you dispose of it when you're done with it.

var cfApiClient = new CurseForge.APIClient.ApiClient(apiKey);
var cfApiClient = new CurseForge.APIClient.ApiClient(apiKey, contactEmail);
var cfApiClient = new CurseForge.APIClient.ApiClient(apiKey, partnerId, contactEmail);

How to call the API with the client

Games

Get Games

Get all games that are available to the provided API key.

GetGamesAsync(int? index = null, int? pageSize = null)

var games = await cfApiClient.GetGamesAsync();
Get Game

Get a single game. A private game is only accessible by its respective API key.

GetGameAsync(int gameId)

var game = await cfApiClient.GetGameAsync(gameId);
Get Game Versions

Get all available versions for each known version type of the specified game. A private game is only accessible to its respective API key.

GetGameVersionsAsync(int gameId)

var gameVersions = await cfApiClient.GetGameVersionsAsync(gameId);
Get Game Version Types

GetGameVersionTypesAsync(int gameId)

Get all available version types of the specified game.

A private game is only accessible to its respective API key.

Currently, when creating games via the CurseForge Core Console, you are limited to a single game version type. This means that this endpoint is probably not useful in most cases and is relevant mostly when handling existing games that have multiple game versions such as World of Warcraft and Minecraft (e.g. 517 for wow_retail).

var gameVersionTypes = await cfApiClient.GetGameVersionTypesAsync(gameId);

Categories

Get Categories

Get all available classes and categories of the specified game. Specify a game id for a list of all game categories, or a class id for a list of categories under that class.

GetCategoriesAsync(int? gameId = null, int? classId = null, bool? classesOnly = null)

Requires either gameId or classId for the method to work.

var categories = await cfApiClient.GetCategoriesAsync(gameId, classId);

Mods

Search Mods

Get all mods that match the search criteria.

SearchModsAsync(
    int? gameId = null, int? classId = null, int? categoryId = null,
    string gameVersion = null, string searchFilter = null,
    ModsSearchSortField? sortField = null, ModsSearchSortOrder sortOrder = ModsSearchSortOrder.Descending,
    ModLoaderType? modLoaderType = null, int? gameVersionTypeId = null,
    int? index = null, int? pageSize = null
)

Requires at least one filter to be filled in.

var searchedMods = await cfApiClient.SearchModsAsync(gameId);
Get Mod

Get a single mod.

GetModAsync(int modId)

var mod = await cfApiClient.GetModAsync(modId);
Get Mods

Get a list of mods.

GetModsAsync(GetModsByIdsListRequestBody body)

var mods = await cfApiClient.GetModsAsync(new GetModsByIdsListRequestBody {
    ModIds = new List<long>() { modId }
});

Get a list of featured, popular and recently updated mods.

GetFeaturedModsAsync(GetFeaturedModsRequestBody body)

var featuredMods = await cfApiClient.GetFeaturedModsAsync(new GetFeaturedModsRequestBody {
    GameId = gameId,
    ExcludedModIds = new List<long>(),
    GameVersionTypeId = null
});
Get Mod Description

Get the full description of a mod in HTML format.

GetModDescriptionAsync(int modId)

var modDescription = await cfApiClient.GetModDescriptionAsync(modId);

Files

Get Mod File

Get a single file of the specified mod.

GetModFileAsync(int modId, int fileId)

var modFile = await cfApiClient.GetModFileAsync(modId, fileId);
Get Mod Files

Get all files of the specified mod.

GetModFilesAsync(int modId, string gameVersion = null,
    ModLoaderType? modLoaderType = null, string gameVersionFlavor = null,
    int? index = null, int? pageSize = null)
var modFiles = await cfApiClient.GetModFilesAsync(modId);
Get Files

Get a list of files.

GetFilesAsync(GetModFilesRequestBody body)

var files = await cfApiClient.GetFilesAsync(new GetModFilesRequestBody {
    FileIds = new List<long> { fileId }
});
Get Mod File Changelog

Get the changelog of a file in HTML format.

GetModFileChangelogAsync(int modId, int fileId)

var modFileChangelog = await cfApiClient.GetModFileChangelogAsync(modId, fileId);
Get Mod File Download URL

Get a download url for a specific file.

GetModFileDownloadUrlAsync(int modId, int fileId)

var modFileDownloadUrl = await cfApiClient.GetModFileDownloadUrlAsync(modId, fileId);

Fingerprints

Get Fingerprints Matches

Get mod files that match a list of fingerprints.

GetFingerprintMatchesAsync(GetFingerprintMatchesRequestBody body)

var modFile = await cfApiClient.GetFingerprintMatchesAsync(new GetFingerprintMatchesRequestBody {
    Fingerprints = new List<long>() { fingerprint }
});
Get Fingerprints Matches By GameId

GetFingerprintByGameIdMatchesAsync(int gameId, GetFingerprintMatchesRequestBody body)

var matches = await cfApiClient.GetFingerprintByGameIdMatchesAsync(gameId, body);
Get Fingerprints Fuzzy Matches

Get mod files that match a list of fingerprints using fuzzy matching.

GetFingerprintsFuzzyMatchesAsync(GetFuzzyMatchesRequestBody body)

var modFile = await cfApiClient.GetFingerprintsFuzzyMatchesAsync(new GetFuzzyMatchesRequestBody {
    GameId = gameId,
    Fingerprints = new List<FolderFingerprint> { 
        new FolderFingerprint {
            Foldername = folderName,
            Fingerprints = new List<long> { fingerprint }
        }
    }
});
Get Fingerprints Fuzzy Matches By GameId

Get mod files that match a list of fingerprints using fuzzy matching.

GetFingerprintsFuzzyMatchesAsync(int gameId, GetFuzzyMatchesRequestBody body)

var modFile = await cfApiClient.GetFingerprintsFuzzyMatchesAsync(gameId, new GetFuzzyMatchesRequestBody {
    GameId = gameId,
    Fingerprints = new List<FolderFingerprint> { 
        new FolderFingerprint {
            Foldername = folderName,
            Fingerprints = new List<long> { fingerprint }
        }
    }
});

Minecraft

Get Minecraft Versions

This method allows you to fetch the Minecraft versions available to CurseForge

GetMinecraftVersions(bool sortDescending)

Get Specific Minecraft Version

Get information about a specific Minecraft version

GetSpecificMinecraftVersionInfo(string gameVersion)

Get Minecraft ModLoaders

Get all modloaders for Minecraft

GetMinecraftModloaders(string version, bool includeAll)

Get Specific Minecraft ModLoader

Gets information about a specific modloader

GetSpecificMinecraftModloaderInfo(string modloaderName)

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on CurseForge.APIClient:

Repository Stars
DaiYu-233/YMCL.Avalonia
Yu Minecraft Launcher · YMCL !
YUXUAN888/FSM3
FSMLauncher!
Version Downloads Last updated
3.0.0 393 8/26/2024
2.2.0 1,089 1/30/2024
2.1.0 997 3/4/2023
2.0.1 536 11/22/2022
2.0.0 343 11/22/2022
1.5.2 611 8/17/2022
1.5.1 388 8/17/2022
1.5.0 563 7/22/2022
1.4.0 530 6/27/2022
1.3.4 682 6/6/2022
1.3.3 392 6/6/2022
1.3.2 411 6/6/2022
1.3.1 495 5/23/2022
1.3.0 416 5/23/2022
1.2.0 446 5/9/2022
1.1.4 454 4/26/2022
1.1.3 596 4/14/2022
1.1.2 436 3/24/2022
1.1.1 405 3/21/2022
1.1.0 433 3/10/2022
1.0.1 440 1/31/2022
1.0.0 358 11/5/2021