Why Did a Request for 30 Search Results Return Only 9?
Published
This article was first published in Korean by Intrix Lab on September 7, 2026.
A commercial SERP API responded as if it had successfully processed a num=30 request, but returned only 9 results. In measurements on 2026-08-19, num=10, num=30, and num=100 all returned 9 results, and 1 credit was still deducted per call. After we explicitly requested the next page and obtained 10 more results, the overlap rate with citation sources changed from 65% to 94%.
Why was a successful response still a failure?
The problem in this case was the absence of an error code. The API returned a successful response without honoring the requested result count. Because the collector checked only whether the response succeeded, it recorded the incomplete results as complete.
The number of results returned per page stayed at 7–10, regardless of the requested value. Search depth increased only through the page parameter, not the result count parameter.
How did we verify it?
Using the same query, we changed only the result count parameter and called num=10, num=30, and num=100 in sequence. We compared the length of the organic array and the highest position value for every call. Although the requested values differed, all returned 9 results.
We then sent page=2 and received 10 additional results. This reproduced the behavior by testing requests for more results separately from requests for another page.
| Request | Results returned | Observed status |
|---|---|---|
| num=10 | 9 results | Successful response, 1 credit deducted |
| num=30 | 9 results | Successful response, 1 credit deducted |
| num=100 | 9 results | Successful response, 1 credit deducted |
| page=2 | 10 additional results | Search depth expanded |
Keeping only the request string is not enough to reconstruct this failure. You also need the response array length and position range to determine whether the requested value was applied. A credit deduction is also no evidence that the results covered a sufficient range.
How much did search depth change the metric?
Initially, believing we had requested the top 30 results, we calculated a 65% overlap rate with citation sources. After obtaining sufficient search depth through pagination, we recalculated the overlap rate as 94%. The initial figure was 29 percentage points lower.
This difference did not result from a change in the analysis formula. The denominator changed because we had not received the requested range of search results. This setup could cause missing collection data to be misinterpreted as a mismatch between sources.
Can empty results be treated as evidence of absence?
No. In this measurement, the low result count was caused by the API ignoring the result count parameter, not by a lack of search results. If empty results and truncated results are stored under the same status, later analysis cannot distinguish between them.
What should a collector record?
Do not rely on success codes alone. Also check whether you actually received the requested range. Empty responses and truncated responses should be treated as different states.
The free SEO and GEO audit checks a site's current state through actual requests and separately presents the population used for interpretation and the scope of data collection.
How broadly can these findings be applied?
The measured population covered 1 commercial SERP API. We checked 4 Korean queries about local service businesses and 1 general English query. We cannot generalize that other APIs and other queries have the same return limit.
The verification principle still applies, however. An API accepting a request is not the same as responding as requested. Comparing response sizes and ranges in logs is necessary to catch silent omissions.
Frequently asked questions (FAQ)
Q. Can I assume I received 30 results if I send num=30?
No. In this measurement, num=30 received a successful response, but there were only 9 organic results. You need to check the response array length and maximum position separately.
Q. What should I change to get more results?
For this API, we increased depth through the page parameter, not the result count parameter. Requesting page=2 returned 10 additional results.
Q. Did this omission actually affect the analysis?
Yes. The overlap rate with citation sources changed from 65% before pagination to 94% afterward. The initial figure was 29 percentage points lower.