Fair-use limits
The daily limits every account shares, and how to change them on your own server.
Eavesy is free, and everyone gets the same limits. There are no tiers. The limits keep shared servers and AI costs predictable, and they are counted per account, per day.
Anything that happens only on your Mac, like local captures, on-device text and live captions, doesn't count.
Daily limits
Counters reset at midnight UTC.
| What | Per day | Environment variable |
|---|---|---|
| Audio segments uploaded | 2,400 | QUOTA_SEGMENT_PER_DAY |
| Transcriptions | 300 | QUOTA_TRANSCRIBE_PER_DAY |
| Recording processing runs | 100 | QUOTA_PROCESS_PER_DAY |
| Dictations | 500 | QUOTA_DICTATION_PER_DAY |
| Web captures | 300 | QUOTA_CAPTURE_PER_DAY |
| Mac screenshots and images synced | 2,000 | QUOTA_CAPTURE_SYNC_PER_DAY |
| Drops | 500 | QUOTA_DROP_PER_DAY |
| Chat messages | 300 | QUOTA_CHAT_PER_DAY |
| Brief regenerations | 60 | QUOTA_REGENERATE_PER_DAY |
| Translations | 600 | QUOTA_TRANSLATE_PER_DAY |
| Library index refreshes | 20 | QUOTA_LIBRARY_REINDEX_PER_DAY |
| Searches | 1,000 | QUOTA_SEARCH_PER_DAY |
| Full account exports | 10 | QUOTA_EXPORT_PER_DAY |
| Single recording exports | 200 | QUOTA_MEETING_EXPORT_PER_DAY |
2,400 segments is about 20 hours of two-track recording.
When you reach a limit, the request returns HTTP 429 with the code
daily_quota. Try again after the reset.
Server-wide limits
Transcription, processing and translation also have a per-IP limit per minute and a daily budget for the whole server:
| Endpoint | Per IP, per minute | Whole server, per day |
|---|---|---|
| Transcribe (including web dictations) | 20 (RL_TRANSCRIBE_PER_MIN) | 5,000 (BUDGET_TRANSCRIBE_PER_DAY) |
| Process (including imports) | 10 (RL_PROCESS_PER_MIN) | 2,000 (BUDGET_PROCESS_PER_DAY) |
| Translation | 20 (RL_TRANSLATION_PER_MIN) | 5,000 (BUDGET_TRANSLATION_PER_DAY) |
Self-hosting
The defaults live in web/src/server/rate-limit.ts. Set the matching
environment variable to change one on your own deployment.
Counters are stored in D1. If the counter can't be reached, uploads of recording audio still go through so nothing is lost, and everything else is refused until it's back. See open source and self-hosting.
Next
These docs are open source. Spotted something wrong or missing?