API Pagination Runners
Configure once, use everywhere. Runtime credentials stay in Clay.
Loading saved runners...
Active runners0
Total calls0
Clay calls0
This project is open source for auditability. Review the GitHub repository, pagination engine, or security notes.
Create New Runner
Let AI help you configure from documentation.
1AI Setup
2Configure
3Test
4Review & Save
This runner is locked. Create a new runner for changes.
AI
AI setup helper
Use this when you have API docs but do not know which fields to enter. Generate a prompt, send it to Claude, ChatGPT, or another AI, then paste the returned JSON object back here. The app fills the values the AI provided and clears untouched defaults it did not provide.
1
Endpoint
Enter the upstream API endpoint exactly as the API expects it. If a credential must live in the URL, use a placeholder such as
{{key}}; Clay will pass the value on the generated runner URL at run time.For URL keys, use placeholders like
https://api.com/call?api={{key}}. Clay will call /?key=... .2
Pagination
Choose the pagination style from the API docs. Max pages is a safety cap, not the number of pages to fetch; the runner stops automatically when the API has no next page.
Use this for APIs that paginate with page numbers. JSON next link also follows
links.next when present.Use this for APIs that ask for an offset and limit.
Use this for APIs that return a cursor for the next page.
Use this for APIs that return the next page in the HTTP
Link header.Use this when the endpoint returns everything in one response.
3
Response shaping
Return the full item by default, flatten JSON:API attributes for easier Clay columns, or select only the fields Clay needs.
Use one field per line as
output_name:path.to.value. Selected fields only applies when Shape mode is Select fields.4
Safety and rate controls
These controls prevent runaway loops and help with rate-limited APIs. The defaults stop on empty pages and repeated next links while still allowing full pagination.
5
Auth and test
List only the header names Clay should forward at run time. Use test credentials here to verify the runner; test credentials and query values are not saved.
Header values come from Clay at run time. They are never stored.
Static headers
?
Test credentials
?
Test credentials, query params, response rows, and traces are not saved.
Working...
{}
6
Save and connect
Review the tested configuration, then save. Saved runners are locked so live Clay tables keep a stable URL and behavior.
Saving creates a stable URL. Saved runners cannot be edited or deleted.
Clay URL
Runner details
Loading runner details...
Generated Runner URL
Runner management link
Use this URL to open this saved runner directly.
Analytics deep link
Use this URL when sharing call-volume and status-code analytics.
Runner Access
Static IP path
If this runner is being called from a Clay surface where static IP egress is enabled and the request comes through the allowed Clay static IPs, no runner token is needed.
Signals and non-static-IP surfaces
If the Clay surface does not support static IP egress, such as Signals, use a runner token. The token is emailed only to a
@clay.com address and is sent as x-clay-paginate-token.
Token status
If a token is compromised or needs to be rotated, review the regeneration warnings first. The destructive action only appears inside the confirmation modal.
Workspace Usage Log
Manual usage notes
Record where this runner is used before handing it to Clay teams. This is admin-only notation for future token rotations; it is never filled from runtime calls and should not contain credentials.
Configuration Details
Target endpoint
Method
Result path
Response
Max pages
Page size
Shape
Saved runners are immutable. Create a new runner for changes.
Runner analytics
Operational patterns for the selected runner, with metadata-only storage.
Loading analytics...
What analytics store
D1 stores only operational metadata: run mode, success or error, page count, item count, duration, upstream status code, stop reason, retry count, timestamp, and coarse error code.
It does not store Clay request headers, credential values, query parameters, request bodies, upstream page URLs, upstream response rows, upstream response bodies, full upstream error bodies, or debug traces.
Total calls0
Clay calls0
Items returned0
Avg duration0 ms
Avg pages0
Retries0