RAG GUIDE
Keep a RAG index fresh
The GET /v1/articles contract documents indexed_from as an inclusive ingestion-time filter. Combine it with sort=indexed_desc and persist the last seen indexedAt timestamp (the time that article version was last indexed) as the cursor for the next poll.
Poll new articles
Request articles after your stored cursor. Use the documented page and page_size parameters to paginate through results with up to 100 articles per page.
GET /v1/articles?indexed_from=2026-10-31T09%3A00%3A00Z&sort=indexed_desc&page=1&page_size=50Persist a cursor
Read each returned article's indexedAt value and store the newest value your index has fully processed. On the next poll, use that timestamp as indexed_from. The API defines this filter as inclusive, so results at the boundary may repeat; deduplicate using the stable article id.
Retry with overlap
For retryable ingestion failures, poll from an earlier documented timestamp to create an overlap window, then deduplicate by article ID. Respect the API's plan-specific archive and page-size limits.