Skip to main content
GET
Query Imagery

Overview

The unified imagery query endpoint provides access to both infrared and visible images from AVERT volcano monitoring cameras. Query and download images with flexible filtering options including site, date range, atmospheric conditions, and temporal sampling.
All parameters are optional. Without parameters, the API returns the 100 most recent infrared images.

Parameters

Image Type

string
default:"infrared"
Type of imagery to queryOptions:
  • infrared - Thermal/infrared imagery (default)
  • visible - Standard visible light imagery

Pagination

integer
default:"100"
Number of results per pageRange: 1-200
Default: 100
integer
default:"1"
Page number for paginationMinimum: 1
Default: 1

Location Filters

You can find available site names and vnum codes here.
string
Camera site codeCommon sites:
  • CLNE - Cleveland volcano
  • VPMI - Poás volcano
integer
Volcano ID numberCommon volcano IDs:
  • 311240 - Cleveland
  • 345040 - Poás
  • 383010 - Cumbre Vieja
  • 311290 - Okmok

Date Range Filters

string
Start date/time for query rangeFormat: yyyymmddhhmmss
Timezone: Coordinated Universal Time (UTC) Example: 20250321110000 = March 21, 2025 at 11:00:00 AM UTC
string
End date/time for query rangeFormat: yyyymmddhhmmss
Timezone: Coordinated Universal Time (UTC)
Time Handling:
  • freq=all with single site: Time portion ignored, dates interpreted as local dates
  • freq=daily: Time portion ignored, dates interpreted as local dates
  • freq=hourly/minutely: Time portion creates daily recurring UTC time window
  • freq=all without site: Time portion used, dates interpreted as exact UTC range

Condition Filters

boolean
Filter by empty/corrupted filesApplies to: Infrared and Visible
boolean
Filter by time of dayApplies to: Visible only (returns 400 error for infrared)Options:
  • true - Nighttime images
  • false - Daytime images
boolean
Filter by degraded quality (dynamic range artifacts)Applies to: Infrared only (returns 400 error for visible)
boolean
Filter by fog/clouds obstructionApplies to: Infrared and Visible

Temporal Sampling

string
default:"all"
Frequency/sampling filter for time-lapse and data reductionOptions:
  • all - Return all captured images (default, ~1-2 min intervals)
    • Single site: Returns all images for full local days, timestamps in local time (no Z)
    • No site/multi-site: Returns images in exact UTC time range, timestamps in UTC (with Z)
  • minutely - Middle image from each minute within daily UTC time window (requires site)
  • hourly - Middle image from each hour within daily UTC time window (requires site)
  • daily - Image closest to 10:00 AM local time for each day (requires site)
How it works:AVERT cameras capture images approximately every 1-2 minutes (irregular intervals). The freq parameter groups images by time period and returns a representative image from each period.Time Handling:
  • freq=all with single site: Time portion ignored, returns full local days
  • freq=daily: Time portion ignored, returns one image per local day at 10 AM
  • freq=hourly/minutely: Time portion creates daily recurring UTC time window
Use freq=hourly or freq=daily when downloading large date ranges to dramatically reduce dataset size while maintaining temporal coverage. Note that freq=daily, hourly, and minutely require a site parameter.
string
default:"desc"
Sort order of results by timestampOptions:
  • desc - Newest images first (default)
  • asc - Oldest images first
Timezone-aware ordering:
  • freq=all with single site: Sorts by local site time
  • All other queries: Sorts by UTC time
For freq=hourly and freq=minutely, the same images are returned regardless of order - only the display order changes.

Download Options

string
Download mode for retrieving imagesOptions:
  • estimate - Get download estimate (size, time, warnings) WITHOUT downloading
  • true - Download all matching images as ZIP file
  • selected - Download specific images by ID (requires image_ids)
Frontend workflow (recommended):
1

Get estimate

Returns JSON with:
2

Show confirmation

Display estimate to user and get confirmation before downloading
3

Trigger download

Returns ZIP file with all 24 images
API testing:
string
Comma-separated image IDs for selective downloadRequired when: download=selected
Format: Comma-separated list of image IDs

Response Format

JSON Response (default)

Response Fields

array
required
Array of image objects matching your query
object
required
Pagination metadata for navigating results
object
required
Echo of your query parameters for debugging

Download Estimate Response

When using download=estimate:

ZIP Download Response

When using download=true or download=selected, returns a ZIP file containing JPG images. ZIP Structure:

Example Requests

Basic Queries

Filter by Location

Filter by Date

Filter by Conditions

Temporal Sampling

Downloads

Code Examples

JavaScript/TypeScript

Python

Handling Rate Limits

The /api/imagery/q endpoint limits requests to 100 per minute per IP address. Implement retry logic to handle rate limit errors:

Error Responses

Best Practices

Always call download=estimate before triggering large downloads to inform users about size and time requirements.
When querying long time periods, use freq=hourly or freq=daily to reduce dataset size while maintaining temporal coverage.
Don’t try to fetch all results at once. Use pagination to load results incrementally.
Store frequently accessed data locally to reduce API calls and improve performance.
Implement proper error handling and retry logic for rate limits and network errors.

Need Help?

Migration Guide

Upgrading from API v1? Check our migration guide

Contact Support

Questions or issues? Reach out to our team