Rate Limits
The GAIA API implements tiered rate limiting based on subscription plans to ensure fair usage and service reliability.Rate Limit Tiers
Rate limits vary by subscription plan:| Plan | Chat Messages | Todo Operations | Workflow Operations | Calendar Management | Mail Actions | Memory Operations | Goal Tracking |
|---|---|---|---|---|---|---|---|
| Free | 50/hour | 100/hour | 10/hour | 50/hour | 30/hour | 50/hour | 20/hour |
| Pro | 500/hour | 1000/hour | 100/hour | 500/hour | 300/hour | 500/hour | 200/hour |
| Team | 2000/hour | 5000/hour | 500/hour | 2000/hour | 1000/hour | 2000/hour | 1000/hour |
Rate limits are applied per user, not per API key. Each authenticated user has their own rate limit quota.
Rate Limit Headers
While GAIA API doesn’t currently expose rate limit information in response headers, rate limit metadata is included in tool responses:Rate Limit Windows
Rate limits are tracked across multiple time windows:- Minute - Short-burst protection
- Hour - Primary rate limiting window
- Day - Daily quota enforcement
Feature Keys
Different API operations are tracked under specific feature keys:Chat Operations
chat_messages- Chat stream endpoints
Todo Operations
todo_operations- Create, update, delete todos and projects
Workflow Operations
workflow_operations- Create, execute, update workflows
Calendar Operations
calendar_management- Create, update, delete calendar events
Email Operations
mail_actions- Send, compose, manage emails
Memory Operations
memory- Create, delete memories
Goal Operations
goal_tracking- Create, update goals and roadmaps
Integration Operations
integration_connection- Connect integrations
Tool-Specific Operations
code_execution- Execute code in sandboxed environmentdocument_generation- Generate documentsfile_analysis- Analyze uploaded filesflowchart_creation- Create flowchartsgenerate_image- Generate images with AInotification_operations- Send notificationsreminder_operations- Create reminders
Handling Rate Limits
429 Too Many Requests
When you exceed rate limits, the API returns a429 status code:
Error details
Best Practices
Implement exponential backoff
Implement exponential backoff
When receiving a
429 error, wait before retrying:Batch operations where possible
Batch operations where possible
Use bulk endpoints to reduce API calls:
Cache responses when appropriate
Cache responses when appropriate
Cache frequently accessed data to reduce API calls:
Monitor your usage
Monitor your usage
Track rate limit information in responses to understand your usage patterns:
Subscription Caching
To improve performance and reduce database load, subscription information is cached in Redis for 5 minutes. This means:- Subscription upgrades take effect within 5 minutes
- Rate limits reflect your current plan after cache expiry
- Cache is invalidated on logout/re-authentication
Rate Limit Exemptions
System Operations
Certain operations bypass rate limiting:- Background workflow executions
- Scheduled reminder processing
- Email importance analysis
- System-generated notifications
initiator: "backend" in the execution context.
Tool Rate Limiting
LangChain tools used by the AI agent have separate rate limiting:Upgrading Your Plan
To increase your rate limits, upgrade your subscription:- Navigate to Settings → Billing in the GAIA web app
- Choose Pro or Team plan
- Complete payment through Dodo Payments
- Limits update within 5 minutes
Pricing
View detailed pricing and plan comparisons
Custom Enterprise Limits
For enterprise customers with custom requirements, contact our sales team:- Email: [email protected]
- Features: Custom rate limits, dedicated infrastructure, SLA guarantees
Rate Limit Implementation
GAIA uses Redis-backed rate limiting with the following characteristics:- Atomic operations - Thread-safe increment operations
- Sliding windows - Precise rate limit tracking
- Multi-tier enforcement - Simultaneous minute/hour/day limits
- Plan-based quotas - Dynamic limits based on subscription
Rate limits are enforced before request processing to prevent wasted computation on operations that would be rejected.
Next Steps
Webhooks
Set up real-time event notifications
Start Building
Make your first API request