Outcome
Save one reproducible historical response for one venue family, symbol, data family, and bounded time window. For historical pulls that use Hyperliquid core coverage, start with the Hyperliquid core coverage and route-family overview before returning here for the bounded pull workflow.Prerequisites
- Complete Choose venue and market family when the namespace is not already known.
- Check the selected symbol and data family in Data quality before a long pull.
- Load the API key from the runtime environment.
- Set a page budget and output path before the first request.
Inputs
Steps
1
Check the window
Confirm the family, symbol, data family, coverage source, freshness state, and incident state for the requested window.
2
Pull the first page
3
Follow the cursor within bounds
If the response has
meta.next_cursor, send that exact value as cursor on the next request. Keep the original start, end, and limit, and stop at the declared page budget.4
Save each page
Store the full query, response status, returned rows, cursor value, and request ID for every page. Keep the raw response separate from any transformed table.
Expected state
The first response hassuccess, a data array of trade rows, and route metadata. meta.next_cursor may be absent when the window is exhausted. A completed pull has no remaining cursor inside the requested window and a request ID for each page.
Verification
Use integer Unix milliseconds forstart, end, and the route’s documented cursor values. Do not mix ISO text and numeric bounds in one job. Check that the final row stays inside the requested window, the cursor chain is recorded, and the quality decision is attached to the output.
Failure and recovery
400: correct the named parameter, symbol, or time window before retrying.401: repair the key source or header.404: return to Venue coverage and check the family namespace.429: honorRetry-Afterwhen present, otherwise use capped exponential backoff with jitter and lower concurrency.- A remaining cursor at the page budget: mark the output partial and resume with the saved cursor under a new bounded run.
- A quality or incident failure: narrow, delay, or mark the output. Do not add synthetic rows.
Saved run metadata
cursor_chain; do not invent an opaque cursor.