Filtering & sorting
All list endpoints support filtering and sorting via query parameters. Combine multiple filters in a single request to narrow down results — only records matching all specified filters are returned (AND logic). Omitted filters have no effect.
Date filters
Date parameters accept ISO 8601 format. You can use a date (2026-09-01) or a full timestamp (2026-09-01T14:30:00Z).
bash
# Snapshots from September 2026
curl "https://api.snapshotarchive.com/v1/monitors/42/snapshots?captured_after=2026-09-01&captured_before=2026-09-30" \
-H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json"
# Only completed snapshots, oldest first
curl "https://api.snapshotarchive.com/v1/monitors/42/snapshots?status=completed&sort=captured_at&order=asc" \
-H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json"
# Diffs with more than 5% visual change
curl "https://api.snapshotarchive.com/v1/monitors/42/diffs?min_change_percent=5&sort=change_percent&order=desc" \
-H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json"// Snapshots from September 2026
$response = Http::withToken('YOUR_API_KEY')
->get('https://api.snapshotarchive.com/v1/monitors/42/snapshots', [
'captured_after' => '2026-09-01',
'captured_before' => '2026-09-30',
]);
// Only completed snapshots, oldest first
$response = Http::withToken('YOUR_API_KEY')
->get('https://api.snapshotarchive.com/v1/monitors/42/snapshots', [
'status' => 'completed',
'sort' => 'captured_at',
'order' => 'asc',
]);
// Diffs with more than 5% visual change
$response = Http::withToken('YOUR_API_KEY')
->get('https://api.snapshotarchive.com/v1/monitors/42/diffs', [
'min_change_percent' => 5,
'sort' => 'change_percent',
'order' => 'desc',
]);import requests
headers = {'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'application/json'}
# Snapshots from September 2026
resp = requests.get('https://api.snapshotarchive.com/v1/monitors/42/snapshots',
headers=headers, params={'captured_after': '2026-09-01', 'captured_before': '2026-09-30'})
# Only completed snapshots, oldest first
resp = requests.get('https://api.snapshotarchive.com/v1/monitors/42/snapshots',
headers=headers, params={'status': 'completed', 'sort': 'captured_at', 'order': 'asc'})
# Diffs with more than 5% visual change
resp = requests.get('https://api.snapshotarchive.com/v1/monitors/42/diffs',
headers=headers, params={'min_change_percent': 5, 'sort': 'change_percent', 'order': 'desc'})const headers = { 'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'application/json' };
// Snapshots from September 2026
const resp1 = await fetch(
'https://api.snapshotarchive.com/v1/monitors/42/snapshots?captured_after=2026-09-01&captured_before=2026-09-30',
{ headers });
// Only completed snapshots, oldest first
const resp2 = await fetch(
'https://api.snapshotarchive.com/v1/monitors/42/snapshots?status=completed&sort=captured_at&order=asc',
{ headers });
// Diffs with more than 5% visual change
const resp3 = await fetch(
'https://api.snapshotarchive.com/v1/monitors/42/diffs?min_change_percent=5&sort=change_percent&order=desc',
{ headers });require 'net/http'
require 'json'
# Snapshots from September 2026
uri = URI('https://api.snapshotarchive.com/v1/monitors/42/snapshots?captured_after=2026-09-01&captured_before=2026-09-30')
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) }
snapshots = JSON.parse(resp.body)['data']// Snapshots from September 2026
req, _ := http.NewRequest("GET",
"https://api.snapshotarchive.com/v1/monitors/42/snapshots?captured_after=2026-09-01&captured_before=2026-09-30", 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)Filter reference
| Endpoint | Available Filters |
|---|---|
/v1/monitors | project_id, status, url, name, tag |
/v1/monitors/{id}/snapshots | captured_after, captured_before, status |
/v1/monitors/{id}/diffs | created_after, created_before, min_change_percent, max_change_percent, is_significant |
Sorting
All list endpoints accept sort and order parameters. If not specified, results are sorted by creation date, newest first.
| Endpoint | Sortable Fields |
|---|---|
/v1/projects | created_at, updated_at, name |
/v1/monitors | created_at, updated_at, url, name, status, last_snapshot_at, next_snapshot_at |
/v1/monitors/{id}/snapshots | captured_at, created_at, http_status, response_time_ms, page_weight_bytes |
/v1/monitors/{id}/diffs | created_at, change_percent |