Overview
Bipa enforces rate limits to ensure fair usage and protect the API from abuse. Rate limits are applied per API key.Default limits
| Tier | Requests per minute | Requests per day |
|---|---|---|
| Standard | 100 | 10,000 |
| Growth | 500 | 50,000 |
| Enterprise | Custom | Custom |
Contact sales if you need higher limits.
Rate limit headers
Every API response includes headers indicating your current rate limit status:| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed per minute |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the limit resets |
Rate limit exceeded
When you exceed the rate limit, the API returns a429 Too Many Requests response:
Retry-After header indicates how long to wait (in seconds) before retrying:
Handling rate limits
Implement exponential backoff when you receive a429 response:
Best practices
Cache responses when possible
Cache responses when possible
Cache GET request responses to reduce API calls. Quotes, for example, are valid for 60 seconds.
Batch operations
Batch operations
Use list endpoints instead of making individual requests:
Use webhooks
Use webhooks
Instead of polling for status changes, use webhooks to receive real-time notifications.
Spread requests over time
Spread requests over time
If you need to make many requests, spread them out rather than bursting:
Endpoint-specific limits
Some endpoints have additional limits:| Endpoint | Limit | Notes |
|---|---|---|
POST /quotes | 30/min | Quote generation is rate-limited separately |
POST /pix/payments | 60/min | Pix outbound payments |
POST /onchain/withdrawals | 30/min | On-chain withdrawals |
POST /lightning/payments | 60/min | Lightning payments |
Monitoring usage
Track your API usage in the console:- Go to Settings → API Usage
- View request counts by endpoint
- Set up alerts for approaching limits
