NuGet · Schema
NuGet Package
A NuGet package with its metadata, versions, dependencies, deprecation status, and vulnerability information as represented across the NuGet V3 API.
Package Management.NETPackagesDependenciesSoftware DistributionRegistry
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The unique identifier of the NuGet package. |
| version | string | The full SemVer 2.0.0 version string of the package. May contain build metadata. |
| title | string | The display title of the package. |
| description | string | A description of the package and its functionality. |
| summary | string | A short summary of the package. |
| authors | object | The author or authors of the package. |
| owners | object | The owner or owners of the package on the package source. |
| tags | object | Tags associated with the package for categorization and discovery. |
| language | string | The language of the package content. |
| iconUrl | string | The URL to the package icon image. |
| licenseUrl | string | The URL to the package license. |
| licenseExpression | string | A NuGet license expression compliant with NuGet license expression syntax. |
| projectUrl | string | The URL to the project home page. |
| readmeUrl | string | A URL for the rendered HTML view of the package README. |
| registration | string | The absolute URL to the registration index for this package. |
| packageContent | string | The URL to the .nupkg file for the latest version. |
| listed | boolean | Whether the package is listed and visible in search results. Assumed true if absent. |
| published | string | An ISO 8601 timestamp of when the package was published. Set to year 1900 on nuget.org when unlisted. |
| created | string | A timestamp of when the package was first created on the source. |
| verified | boolean | Whether the package is verified via ID prefix reservation on nuget.org. |
| totalDownloads | integer | The total number of downloads across all versions. |
| requireLicenseAcceptance | boolean | Whether the package requires the user to accept a license before installation. |
| minClientVersion | string | The minimum NuGet client version required to use this package. |
| isPrerelease | boolean | Whether the package version is a prerelease version. |
| packageHash | string | The hash of the package encoded in standard base 64. |
| packageHashAlgorithm | string | The hashing algorithm used to produce the packageHash. Typically SHA512. |
| packageSize | integer | The size of the .nupkg file in bytes. |
| versions | array | All available versions of the package. |
| dependencyGroups | array | The dependencies of the package grouped by target framework. |
| packageTypes | array | The package types defined by the package author. |
| deprecation | object | |
| vulnerabilities | array | Security vulnerabilities associated with this package version. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://nuget.org/schemas/nuget/package.json",
"title": "NuGet Package",
"description": "A NuGet package with its metadata, versions, dependencies, deprecation status, and vulnerability information as represented across the NuGet V3 API.",
"type": "object",
"required": ["id", "version"],
"properties": {
"id": {
"type": "string",
"description": "The unique identifier of the NuGet package.",
"minLength": 1,
"maxLength": 128,
"pattern": "^[a-zA-Z0-9._-]+$"
},
"version": {
"type": "string",
"description": "The full SemVer 2.0.0 version string of the package. May contain build metadata."
},
"title": {
"type": "string",
"description": "The display title of the package."
},
"description": {
"type": "string",
"description": "A description of the package and its functionality."
},
"summary": {
"type": "string",
"description": "A short summary of the package."
},
"authors": {
"oneOf": [
{ "type": "string" },
{ "type": "array", "items": { "type": "string" } }
],
"description": "The author or authors of the package."
},
"owners": {
"oneOf": [
{ "type": "string" },
{ "type": "array", "items": { "type": "string" } }
],
"description": "The owner or owners of the package on the package source."
},
"tags": {
"oneOf": [
{ "type": "string" },
{ "type": "array", "items": { "type": "string" } }
],
"description": "Tags associated with the package for categorization and discovery."
},
"language": {
"type": "string",
"description": "The language of the package content."
},
"iconUrl": {
"type": "string",
"format": "uri",
"description": "The URL to the package icon image."
},
"licenseUrl": {
"type": "string",
"format": "uri",
"description": "The URL to the package license."
},
"licenseExpression": {
"type": "string",
"description": "A NuGet license expression compliant with NuGet license expression syntax."
},
"projectUrl": {
"type": "string",
"format": "uri",
"description": "The URL to the project home page."
},
"readmeUrl": {
"type": "string",
"format": "uri",
"description": "A URL for the rendered HTML view of the package README."
},
"registration": {
"type": "string",
"format": "uri",
"description": "The absolute URL to the registration index for this package."
},
"packageContent": {
"type": "string",
"format": "uri",
"description": "The URL to the .nupkg file for the latest version."
},
"listed": {
"type": "boolean",
"description": "Whether the package is listed and visible in search results. Assumed true if absent."
},
"published": {
"type": "string",
"format": "date-time",
"description": "An ISO 8601 timestamp of when the package was published. Set to year 1900 on nuget.org when unlisted."
},
"created": {
"type": "string",
"format": "date-time",
"description": "A timestamp of when the package was first created on the source."
},
"verified": {
"type": "boolean",
"description": "Whether the package is verified via ID prefix reservation on nuget.org."
},
"totalDownloads": {
"type": "integer",
"minimum": 0,
"description": "The total number of downloads across all versions."
},
"requireLicenseAcceptance": {
"type": "boolean",
"description": "Whether the package requires the user to accept a license before installation."
},
"minClientVersion": {
"type": "string",
"description": "The minimum NuGet client version required to use this package."
},
"isPrerelease": {
"type": "boolean",
"description": "Whether the package version is a prerelease version."
},
"packageHash": {
"type": "string",
"description": "The hash of the package encoded in standard base 64."
},
"packageHashAlgorithm": {
"type": "string",
"description": "The hashing algorithm used to produce the packageHash. Typically SHA512.",
"enum": ["SHA512"]
},
"packageSize": {
"type": "integer",
"minimum": 0,
"description": "The size of the .nupkg file in bytes."
},
"versions": {
"type": "array",
"description": "All available versions of the package.",
"items": {
"$ref": "#/$defs/PackageVersion"
}
},
"dependencyGroups": {
"type": "array",
"description": "The dependencies of the package grouped by target framework.",
"items": {
"$ref": "#/$defs/DependencyGroup"
}
},
"packageTypes": {
"type": "array",
"description": "The package types defined by the package author.",
"items": {
"$ref": "#/$defs/PackageType"
}
},
"deprecation": {
"$ref": "#/$defs/Deprecation"
},
"vulnerabilities": {
"type": "array",
"description": "Security vulnerabilities associated with this package version.",
"items": {
"$ref": "#/$defs/Vulnerability"
}
}
},
"$defs": {
"PackageVersion": {
"type": "object",
"description": "A specific version of a package with its download count and registration leaf URL.",
"required": ["version", "downloads"],
"properties": {
"@id": {
"type": "string",
"format": "uri",
"description": "The absolute URL to the registration leaf for this version."
},
"version": {
"type": "string",
"description": "The full SemVer 2.0.0 version string."
},
"downloads": {
"type": "integer",
"minimum": 0,
"description": "The number of downloads for this specific version."
}
}
},
"DependencyGroup": {
"type": "object",
"description": "A group of package dependencies applicable to a specific target framework.",
"properties": {
"targetFramework": {
"type": "string",
"description": "The target framework moniker. If absent, the group applies to all frameworks."
},
"dependencies": {
"type": "array",
"description": "The list of package dependencies in this group.",
"items": {
"$ref": "#/$defs/PackageDependency"
}
}
}
},
"PackageDependency": {
"type": "object",
"description": "A dependency on another NuGet package.",
"required": ["id"],
"properties": {
"id": {
"type": "string",
"description": "The package ID of the dependency."
},
"range": {
"type": "string",
"description": "The allowed version range for the dependency. Defaults to any version if absent."
},
"registration": {
"type": "string",
"format": "uri",
"description": "The URL to the registration index for this dependency."
}
}
},
"PackageType": {
"type": "object",
"description": "A package type defined by the package author, such as Dependency or DotnetTool.",
"required": ["name"],
"properties": {
"name": {
"type": "string",
"description": "The name of the package type."
},
"version": {
"type": "string",
"description": "The version of the package type. Only present if explicitly specified."
}
}
},
"Deprecation": {
"type": "object",
"description": "Deprecation information indicating a package should no longer be used.",
"required": ["reasons"],
"properties": {
"reasons": {
"type": "array",
"description": "The reasons for deprecation.",
"minItems": 1,
"items": {
"type": "string",
"enum": ["Legacy", "CriticalBugs", "Other"]
}
},
"message": {
"type": "string",
"description": "Additional details about the deprecation."
},
"alternatePackage": {
"$ref": "#/$defs/AlternatePackage"
}
}
},
"AlternatePackage": {
"type": "object",
"description": "A recommended replacement package for a deprecated package.",
"required": ["id"],
"properties": {
"id": {
"type": "string",
"description": "The ID of the alternate package."
},
"range": {
"type": "string",
"description": "The allowed version range, or * if any version is acceptable."
}
}
},
"Vulnerability": {
"type": "object",
"description": "A security vulnerability associated with a package version.",
"required": ["advisoryUrl", "severity"],
"properties": {
"advisoryUrl": {
"type": "string",
"format": "uri",
"description": "The URL to the security advisory for this vulnerability."
},
"severity": {
"type": "string",
"description": "The severity level: 0 = Low, 1 = Moderate, 2 = High, 3 = Critical.",
"enum": ["0", "1", "2", "3"]
}
}
}
}
}