Concepts
Pagination
List endpoints paginate with opaque cursors. Pass meta.cursors.next back as the cursor parameter.
List endpoints (posts, comments, replies) return one page per request and an
opaque cursor for the next page. Pass it back as the cursor query parameter
to continue. When meta.cursors.next is null, you have reached the end.
curl "https://api.openhandle.dev/v1/instagram/profiles/@instagram/posts" \
-H "Authorization: Bearer $OPENHANDLE_API_KEY"{
"platform": "instagram",
"resource": "post",
"capturedAt": "2026-08-06T12:04:11Z",
"source": "live",
"data": ["…"],
"meta": {
"cursors": { "next": "b3BhcXVlLWN1cnNvcg" }
}
}Next page:
curl "https://api.openhandle.dev/v1/instagram/profiles/@instagram/posts?cursor=b3BhcXVlLWN1cnNvcg" \
-H "Authorization: Bearer $OPENHANDLE_API_KEY"Rules
- Cursors are opaque. Do not parse, store long-term, or construct them. Their format can change at any time.
- Cursors are bound to their request. A cursor from one endpoint, target,
or freshness tier is invalid elsewhere and returns
CURSOR_MISMATCH. - Each page is one billable request. Fetching five pages is five requests.
- Sources can switch mid-pagination. If the upstream source changes while
you paginate, the API returns
UPSTREAM_SWITCHED(HTTP 409). Restart the pagination from the first page.
Limiting history with since
Post lists accept a since parameter with an RFC 3339 timestamp. Pagination
stops once posts are older than that point, so you do not pay for pages you
would discard:
curl "https://api.openhandle.dev/v1/instagram/profiles/@instagram/posts?since=2026-07-01T00:00:00Z" \
-H "Authorization: Bearer $OPENHANDLE_API_KEY"