Documentation Index
Fetch the complete documentation index at: https://docs.signalhire.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
After an initial Search by Query returns ascrollId, use this endpoint to fetch subsequent batches of results. The mechanism works similarly to Elasticsearch scroll — the server keeps the search context alive while batches are being retrieved one after another.
The intended usage pattern is sequential and continuous: fetch all needed results in one session, batch by batch, then process them. The scroll session is not designed for periodic polling — for example, fetching 100 profiles every hour is not a supported use case.
Understanding the 15-Second Timeout
ThescrollId expires 15 seconds after it is issued. This is intentional — it represents the maximum time allowed to request the next batch after receiving the current one.
The server keeps the search context alive for the entire duration of an active scroll session. The 15-second window applies only between consecutive requests, not to the total session length. As long as each subsequent request arrives within 15 seconds of the previous response, the session remains active regardless of total session duration.
A common misconception is treating the scroll like a bookmark — fetching a batch, processing it for several minutes, then resuming. This will not work. The correct approach:
- Start with
searchByQuery— receive the first batch andscrollId - Immediately send the next
scrollSearchrequest using the newscrollId - Repeat until no
scrollIdis returned in the response (no more results) - Process all collected results after the session is complete
Endpoint:
POST https://www.signalhire.com/api/v1/candidate/scrollSearch/{requestId}
Request Parameters
The
requestId from the initial searchByQuery response. Included in the URL path.The
scrollId from the previous searchByQuery or scrollSearch response.Request Example
Response Example (HTTP 200)
The response format is identical to the initial Search by Query response — same fields, same structure. Thetotal field always reflects the overall count across all batches, not just the current one.
scrollId to use in the next request. When scrollId is absent from the response, all results have been retrieved and the scroll session is complete. See Search Profile Object for a full field reference.
Scroll requests do not count as new searches against the daily query quota. However, every profile returned by a scroll does count against the daily profile quota — the same limit that applies to
searchByQuery results.Response Status Codes
| Code | Description |
|---|---|
200 | Results returned successfully |
402 | Daily search quota exceeded |
404 | Invalid or expired scrollId |
429 | More than 3 concurrent requests |
Full Example
For a complete end-to-end example showingsearchByQuery and scrollSearch working together with database saving, see Full Search Example.