Καθολικά όρια
Το Brevo εφαρμόζει καθολικά όρια ρυθμού αιτημάτων σε όλα τα endpoints του API, ώστε να διασφαλίζεται η δίκαιη χρήση και η βέλτιστη απόδοση.
Επίπεδα ορίων ρυθμού
Πρόγραμμα Free
- Ημερήσιο όριο: 300 αιτήματα
- Ωριαίο όριο: 50 αιτήματα
- Όριο ριπής: 10 αιτήματα/λεπτό
- Μονάδες email: 300/μήνα
Πρόγραμμα Starter
- Ημερήσιο όριο: 20.000 αιτήματα
- Ωριαίο όριο: 1.000 αιτήματα
- Όριο ριπής: 100 αιτήματα/λεπτό
- Μονάδες email: Απεριόριστες
Πρόγραμμα Business
- Ημερήσιο όριο: 50.000 αιτήματα
- Ωριαίο όριο: 3.000 αιτήματα
- Όριο ριπής: 300 αιτήματα/λεπτό
- Μονάδες email: Απεριόριστες
Πρόγραμμα Enterprise
- Ημερήσιο όριο: Προσαρμοσμένο (100.000+)
- Ωριαίο όριο: Προσαρμοσμένο (10.000+)
- Όριο ριπής: Προσαρμοσμένο (1.000+/λεπτό)
- Μονάδες email: Απεριόριστες
Κεφαλίδες ορίων ρυθμού
Κάθε απόκριση του API περιλαμβάνει πληροφορίες για τα όρια ρυθμού:
HTTP/1.1 200 OKX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999X-RateLimit-Reset: 1640995200X-RateLimit-Retry-After: 3600Περιγραφές των κεφαλίδων
X-RateLimit-Limit: Συνολικά επιτρεπόμενα αιτήματα στο τρέχον παράθυροX-RateLimit-Remaining: Αιτήματα που απομένουν στο τρέχον παράθυροX-RateLimit-Reset: Χρονική σήμανση Unix για τον μηδενισμό του ορίουX-RateLimit-Retry-After: Δευτερόλεπτα αναμονής πριν από νέα προσπάθεια
Παρακολούθηση της χρήσης
Έλεγχος της τρέχουσας χρήσης
const checkRateLimit = async () => { const response = await fetch('https://api.brevo.com/v3/account', { headers: { 'api-key': process.env.BREVO_API_KEY } });
console.log({ limit: response.headers.get('X-RateLimit-Limit'), remaining: response.headers.get('X-RateLimit-Remaining'), reset: new Date(response.headers.get('X-RateLimit-Reset') * 1000) });};Παρακολούθηση από τον πίνακα ελέγχου
- Συνδεθείτε στον πίνακα ελέγχου του Brevo
- Μεταβείτε στο Settings → API Keys
- Δείτε τη χρήση για κάθε κλειδί API
- Ορίστε ειδοποιήσεις για όρια που πλησιάζουν
Παράθυρα μηδενισμού των ορίων
- Ημερήσια όρια: Μηδενίζονται στις 00:00 UTC
- Ωριαία όρια: Μηδενίζονται κάθε ώρα, στο λεπτό :00
- Όρια ριπής: Κυλιόμενο παράθυρο (τα τελευταία 60 δευτερόλεπτα)
Διαχείριση των ορίων ρυθμού
Εκθετική αναμονή
const makeRequestWithBackoff = async (url, options, maxRetries = 3) => { for (let i = 0; i < maxRetries; i++) { try { const response = await fetch(url, options);
if (response.status === 429) { const retryAfter = response.headers.get('X-RateLimit-Retry-After') || 60; const delay = Math.min(1000 * Math.pow(2, i), retryAfter * 1000);
console.log(`Rate limited. Waiting ${delay}ms before retry ${i + 1}`); await new Promise(resolve => setTimeout(resolve, delay)); continue; }
return response; } catch (error) { if (i === maxRetries - 1) throw error; } }};Αναβαθμίσεις προγράμματος
Όταν φτάνετε συστηματικά τα όρια ρυθμού:
- Αναλύστε τη χρήση: Δείτε ποια endpoints χρησιμοποιείτε περισσότερο
- Βελτιστοποιήστε τον κώδικα: Εφαρμόστε προσωρινή αποθήκευση και ομαδοποίηση αιτημάτων
- Εξετάστε την αναβάθμιση: Μεταβείτε σε ανώτερο επίπεδο, αν χρειάζεται
- Επικοινωνήστε με τις πωλήσεις: Για απαιτήσεις enterprise
Εξαιρέσεις από τα όρια ρυθμού
Endpoints για webhooks
- Δεν υπόκεινται στα τυπικά όρια ρυθμού
- Ισχύουν ξεχωριστά όρια παράδοσης για τα webhooks
Endpoint ελέγχου κατάστασης
- Το
/v3/pingέχει πιο χαλαρά όρια - Σχεδιάστηκε για παρακολούθηση και ελέγχους διαθεσιμότητας
Ομαδικές λειτουργίες
- Μετρούν ως ένα αίτημα, αλλά ενδέχεται να έχουν όρια στο μέγεθος του payload
- Είναι πιο αποδοτικές από πολλά μεμονωμένα αιτήματα