# Keep a RAG news index fresh: News Search API

[ChatGPT ↗](https://chatgpt.com/?q=Read%20https%3A%2F%2Fnewssearchapi.com%2Fdocs%2Fguides%2Frag%2F%20and%20help%20me%20build%20with%20the%20News%20Search%20API.)[Claude ↗](https://claude.ai/new?q=Read%20https%3A%2F%2Fnewssearchapi.com%2Fdocs%2Fguides%2Frag%2F%20and%20help%20me%20build%20with%20the%20News%20Search%20API.)

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=50
```

## Persist 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.
