Rate Limits

NutrientAPI uses two types of limits: request rate limits (requests per second) and monthly recipe quotas.

Limits by Plan

Plan Requests/Second Recipes/Month Price
Free 3 100 $0
Pay-as-you-go 10 Unlimited $0.005/recipe
Max 25 25,000 included $99/mo + $0.003/recipe overage

How Rate Limiting Works

Request Rate Limits

Request rate limits are enforced per API key using a sliding window. If you exceed your plan's requests-per-second limit, you'll receive a 429 Too Many Requests response.

{
  "error": "rate_limit_exceeded",
  "message": "Rate limit exceeded. Maximum 3 requests per second on Free plan.",
  "retry_after": 1
}

The response includes a Retry-After header indicating how many seconds to wait before retrying.

Monthly Recipe Quotas

The Free plan has a 100 recipe/month quota. Pay-as-you-go and Max plans have no monthly quota — usage is unlimited. On the Free plan, exceeding the quota returns a 429 response:

{
  "error": "quota_exceeded",
  "message": "Monthly recipe quota exceeded. 100/100 recipes used.",
  "quota_resets_at": "2026-05-01T00:00:00Z"
}

On pay-as-you-go plans, if you've set a spending cap in your dashboard, reaching that cap will also return a 429 response until the next billing cycle.

Response Headers

Every API response includes headers to help you track your usage:

Header Description
X-RateLimit-Limit Maximum requests per second for your plan
X-RateLimit-Remaining Requests remaining in current window
X-Quota-Limit Monthly recipe quota for your plan
X-Quota-Used Recipes used this month
X-Quota-Remaining Recipes remaining this month

Best Practices

Use Caching

Unlike some competitors, NutrientAPI allows you to cache all API responses with no restrictions. If you're analyzing the same recipes repeatedly, cache the results to reduce API calls and improve response times.

Cache everything. All NutrientAPI plans allow unlimited caching of API responses. There are no restrictions on how long you can store results or what fields you can cache.

Handle 429 Responses

Implement exponential backoff when you receive rate limit errors. Start with the Retry-After header value and increase the delay on subsequent retries.

Batch Wisely

Each recipe can contain up to 50 ingredients in a single API call. Send all ingredients for a recipe in one request rather than making separate calls per ingredient.

Monitor Usage

Check the X-Quota-Remaining header to monitor your monthly usage and upgrade your plan before hitting limits.