Bulk Search
BulkSearch is still in development. While we don’t anticipate breaking changes, the following examples may vary.
Using BulkSearch is not like our other searches. It’s a process. But by following the process you won’t eventually be capped by search results. Below, we will outline the steps in using BulkSearch.
Call
getPointInTimeIdin DocumentMutation.query($input: GetPointInTimeIdInput!) { documents{ getPointInTimeId(input: $input) } } { "input":{ "itemSourceFilter":"Customer" } }
You should get a response that looks like the following:
{ "data": { "documents": { "getPointInTimeId": "yvaYBAENODY3NTMwOS1pbmRleBZBcTZlOUpZQ1RXcVZRNXpnSkREdnJBAAEWX2hqVE55NUdSTnlDNlpZUzIwMG5YZwABAAAAAAAAKDUWZUxGTHlkRnRSUG0zX0d5TWw1WWJLZwABFkFxNmU5SllDVFdxVlE1emdKRER2ckEAAA==" } } }This PointInTimeId lives for 1 minute. Each time you use it in BulkSearch it will refresh the timer.
Grab this PointInTimeId string. We need to use this in BulkSearch!
Call BulkSearch using the PointInTimeId and leaving off the cursor or using the default value for it (MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw)
query($input: BulkSearchInput!) { documents { bulkSearch(input: $input) { documents{ id name modified } cursor } } } { "input":{ "pointInTimeId":"yvaYBAENODY3NTMwOS1pbmRleBZBcTZlOUpZQ1RXcVZRNXpnSkREdnJBAAEWX2hqVE55NUdSTnlDNlpZUzIwMG5YZwABAAAAAAAAKDUWZUxGTHlkRnRSUG0zX0d5TWw1WWJLZwABFkFxNmU5SllDVFdxVlE1emdKRER2ckEAAA==", "pageSize":10000, "documentTypes":["Ingredient", "Recipe"], "cursor":"MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw" } }
You will get a response like the below, grab the new cursor!
{ "data": { "documents": { "bulkSearch": { "documents": [ { "id": "3607bd71-91ec-424a-5ef8-ee69ecb67fee", "name": "Sample, Fruit Salad", "modified": "2026-04-03T16:42:20.5512431+00:00" } ....... ], "cursor": "MjAyNi0wNC0wM1QxNjo0MjoyMC41NTEyNDMxKzAwOjAw" } } } }
Next, use the same request as before EXCEPT you’ll want to use the new cursor that you got from your previous response.