# Pagination, rate limits & quota

How to page through large result sets, stay within the rate limits and keep an eye on your quota.

## Pagination

### Job Postings API: page-based

Every search request returns up to **10 job postings**. Use `page` (starting at 1) and stop when `page × 10 ≥ totalCount` or the `result` array is empty. Page-based paging works for up to **10,000 results** (1,000 pages) of one query.

```bash
curl 'https://daily-international-job-postings.p.rapidapi.com/api/v2/jobs/search?countryCode=de&dateCreated=2026-09&page=2' \
  --header 'X-RapidAPI-Key: YOUR_API_KEY'
```

### Job Postings API: cursor-based

For more than 10,000 results - or for complete, stable paging while new postings arrive - send `cursor=true` with the first request. Each response contains `nextCursor`; pass it as `cursor` in the next request and stop when `nextCursor` is missing. The cursor keeps the `sort` order of the first request and cannot be combined with `page`.

```python
import requests

url = "https://daily-international-job-postings.p.rapidapi.com/api/v2/jobs/search"
headers = {"X-RapidAPI-Key": "YOUR_API_KEY"}
params = {"countryCode": "us", "dateCreated": "2026-09", "cursor": "true"}
jobs = []
while True:
    data = requests.get(url, headers=headers, params=params, timeout=30).json()
    jobs.extend(data.get("result", []))
    if not data.get("nextCursor"):
        break
    params["cursor"] = data["nextCursor"]
print(len(jobs))
```

Tip: `GET /api/v2/jobs/count` returns `totalCount` for the same filters - use it to size a query before paging through it. Each count is one request, too.

### RSS Feed API

Postings per response depend on the plan (Basic 10, Pro 10, Ultra 100, Mega 1000); `pageSize` lowers it. Paging with `page` is included from the Pro plan on - smaller plans always get page 1.

## Rate limits

RapidAPI limits the requests per second per plan. Above that you get **429 Too Many Requests** - wait and retry with exponential backoff (e.g. 1 s, 2 s, 4 s).

| Plan | Job Postings API | RSS Feed API |
|---|---|---|
| Basic | 1 request/second | 1 request/second |
| Pro | 2 requests/second | 1 request/second |
| Ultra | 5 requests/second | 1 request/second |
| Mega | 10 requests/second | 1 request/second |

## Quota and overage

Every plan includes a number of requests per month. There is **no hard limit**: when the included requests are used up, further requests are billed as overage instead of being blocked. Prices and when a bigger plan pays off: [Errors & billing](https://api.techmap.io/errors-and-billing).

RapidAPI adds these headers to every response, so you can track the quota in your code:

| Header | Meaning |
|---|---|
| `x-ratelimit-requests-limit` | Requests included in your plan per month |
| `x-ratelimit-requests-remaining` | Included requests left this month - at 0 further requests are billed as overage, not blocked |
| `x-ratelimit-requests-reset` | Seconds until the included quota resets |
| `x-rapidapi-request-id` | ID of the request - include it when you contact support |
