ModelsDotDevSharp 0.2.0
dotnet add package ModelsDotDevSharp --version 0.2.0
NuGet\Install-Package ModelsDotDevSharp -Version 0.2.0
<PackageReference Include="ModelsDotDevSharp" Version="0.2.0" />
<PackageVersion Include="ModelsDotDevSharp" Version="0.2.0" />
<PackageReference Include="ModelsDotDevSharp" />
paket add ModelsDotDevSharp --version 0.2.0
#r "nuget: ModelsDotDevSharp, 0.2.0"
#:package ModelsDotDevSharp@0.2.0
#addin nuget:?package=ModelsDotDevSharp&version=0.2.0
#tool nuget:?package=ModelsDotDevSharp&version=0.2.0
ModelsDotDevSharp
A .NET wrapper around the public models.dev API, providing strongly-typed access to AI provider and model metadata.
Install
dotnet add package ModelsDotDevSharp
Usage
Register the services, build an IServiceProvider, resolve IModelInfoRepository, and fetch data:
using Microsoft.Extensions.DependencyInjection;
using ModelsDotDevSharp;
using ModelsDotDevSharp.Abstractions;
var services = new ServiceCollection();
services.AddModelsDotDevSharp();
using var provider = services.BuildServiceProvider();
var repository = provider.GetRequiredService<IModelInfoRepository>();
// All providers (Ids populated from the API's root map)
AIProviderInfo[] providers = await repository.GetProviderInfosAsync();
// A single model by provider and model id
AIModelInfo model = await repository.GetModelInfoByIdAsync("anthropic", "claude-3-5-sonnet");
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Http (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
## Changes since 0.1.0
### Changed
- Converted `CatalogRepository.ProcessAllCosts` from recursion to an iterative stack-based pre-order DFS, eliminating `StackOverflowException` risk on deeply nested `ContextOverrides` cost trees with no public API changes.
- Moved `ModelsDevServiceCollectionExtensions` to the `ModelsDotDevSharp.Extensions` namespace and expanded NuGet packaging metadata (symbols/snupkg, embedded sources, package tags, release notes, corrected repository URL).
- Corrected package versioning metadata (`Version` to `PackageVersion`) and README packaging configuration.
- Hardened HTTP repositories against SSRF, silent failures, and null responses: validated `ModelsDevOptions.BaseAddress` as an absolute http/https URI, added `EnsureSuccessStatusCode` checks and response disposal, null-guarded catalog enumeration, registered `IHttpClientFactory` via `AddHttpClient()`, and introduced internal `HttpClientHelper` (now in `ModelsDotDevSharp.Internal`).
- Cleaned up internals and code style: made `CostContextOverridePostProcessor` internal, modernized JSON converters with collection expressions and explicit types, and removed a redundant null guard.
- **Runtime Dependencies:** bumped `Microsoft.Extensions.DependencyInjection.Abstractions`, `Microsoft.Extensions.Http`, and `Microsoft.Extensions.Options` from 10.0.9 to 10.0.11, then to 10.0.12.
- **Testing Dependencies:** bumped `TUnit` from 1.65.51 to 1.65.68, then to 1.67.0.
- **CI Dependencies:** bumped `actions/checkout` from 4 to 7 and `actions/setup-dotnet` from 4 to 6 in `test-build.yml`.
#### Fixed
- Fixed NuGet README packaging so `README.md` is packed as `Content` with the correct `PackagePath`.
- Added least-privilege `permissions: contents: read` to the `test-build` workflow.