Pagination
All list endpoints return paginated results. The default page size is 20 items. Use per_page (max 100) and page to navigate through results. Every paginated response includes a meta object with pagination details.
bash
# Get page 3 with 50 items per page
curl "https://api.snapshotarchive.com/v1/monitors?page=3&per_page=50" \
-H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json"$response = Http::withToken('YOUR_API_KEY')
->get('https://api.snapshotarchive.com/v1/monitors', [
'page' => 3,
'per_page' => 50,
]);
$monitors = $response->json('data');
$meta = $response->json('meta');import requests
resp = requests.get('https://api.snapshotarchive.com/v1/monitors',
headers={'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'application/json'},
params={'page': 3, 'per_page': 50})
data = resp.json()
monitors = data['data']
meta = data['meta']const resp = await fetch('https://api.snapshotarchive.com/v1/monitors?page=3&per_page=50', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'application/json' },
});
const { data: monitors, meta } = await resp.json();require 'net/http'
require 'json'
uri = URI('https://api.snapshotarchive.com/v1/monitors?page=3&per_page=50')
req = Net::HTTP::Get.new(uri, 'Authorization' => "Bearer #{API_KEY}",
'Accept' => 'application/json')
resp = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
result = JSON.parse(resp.body)
monitors = result['data']
meta = result['meta']req, _ := http.NewRequest("GET",
"https://api.snapshotarchive.com/v1/monitors?page=3&per_page=50", nil)
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Accept", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)Meta object
json
{
"meta": {
"current_page": 3,
"per_page": 50,
"total": 142,
"last_page": 3
}
}To iterate through all pages, keep incrementing page until current_page equals last_page.