Ok, I think I see what happened. The date was the key - a test container was incorrectly deployed to production in early July and it’s very possible (likely, tbh) that it totally ignored rate limits, especially on retries.
I’ve also gone an re-validated the rate limiting configuration based on the above and verified it is under ~75 requests/min. For retries, the first one is at 60 seconds, then 60 minutes and then it’s discarded. We also respect the ‘Retry-After’ header if present. Will that be acceptable?
Enzo Reader is a RSS reader plugin for ChatGPT (i.e. read your feed items in ChatGPT, provide them as context, etc). We call the following endpoints at various times:
| Method | Endpoint | Purpose |
|---|---|---|
| POST | /api/login |
Authenticate and obtain a session cookie |
| GET | /reader/feeds |
Fetch subscriptions and feed metadata |
| GET | /reader/unread_story_hashes |
Fetch unread article identifiers |
| GET | /reader/river_stories |
Fetch articles: unread batches or paginated history |
| GET | /reader/starred_stories |
Fetch saved articles, with pagination |
| POST | /reader/mark_story_hashes_as_read |
Mark articles read in a batch |
| POST | /reader/mark_story_hash_as_unread |
Mark an article unread |
| POST | /reader/mark_story_hash_as_starred |
Save an article |
| POST | /reader/mark_story_hash_as_unstarred |
Unsave an article |