Overview
Fixed Rate Limit
Applies To: Free & Pro Tiers
- Public & documented Jupiter APIs are free to use via the free tier.
- Purchasing a Pro plan only increases your rate limit.
- Free and Pro tiers have the same usage data freshness and latency.
Dynamic Rate Limit
Applies To: Ultra Swap API (Ultra Tier)
Rate Limit Rules
API Keys are universal across both Fixed Rate Limit and Dynamic Rate Limit system.
- You can use the same API Key for all endpoints.
- For example, if you have purchased the pro tier, you can still use the same API Key for Ultra Swap API.
- Rate limits apply on a per account basis, not to individual API keys.
- Generating more than 1 API key does not increase your rate limits, since they are depleting the same rate limit.
Fixed Rate Limit
The Fixed Rate Limit system applies to the Free and Pro plans (does not include Ultra Swap API), using the sliding window method to enforce request quotas.
| Property | Free | Pro |
|---|
| Base URL | https://api.jup.ag/ | https://api.jup.ag/ |
| Cost | Free | Paid per month, based on tier |
| API Key | Required | Required |
| Requests Per Minute | 60 | Based on tier |
| Window | 60 seconds | 10 seconds |
Rate Limit
Rate limits are defined over 10-second windows (except free tier at 60-second window). For example, if your tier allows 100 requests per 10 seconds, any more within that window will receive a 429 response, regardless of how few you used in the previous window.
| Tier | Est. Requests per Minute | Requests Per Period | Sliding Window Period |
|---|
| Free | 60 | 60 | 60 seconds |
| Pro I | ~600 | 100 | 10 seconds |
| Pro II | ~3,000 | 500 | 10 seconds |
| Pro III | ~6,000 | 1,000 | 10 seconds |
| Pro IV | ~30,000 | 5,000 | 10 seconds |
Requests are distributed to each bucket:
- Price API Bucket – dedicated for
/price/v3/ only - separate from Default Bucket.
- Studio API Bucket – dedicated for
/studio/ only - separate from Default Bucket.
- Free: 100 requests per 5 minutes
- Pro: 10 requests per 10 seconds (for all tiers)
- Default Bucket – used for all APIs except the Price API and Studio API.
- Each bucket enforces its own sliding window independently.
- For example, Pro II = 500 per 10 seconds to the Default Bucket and 500 per 10 seconds to the Price API Bucket.
- Free users do not have a separate Price API Bucket — all requests are counted against the Default Bucket.
Dynamic Rate Limit
Dynamic Rate Limit is currently in BETA.
- The rate limit is subject to changes as we experiment with the Dynamic Rate Limit system.
- If you find that the rate limit is too restrictive, please reach out to us in Discord.
The Ultra Swap API uses a unique rate limiting mechanism that scales with your executed swap volume over time.
| Property | Dynamic |
|---|
| Base URL | https://api.jup.ag/ultra/ |
| Cost | Free to use, but Ultra incurs swap fees |
| API Key | Required |
| Requests Per Minute | Base Quota + Added Quota |
How Dynamic Rate Limit Works
Every 10 minutes
- The system aggregates your swap volume from
/execute on Ultra for the current rolling day (volume of (current timestamp - 1 day) up to present).
- After which, the Added Quota will update, which will be added on top of the Base Quota.
| Swap Volume | Requests Per Period | Sliding Window Period |
|---|
| $0 | 50 Base + 0 Added = 50 | 10 seconds |
| $10,000 | 50 Base + 1 Added = 51 | 10 seconds |
| $100,000 | 50 Base + 11 Added = 61 | 10 seconds |
| $1,000,000 | 50 Base + 115 Added = 165 | 10 seconds |
Managing Rate Limits
If you receive a 429 response, you should:
- Implement exponential backoff in your retry logic
- Wait for sliding window to allow for more requests
- Upgrade your tier (Pro) or scale your Ultra usage to unlock higher limits.
CAUTIONBursting beyond your allocation may result in temporary 429s/rate limits, even after the refill period. Avoid aggressive retry patterns.