## TL;DR

Set limit to 100 or less and page through the rest with the cursor. Klaviyo caps page size at 100, so any larger limit is rejected outright. There is no way to raise the cap; pagination is the fix.

```text
klaviyo API 400: limit exceeds maximum allowed value of 100
```

## Steps

1. Find where your client sets the limit parameter on the failing request. Expected: you see a value above 100.

2. Change the limit to 100 or lower. Expected: the outgoing request carries a compliant limit.

3. Implement cursor pagination: follow the next-page cursor from each response until there are no more pages. Expected: your code walks the full result set in chunks of 100.

4. Re-run the request. Expected: Klaviyo returns the first page with a 200 instead of the 400.

5. Verify the paginated walk collects every record you expect. Expected: the total count matches the full set, proving no pages were skipped.

## Use this when

- Klaviyo returns exactly "limit exceeds maximum allowed value of 100".
- A generated client asks for a large page size like 250 or 1000 by default.
- The same code works on a provider with a higher page cap.

## Not for this skill when

- The API key is invalid (authentication fails regardless of limit).
- A filter or sort parameter is malformed (that error names the parameter).
- Another provider rejects your limit with a different maximum.

## Variant phrasings

- Klaviyo limit exceeds maximum allowed value
- Klaviyo API 400 limit too high
- Klaviyo pagination limit 100 error

## Why it happens

Klaviyo enforces a hard maximum page size of 100 to protect its API. Generated clients often default to page sizes of 250, 500, or 1000 because other providers allow them, and they copy that default onto Klaviyo calls. The API rejects the request before doing any work.

## Edge cases

- Requesting exactly 100 is fine; the cap is inclusive, so only values above 100 fail.
- Smaller limits (25 to 50) can be kinder to rate limits if you hit 429s while paging.
- Some Klaviyo endpoints use different pagination styles; confirm the endpoint you call supports the cursor you are following.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_ywgzTKU7GvV8o4scPY_4iA
