Overview
OathNet uses cursor-based pagination for efficient retrieval of large datasets. This approach provides:- Consistent results - No duplicates or missed records when data changes
- Better performance - Faster than offset-based pagination for large datasets
- Stable ordering - Results maintain consistent order across pages
For new integrations, prefer the v2 search endpoints. Some older
/service/* routes return nextCursorMark, while v2 endpoints return next_cursor.How It Works
- Make your initial request
- Check for
nextCursorMark(ornext_cursor) in the response - Pass the cursor as the
cursorparameter in your next request - Repeat until the cursor is
null
Basic Example
Response Structure
V2 Search Response
V2 Endpoints (Stealer, Victims)
Controlling Page Size
Usepage_size to control results per page:
Pagination with Filters
Cursors work with all filter parameters:Best Practices
Process Results Incrementally
Process Results Incrementally
For large datasets, process results as you fetch them instead of loading everything into memory:
Handle Rate Limits Between Pages
Handle Rate Limits Between Pages
Add delays between pagination requests to avoid rate limits:
Save Cursors for Resumption
Save Cursors for Resumption
For long-running jobs, save cursors to resume if interrupted:
Limit Total Results
Limit Total Results
Set a maximum number of results to fetch:
Common Issues
Cursor Expired
Cursors may expire after a period of inactivity:Results Changed
If data is updated between pagination requests, you may see slightly different totals. This is normal and doesn’t affect result consistency.Next Steps
Rate Limiting
Understand quotas when paginating large datasets