Rate Limits
eBay enforces rate limits on API requests to ensure fair usage and system stability. Understanding these limits and implementing appropriate strategies is critical for building reliable applications. This guide covers eBay’s rate limit policies, the server’s rate limiting implementation, and best practices.eBay Sell APIs Rate Limits
eBay implements different rate limits based on your authentication method and marketplace.User Token Limits (Recommended)
When using user access tokens (OAuth 2.0 with user authorization):Standard Tier
10,000 requests/dayDefault for most sellers
Premium Tier
25,000 requests/dayAvailable to Power Sellers
Enterprise Tier
50,000 requests/dayAvailable to Top Rated Sellers
Client Credentials Limits (Fallback)
When using application tokens (OAuth 2.0 Client Credentials flow):Basic Tier
1,000 requests/dayApplication-level operations only
- Limited API access (no seller-specific operations)
- Lower rate limits
- No access to private seller data
Rate Limit Headers
eBay includes rate limit information in response headers:Client-Side Rate Limiting
The eBay MCP Server implements client-side rate limiting to prevent exceeding eBay’s limits before making requests.RateLimitTracker Implementation
The server tracks request timestamps and enforces conservative limits (src/api/client.ts:15-44):How It Works
1
Pre-Request Check
Before making an API call, the HTTP client checks if the rate limit allows the request:
2
Token Injection
If rate limit check passes, the request proceeds with authentication token injection
3
Request Recording
After successful rate limit check, the request timestamp is recorded:
4
Window Cleanup
Old timestamps outside the rate limit window are automatically removed to keep memory usage low
Configuration
The rate limiter uses conservative default values:The 5,000 requests per minute limit is conservative. For user tokens with 10,000-50,000 daily limits, this allows sustained operation while preventing burst-related issues.
Server-Side Rate Limit Handling
When eBay Sell APIs returns a 429 (Too Many Requests) status, the server provides clear guidance:- Exact wait time from
Retry-Afterheader - Actionable advice (reduce frequency, upgrade to user tokens)
- Clear error message
Rate Limit Monitoring
Header Tracking
The server logs rate limit information from eBay response headers (src/api/client.ts:94-104):Statistics API
Get current client-side rate limit statistics:Rate Limiting Strategies
1. Use User Tokens
Most Important: Always use user tokens for production workloads.
2. Batch Operations
Group multiple operations into batch API calls when available:bulkCreateOrReplaceInventoryItem- Create/update multiple inventory itemsbulkCreateOffer- Create multiple offersbulkPublishOffer- Publish multiple offersbulkMigrateListing- Migrate multiple listings
3. Implement Caching
Cache frequently accessed, rarely changing data:- Category trees
- Fulfillment/payment/return policies
- Marketplace metadata
- Seller standards profiles (refresh daily)
4. Request Throttling
For high-volume operations, throttle requests to stay within limits:5. Exponential Backoff
When rate limited, use exponential backoff before retrying:6. Prioritize Critical Operations
When approaching rate limits, prioritize essential operations:Rate Limit Best Practices
Do’s
Use user tokens for production - 10-50x higher limits than client credentials
Monitor rate limit headers - Track remaining requests and adjust behavior
Implement client-side rate limiting - Prevent hitting eBay limits
Cache static data - Reduce unnecessary API calls
Use batch operations - Minimize request count
Handle 429 errors gracefully - Implement exponential backoff
Don’ts
Troubleshooting Rate Limits
Symptom: Frequent Rate Limit Errors
Causes:- Using client credentials (1,000 req/day limit)
- Burst requests without throttling
- Not using batch operations
- Switch to user tokens
- Implement request throttling
- Use batch APIs for bulk operations
- Cache frequently accessed data
Symptom: Inconsistent Rate Limits
Causes:- Mixed use of user and app tokens
- Multiple server instances sharing same credentials
- External tools using same credentials
- Ensure consistent token usage
- Implement distributed rate limiting if running multiple instances
- Use separate credentials for different applications
Symptom: Rate Limit Warnings in Logs
Example:- Reduce request frequency
- Defer non-critical operations
- Check for inefficient code (redundant API calls)
Rate Limit Tiers
eBay offers different rate limit tiers based on seller performance:Comparing Token Types
- User Tokens
- Client Credentials
Advantages:
- 10,000-50,000 requests/day
- Full API access
- Seller-specific operations
- Automatic token refresh
- Requires OAuth authorization
- Tokens expire (refresh every 2 hours)
- User must grant permissions
- Production applications
- High-volume operations
- Seller-specific data access
Example: High-Volume Operation
Here’s how to efficiently process a large inventory update:- Uses batch API (25 items per request)
- Throttles to 10 requests/second
- Provides progress feedback
- Handles 10,000 items using only 400 requests
Related Topics
Error Handling
Handle rate limit errors effectively
OAuth Setup
Configure user tokens for higher limits
Best Practices
General best practices for eBay MCP Server
Bulk Operations
Efficient batch processing strategies