Rate Limits

The NuGet.org API enforces rate limiting to prevent abuse. Requests that exceed the rate limit return the following error:

  {
    "statusCode": 429,
    "message": "Rate limit is exceeded. Try again in 56 seconds."
  }

In addition to request throttling using rate limits, some APIs also enforce quota. Requests that exceed the quota return the following error:

  {
    "statusCode": 403,
    "message": "Quota exceeded."
  }

The following tables list the rate limits for the NuGet.org API.

Note

We recommend using NuGet.org's V3 search APIs as it is not rate limited currently. For V1 and V2 search APIs, the following limits apply:

API Limit Type Limit Value API Use Case
GET /api/v1/Packages IP 1000 / minute Query NuGet package metadata via v1 OData Packages collection
GET /api/v1/Search() IP 3000 / minute Search for NuGet packages via v1 Search endpoint
GET /api/v2/Packages IP 20000 / minute Query NuGet package metadata via v2 OData Packages collection
GET /api/v2/Packages/$count IP 100 / minute Query NuGet package count via v2 OData Packages collection

Package Push and Unlist

API Limit Type Limit Value API Use Case
PUT /api/v2/package API Key 350 / hour Upload a new NuGet package (version) via v2 push endpoint
DELETE /api/v2/package/{id}/{version} API Key 250 / hour Unlist a NuGet package (version) via v2 endpoint

nuget.org website page views

If you are accessing the nuget.org web pages programmatically, consider investigating our documented V3 APIs. These endpoints allow for simpler access to package metadata and content. The V3 API has better availability and has higher performance than accessing the NuGet Gallery web pages, which are designed for web browser interaction.

API Limit Type Limit Value API Use Case
GET /package/{id}/{version} IP 50 / minute Display package (version) details page.