Usage & Limits

Usage & Limits

How usage & limits work

Every Foodashi plan includes a monthly pool of API calls and a per-minute rate limit. This page explains exactly how calls are counted, what happens at each limit, and how extra usage (overage) is billed — so there are never any surprises.

How calls are counted

Your plan's monthly allowance is measured in API calls. Every request deducts a number of calls from your monthly pool based on how much work it does:

1
Standard endpoints
Recipe search, browse, details, nutrition, allergens, ingredient lookups — almost everything is a single call.
2–5
Heavy & semantic
Bulk lookups, multi-ingredient matching, and semantic vector search do more compute, so they cost a few calls.
8–75
AI endpoints
AI features (meal plans, recognition, analysis, pairings, tips) reflect their real model cost. Full list in section 4.

The exact cost of every endpoint is shown in the Documentation and inside the Test Kitchen before you send a request — you always know what a call will cost.

Monthly limits by plan

Your monthly pool resets at the start of each billing cycle. Unused calls don't roll over.

Plan Monthly calls Rate limit API keys Extra usage
Hobby Free 10,000 30 / min 1 Upgrade to unlock
Indie 150,000 600 / min Multiple $0.50 / 1,000 calls
Pro 1,000,000 3,000 / min Multiple $0.30 / 1,000 calls
Enterprise 10,000,000+ 10,000 / min Custom Custom

Need different numbers? See full plan comparison →

Rate limits (per minute)

Alongside your monthly pool, each plan has a requests-per-minute (RPM) ceiling to keep the API fast and fair for everyone. The two limits are independent: you can hit the per-minute limit even with plenty of monthly calls left (and vice-versa).

Per-minute limit reached

The API returns 429 Too Many Requests with a Retry-After header (seconds to wait). The window is a rolling 60 seconds.

Monthly pool exhausted

Also 429, with the message "Monthly Quota Exceeded", until your cycle resets or extra usage kicks in (section 5).

Best practice: respect Retry-After with exponential backoff, and spread bursts of requests rather than firing them all at once.

Endpoint call costs

Anything not listed below costs 1 call. These are the endpoints that cost more:

Endpoint What it does Cost
/api/meal-plan/generate Full AI weekly meal plan 75
/api/meal-plan/customize AI swap / regenerate meals 40
/api/analyze/url Fetch + AI extraction + nutrition 35
/api/analyze/text AI recipe text extraction + nutrition 30
/api/shopping-list/optimize AI shopping-list optimization 30
/api/recognize/ingredients Image → ingredient detection 25
/api/recognize/image Image → dish identification 20
/api/pairing/beverages AI sommelier beverage pairings 15
/api/tips AI cooking / prepping tips 8
/api/search Semantic (vector) recipe search 5
/api/ingredients/semantic-search Semantic ingredient search 5
/api/ingredients/batch Up to 50 ingredient lookups 5
/api/bulk-lookup, /api/recipes/by-ingredients, /api/ingredients/compare, /api/shopping-list/from-* Heavy multi-row database work 2
Everything else Search, browse, details, nutrition, allergens, lookups… 1

Extra usage (overage)

Run out of monthly calls but need to keep going? Indie and Pro plans can enable overage so your API keeps working instead of returning errors.

How it's billed
  • Indie: $0.50 per 1,000 extra calls
  • Pro: $0.30 per 1,000 extra calls
  • • Charged in pre-paid top-ups (default $10) as you go
Spend protection
  • • Overage is off by default — you opt in.
  • • You set a monthly overage cap; once hit, the API returns 429 instead of charging more.
  • • A leaked key can never run up an unbounded bill.

Hobby (free) plans don't have overage — when the 10,000 monthly calls are used up, requests return 429 until the cycle resets, or you upgrade to Indie/Pro.

Reading your usage

Every successful API response includes live usage headers, so you can track your limits programmatically without a separate call:

# Returned on every response
X-RateLimit-Limit:     600     # your per-minute ceiling
X-RateLimit-Remaining: 587     # calls left this minute
X-RateLimit-Reset:     42      # seconds until the minute resets
X-RateLimit-Window:    60s
X-Monthly-Limit:       150000  # your monthly pool
X-Monthly-Remaining:   148213  # calls left this cycle
X-Overage-Active:      true    # only present when running on overage

You can also see live usage, your current plan, and remaining calls any time in your Console dashboard.

Test Kitchen trial

The Test Kitchen lets you try paid (Indie/Pro) endpoints before upgrading, using a small free trial budget of 150 units per month. Each call spends from that budget at the same cost shown in section 4 (e.g. one meal-plan generation = 75 of your 150 units). It's there to let you evaluate the premium features — for production traffic, use your plan's monthly pool.

FAQ

No. Your monthly pool resets at the start of each billing cycle and unused calls don't carry over.
You get an HTTP 429 response. For the per-minute limit it includes a Retry-After header; for the monthly pool the message is "Monthly Quota Exceeded". On Indie/Pro with overage enabled, calls continue and are billed instead of blocked — up to your overage cap.
Requests rejected before processing (auth errors, validation 400s, rate-limit 429s) do not consume your monthly calls. Only successfully processed requests count.
Yes. Overage is opt-in, and you set a monthly overage cap. Once reached, the API returns 429 rather than charging beyond it — so a runaway script or leaked key can't produce an unbounded bill.
AI endpoints (meal plans, recognition, analysis, pairings, tips) cost more calls because each one runs a real AI model. Their exact cost is in section 4 and shown in the Test Kitchen before you send.
Still have a usage question?

Check the full API reference, or reach out and we'll help you size the right plan.