A C# client library for The First Descendant API provided by Nexon. Strongly typed with async/await support.
$ dotnet add package TheFirstDescendant.ClientA C# client library for The First Descendant API provided by Nexon.
en) language codesrc/TheFirstDescendant/) - Main API client librarytests/TheFirstDescendant.Tests/) - Unit tests with xUnitsamples/TheFirstDescendant.Sample/) - Interactive console demo with Spectre.Consoleusing TheFirstDescendant;
var httpClient = new HttpClient();
var service = new TheFirstDescendantService(httpClient);
// Get all descendants
var descendants = await service.GetDescendantsAsync();
// Get all weapons
var weapons = await service.GetWeaponsAsync();
// Get stats metadata
var stats = await service.GetStatsAsync();
For advanced scenarios requiring language selection or direct API control:
var rawClient = service.GetRawClient();
// Get Korean language data
var koreanDescendants = await rawClient.GetDescendantsAsync(LanguageCode.Ko);
All service methods automatically use English (en) as the language code. Each returns a strongly-typed collection:
GetDescendantsAsync() - Descendant characters and their stats/skillsGetWeaponsAsync() - Weapon data including stats and typesGetModulesAsync() - Module metadata for character/weapon customizationGetReactorsAsync() - Reactor data and skill power coefficientsGetExternalComponentsAsync() - External component metadata and base statsGetRewardsAsync() - Difficulty level reward informationGetVoidBattlesAsync() - Void battle metadata and battle zonesGetResearchsAsync() - Research recipes, costs, and resultsGetAmorphousRewardsAsync() - Amorphous material rewardsGetTitlesAsync() - Player title metadataGetConsumableMaterialsAsync() - Consumable material dataGetCustomizingItemsAsync() - Customizing item metadata with evolution stagesGetMedalsAsync() - Medal metadata and detailsGetVehiclesAsync() - Vehicle dataGetStatsAsync() - Stat type definitionsGetWeaponTypesAsync() - Weapon type metadataGetFellowsAsync() - Fellow (companion) dataGetTiersAsync() - Tier level informationGetCoreSlotsAsync() - Core slot metadataGetCoreTypesAsync() - Core type definitionsGetDescendantLevelDetailAsync() - Level progression details for descendantsGetMasteryRankLevelDetailsAsync() - Mastery rank progression dataGetFellowLevelDetailsAsync() - Fellow level progression dataGetDescendantGroupsAsync() - Descendant group metadataGetAdaptLevelsAsync() - Adaptation level dataGetArcheTuningBoardGroupsAsync() - Arche tuning board groupsGetArcheTuningBoardsAsync() - Arche tuning board configurationsGetArcheTuningNodesAsync() - Arche tuning node data and effectsGetAmorphousOpenConditionDescriptionsAsync() - Amorphous opening conditionsGetAcquisitionDetailsAsync() - Item acquisition detailsTheFirstDescendantApiClient (TheFirstDescendantApiClient.cs)
en, ko, etc.)https://open.api.nexon.com/TheFirstDescendantService (TheFirstDescendantService.cs)
GetRawClient() for advanced accessModels/ - Strongly-typed data models
# Build the entire solution
dotnet build
# Build in Release mode
dotnet build -c Release
# Run tests
dotnet testThe sample application demonstrates the API with an interactive Spectre.Console UI:
cd samples/TheFirstDescendant.Sample
dotnet runFeatures:
TFDTool/
├── src/
│ └── TheFirstDescendant/ # Main library
│ ├── Models/ # Generated data models
│ ├── TheFirstDescendantApiClient.cs
│ └── TheFirstDescendantService.cs
├── tests/
│ └── TheFirstDescendant.Tests/ # xUnit tests
├── samples/
│ └── TheFirstDescendant.Sample/ # Demo application
├── Directory.Build.props # Shared build configuration
├── Directory.Packages.props # Central package versions
└── global.json # SDK version pinning
Tests use:
NuGet Package: TheFirstDescendant.Client
TheFirstDescendant.Client.dllBased on The First Descendant OpenAPI specification from Nexon:
tfd-openapi.yaml (in repository)This project is licensed under the MIT License - see the LICENSE file for details.
This project is for educational and development purposes. Please review Nexon's terms of service for API usage guidelines.