openapi: 3.1.0 info: title: CWMS Data Basins Time Series 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: Time Series description: Time series data retrieval and management paths: /timeseries: get: operationId: getTimeSeries summary: Get Time Series description: Returns time series data for a specified time window. Time series data includes measurements such as river stage, flow, precipitation, temperature, and reservoir pool elevation over time. tags: - Time Series parameters: - name: name in: query required: true description: The time series identifier in CWMS format (e.g., DALT2.Stage.Inst.15Minutes.0.raw) schema: type: string - name: office in: query required: false description: Three-character USACE district office code schema: type: string - name: unit in: query required: false description: Measurement unit for the returned data schema: type: string - name: datum in: query required: false description: Vertical datum for elevation values schema: type: string - name: begin in: query required: false description: Start of time window in ISO 8601 format or milliseconds since epoch schema: type: string - name: end in: query required: false description: End of time window in ISO 8601 format or milliseconds since epoch schema: type: string - name: timezone in: query required: false description: Timezone for interpreting date/time values schema: type: string - name: format in: query required: false description: Response format schema: type: string enum: - json - xml - tab - csv - 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 time series values per page schema: type: integer responses: '200': description: Time series data content: application/json: schema: $ref: '#/components/schemas/TimeSeries' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' /timeseries/recent: get: operationId: getRecentTimeSeries summary: Get Recent Time Series description: Returns the most recent time series values. Useful for displaying current conditions at USACE locations. tags: - Time Series parameters: - name: office in: query required: false description: Three-character USACE district office code schema: type: string - name: name in: query required: false description: Time series identifier (supports CWMS wildcards) schema: type: string - name: recently-changed-within in: query required: false description: ISO 8601 duration for how recently the data was updated (e.g., PT2H for 2 hours) schema: type: string responses: '200': description: Recent time series data content: application/json: schema: type: object /timeseries/filtered: get: operationId: getFilteredTimeSeries summary: Get Filtered Time Series description: Returns filtered time series data based on specified criteria. tags: - Time Series parameters: - name: office in: query required: false description: Three-character USACE district office code schema: type: string - name: name in: query required: false description: Time series identifier (supports CWMS wildcards) schema: type: string responses: '200': description: Filtered time series data content: application/json: schema: type: object components: schemas: Error: type: object properties: message: type: string description: Human-readable error description status: type: integer description: HTTP status code TimeSeriesValue: type: array description: An array of [timestamp (ms since epoch), value, quality code] tuples items: type: number TimeSeries: type: object properties: name: type: string description: The time series identifier office-id: type: string description: Owning USACE district office code units: type: string description: Measurement units interval: type: integer description: Data interval in minutes (0 for irregular) interval-offset: type: integer description: Interval offset in minutes time-zone: type: string description: Timezone for the time series values: type: array description: Array of [timestamp, value, quality] tuples items: $ref: '#/components/schemas/TimeSeriesValue' total: type: integer description: Total number of values available page: type: string description: Current page cursor next-page: type: string description: Next page cursor responses: BadRequest: description: Bad request — invalid parameters or missing required fields content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found 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.