Search the AQUAVIEW catalog — a comprehensive collection of 268K+ global oceanographic, atmospheric, and marine datasets from 15 sources (NOAA, NDBC, IOOS, WOD, CoastWatch, etc.), intended for scientific research, data analysis, and environmental monitoring.
This searches METADATA — which datasets exist. To pull the actual observations
(temperature profiles, buoy readings, float positions), use get_data instead;
list_data_sources shows which sources support it.
You must provide at least one of: q, bbox, datetime, collections, filter, or token.
Hint: When the user asks for a region, prefer the 'bbox' parameter over including region name in 'q'. Use the geo_hints resource for common bounding boxes.
Args:
q: Free-text search across title, description, and keywords (e.g., "sea surface temperature"). Case-insensitive, OR logic across terms.
bbox: Bounding box as "west,south,east,north" (e.g., "-98,24,-80,31" for Gulf of Mexico).
datetime: Temporal filter. Single datetime, range ("2020-01-01T00:00:00Z/2024-12-31T23:59:59Z"), or open-ended ("../2024-01-01T00:00:00Z" or "2020-01-01T00:00:00Z/..").
collections: Comma-separated collection IDs to search within (e.g., "NOAA,NDBC,WOD"). Use list_collections to see available IDs.
exclude_collections: Comma-separated collection IDs to omit from results (e.g., "INCIDENT_NEWS" to drop oil-spill reports from free-text searches). Applied as a CQL2 NOT filter, so it composes with `filter`.
filter: CQL2-JSON filter as an object or JSON-encoded string. Supports flat and nested property paths. Flat example: {"op": "=", "args": [{"property": "aquaview:institution"}, "NOAA/NCEI"]}. Nested example (filter by per-variable stats summary): {"op": "<=", "args": [{"property": "aquaview:column_stats_summary.variables.Pressure.min"}, 10]}. Supported operators: =, <>, <, >, <=, >=, like, between, in, and, or, not.
license: Comma-separated SPDX license id(s) to match exactly (e.g., "CC-BY-4.0,CC0-1.0"). Also accepts the controlled extra values "public-domain", "proprietary", "various", "unknown". Matched against `aquaview:license`, which is normalized on every item regardless of source.
sortby: Sort specification as "+field,-field" (e.g., "+properties.datetime,-id"). + = ascending, - = descending.
limit: Number of results to return, 1-100. Defaults to 10.
token: Pagination token from a previous response's 'next_token' field. Pass this to get the next page of results.
fields: Comma-separated list of fields to include in results (e.g., "id,geometry,properties.title"). Reduces response size. When set in CSV mode, emits projected columns (no canonical columns, no asset_keys, no `## assets` section).
include_assets: If False (default), asset download records are omitted to save ~60-70% of response tokens; CSV mode still emits a capped `asset_keys` hint column (e.g. `column_stats;overview;gdac_prof;+[N]`) so an agent can see what kinds of assets exist. To get full URLs, call `get_item(collection, item_id)` for the specific id. If True, assets are included inline (full dict for JSON/TOON; `## assets` section with item_id,key,href,type,title rows for CSV).
output_format: "csv" (default, sectioned CSV — canonical columns including asset_keys hint), "json", or "toon".
Returns:
Search results with metadata (total matched, returned, next_token) and items.
CSV mode emits `## metadata` + `## items` sections and a `## assets` section
when include_assets=True; columns are id,collection,bbox,datetime,title,institution,
platform_type,cdm_data_type,variables,keywords,source_url,description,
column_stats_summary,geometry,asset_keys. JSON/TOON return the STAC feature shape,
with the `assets` dict present only when include_assets=True.