Skip to main content
Version: 11.4.0

Paging

All SKG-IF search endpoints share the same paging parameters, and both paging modes use the same page parameter — per the SKG-IF OpenAPI specification, page is a string that holds either a page number or a search-iteration token.

  • page: page number (default 1), or * to begin cursor paging
  • page_size: results per page, range 1–100 (default 10)

Rather than constructing page links yourself, follow the links in the meta object of each response.

Offset paging​

Pass a page number:

/skg-if/v1/products?filter=product_type:literature&page=2&page_size=10

The meta object links to the neighbouring pages and reports the total:

"meta": {
"local_identifier": "https://api.openaire.eu/graph/skg-if/v1/products?filter=product_type:literature&page=2",
"entity_type": "search_result_page",
"prev_page": { "local_identifier": "...&page=1", "entity_type": "search_result_page" },
"next_page": { "local_identifier": "...&page=3", "entity_type": "search_result_page" },
"part_of": {
"local_identifier": "https://api.openaire.eu/graph/skg-if/v1/products?filter=product_type:literature",
"entity_type": "search_result",
"total_items": 238603805
}
}
caution

Offset paging reaches only the first 10,000 records (page × page_size). Beyond that the request is rejected and points you to cursor paging.

Cursor paging​

For larger result sets, start with page=*:

/skg-if/v1/products?filter=product_type:literature&page=*&page_size=100

Then follow meta.next_page.local_identifier — it is a complete URL whose page parameter carries the token for the next page:

"meta": {
"entity_type": "search_result_page",
"next_page": {
"local_identifier": "https://api.openaire.eu/graph/skg-if/v1/products?filter=product_type:literature&page=AoM%2FDzA2Y2RkM2ZmNDcwMDo...",
"entity_type": "search_result_page"
},
"part_of": {
"first_page": { "local_identifier": "...&page=*", "entity_type": "search_result_page" },
"total_items": 238603805
}
}

Repeat until the response has no meta.next_page — that is the last page.

note

In cursor mode there is no prev_page; paging only moves forward. part_of.first_page links back to the start (page=*). Cursor tokens are opaque and already URL-encoded — pass them through unchanged.

Which mode to use​

Offset pagingCursor paging
Start withpage=1 (or omit)page=*
Jump to an arbitrary pageYesNo — forward only
Reachable recordsFirst 10,000The full result set
Best forBrowsing, UIs with page numbersHarvesting, bulk export