openapi: 3.1.0
info:
title: CWMS Data Basins Catalog API
description: The Corps Water Management System (CWMS) Data API provides a RESTful interface for accessing water management data from the U.S. Army Corps of Engineers. This includes time series data, locations, levels, ratings, forecasts, projects, turbines, gates, and water supply information for USACE-managed water resources across the United States.
version: 3.0.0
contact:
name: USACE CWMS Data API Support
url: https://github.com/USACE/cwms-data-api
license:
name: MIT
url: https://github.com/USACE/cwms-data-api/blob/develop/LICENSE.md
x-tags:
- Water Management
- Federal Government
- Hydrology
- Engineering
servers:
- url: https://cwms-data.usace.army.mil/cwms-data
description: Production CWMS Data API
- url: https://water.usace.army.mil/cwms-data
description: Water Data Platform
tags:
- name: Catalog
description: Browse available data in the CWMS catalog
paths:
/catalog/{datastore-type}:
get:
operationId: getCatalog
summary: Get Catalog
description: Returns a catalog of available time series, locations, or other data stored in CWMS. Use this endpoint to discover available data.
tags:
- Catalog
parameters:
- name: datastore-type
in: path
required: true
description: The type of data to catalog (TIMESERIES, LOCATIONS, RATINGS, etc.)
schema:
type: string
enum:
- TIMESERIES
- LOCATIONS
- RATINGS
- name: page
in: query
required: false
description: Pagination cursor from a previous response
schema:
type: string
- name: page-size
in: query
required: false
description: Number of results to return per page (max 500)
schema:
type: integer
default: 500
- name: office
in: query
required: false
description: Three-character USACE district office code (e.g., SWT, LRN)
schema:
type: string
- name: like
in: query
required: false
description: Filter results using a CWMS wildcard pattern
schema:
type: string
responses:
'200':
description: Catalog results
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogResponse'
'400':
$ref: '#/components/responses/BadRequest'
components:
schemas:
CatalogResponse:
type: object
properties:
page:
type: string
description: Current page cursor
next-page:
type: string
description: Next page cursor (absent if no more pages)
total:
type: integer
description: Total number of entries matching the query
page-size:
type: integer
description: Number of entries in this response
entries:
type: array
items:
$ref: '#/components/schemas/CatalogEntry'
CatalogEntry:
type: object
properties:
name:
type: string
description: The identifier for this catalog entry
office:
type: string
description: The owning USACE district office code
units:
type: string
description: Measurement units
Error:
type: object
properties:
message:
type: string
description: Human-readable error description
status:
type: integer
description: HTTP status code
responses:
BadRequest:
description: Bad request — invalid parameters or missing required fields
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: JWT Bearer token for authenticated operations (create, update, delete). Obtain a token from the CWMS authorization endpoint.