Pagination
List operations take limit and offset:
query {
processes {
listProcessRuns(processId: 5, limit: 10, offset: 0) {
runWorkflowId
phase
startedAt
}
}
}
The server clamps
limit is bounded server-side. Asking for a very large page does not fail — it
quietly returns the clamped maximum, which means you cannot tell "that was the last
page" from "that was the clamp" by looking at the count alone. Page until you get a
short page, and treat a full page as "there may be more".
Start small. limit: 10 is a good default for interactive use and for anything whose
results you are about to feed to a model.
Prefer point lookups
If you know which entity you want, ask for it directly rather than listing and filtering client-side:
getTask(taskId:)/getTask(publicId:)overlistTasks+ filtergetProcess(publicId:)overlistProcessesAndWorkflows+ findgetProcessRun(...)overlistProcessRuns+ find
Point lookups are cheaper on both ends and they do not interact with clamping at all.
Select only what you need
GraphQL charges you for breadth. A list query that selects every field of every row is the most common cause of a slow integration against this API — name the three or four fields you actually use.