USGS Water Services server API
These APIs provide OGC-compliant interfaces to USGS water data, letting you download continuous sensor measurements, discrete field measurements, metadata about monitoring locations, and more.
These APIs provide OGC-compliant interfaces to USGS water data, letting you download continuous sensor measurements, discrete field measurements, metadata about monitoring locations, and more.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/usgs-water-server-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
contact:
name: US Geological Survey - Water Data for the Nation
url: https://waterdata.usgs.gov
x-ogc-serviceContact:
addresses: []
emails:
- value: wdfn@usgs.gov
hoursOfService: pointOfContact
links:
- href: https://waterdata.usgs.gov/questions-comments/?referrerUrl=https://api.waterdata.usgs.gov
type: text/html
name: WDFN Support
description: 'These APIs provide OGC-compliant interfaces to USGS water data, letting you download continuous sensor measurements, discrete field measurements, metadata about monitoring locations, and more.
'
license:
name: US Government work in the public domain
url: https://creativecommons.org/publicdomain/zero/1.0/
termsOfService: https://creativecommons.org/publicdomain/zero/1.0/
title: USGS Water Data OGC APIs agency-codes Server API
version: 0.56.0
x-keywords:
- geospatial
- data
- api
- hydrology
- USGS
servers:
- description: 'These APIs provide OGC-compliant interfaces to USGS water data, letting you download continuous sensor measurements, discrete field measurements, metadata about monitoring locations, and more.
'
url: https://api.waterdata.usgs.gov/ogcapi/v0
tags:
- description: 'These APIs provide OGC-compliant interfaces to USGS water data, letting you download continuous sensor measurements, discrete field measurements, metadata about monitoring locations, and more.
'
externalDocs:
description: information
url: https://api.waterdata.usgs.gov
name: server
paths:
/:
get:
description: Landing page
operationId: getLandingPage
parameters:
- $ref: '#/components/parameters/f'
- $ref: '#/components/parameters/lang'
responses:
'200':
$ref: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/ogcapi-features-1.yaml#/components/responses/LandingPage
'400':
$ref: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/ogcapi-features-1.yaml#/components/responses/InvalidParameter
'403':
$ref: '#/components/responses/Forbidden403'
'429':
$ref: '#/components/responses/TooManyRequests429'
'500':
$ref: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/ogcapi-features-1.yaml#/components/responses/ServerError
summary: Landing page
tags:
- server
/collections:
get:
description: Collections
operationId: getCollections
parameters:
- $ref: '#/components/parameters/f'
- $ref: '#/components/parameters/lang'
responses:
'200':
$ref: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/ogcapi-features-1.yaml#/components/responses/LandingPage
'400':
$ref: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/ogcapi-features-1.yaml#/components/responses/InvalidParameter
'403':
$ref: '#/components/responses/Forbidden403'
'429':
$ref: '#/components/responses/TooManyRequests429'
'500':
$ref: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/ogcapi-features-1.yaml#/components/responses/ServerError
summary: Collections
tags:
- server
/conformance:
get:
description: API conformance definition
operationId: getConformanceDeclaration
parameters:
- $ref: '#/components/parameters/f'
- $ref: '#/components/parameters/lang'
responses:
'200':
$ref: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/ogcapi-features-1.yaml#/components/responses/LandingPage
'400':
$ref: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/ogcapi-features-1.yaml#/components/responses/InvalidParameter
'403':
$ref: '#/components/responses/Forbidden403'
'429':
$ref: '#/components/responses/TooManyRequests429'
'500':
$ref: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/ogcapi-features-1.yaml#/components/responses/ServerError
summary: API conformance definition
tags:
- server
/openapi:
get:
description: This document
operationId: getOpenapi
parameters:
- $ref: '#/components/parameters/f'
- $ref: '#/components/parameters/lang'
- description: UI to render the OpenAPI document
explode: false
in: query
name: ui
required: false
schema:
default: swagger
enum:
- swagger
- redoc
type: string
style: form
responses:
'200':
$ref: '#/components/responses/200'
'400':
$ref: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/ogcapi-features-1.yaml#/components/responses/InvalidParameter
'403':
$ref: '#/components/responses/Forbidden403'
'429':
$ref: '#/components/responses/TooManyRequests429'
default:
$ref: '#/components/responses/default'
summary: This document
tags:
- server
components:
responses:
TooManyRequests429:
content:
application/json:
examples:
rateLimitExceeded:
summary: Rate Limit Exceeded
value:
error:
code: OVER_RATE_LIMIT
message: You have exceeded your rate limit. Make sure you provided your API key from https://api.waterdata.usgs.gov/signup/, then either try again later or contact us at https://waterdata.usgs.gov/questions-comments/?referrerUrl=https://api.waterdata.usgs.gov for assistance.
schema:
$ref: '#/components/schemas/Error'
application/xml:
example: "<response>\n <error>\n <code>OVER_RATE_LIMIT</code>\n <message>You have exceeded your rate limit. Make sure you provided your API key from https://api.waterdata.usgs.gov/signup/, then either try again later or contact us at https://waterdata.usgs.gov/questions-comments/?referrerUrl=https://api.waterdata.usgs.gov for assistance.</message>\n </error>\n </response>"
schema:
properties:
response:
properties:
error:
properties:
code:
type: string
message:
type: string
required:
- code
- message
type: object
required:
- error
type: object
type: object
text/csv:
examples:
rateLimitCsv:
summary: Rate Limit Exceeded (CSV)
value: 'Error Code,Error Message
OVER_RATE_LIMIT,You have exceeded your rate limit. Make sure you provided your API key from https://api.waterdata.usgs.gov/signup/, then either try again later or contact us at https://waterdata.usgs.gov/questions-comments/?referrerUrl=https://api.waterdata.usgs.gov for assistance.'
schema:
type: string
text/html:
examples:
rateLimitHtml:
summary: Rate Limit Exceeded (HTML)
value: "<html>\n <body>\n <h1>OVER_RATE_LIMIT</h1>\n <p>You have exceeded your rate limit. Make sure you provided your API key from https://api.waterdata.usgs.gov/signup/, then either try again later or contact us at https://waterdata.usgs.gov/questions-comments/?referrerUrl=https://api.waterdata.usgs.gov for assistance.</p>\n </body>\n </html>"
schema:
type: string
description: Too Many Requests - Rate limit exceeded.
'200':
description: successful operation
default:
content:
application/json:
schema:
$ref: https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/exception.yaml
description: Unexpected error
Forbidden403:
content:
application/json:
examples:
missingApiKey:
summary: Missing API Key
value:
error:
code: API_KEY_MISSING
message: No api_key was supplied. Get one at https://api.waterdata.usgs.gov/signup/
schema:
$ref: '#/components/schemas/Error'
application/xml:
example: "<response>\n <error>\n <code>API_KEY_MISSING</code>\n <message>No api_key was supplied. Get one at https://api.waterdata.usgs.gov/signup/</message>\n </error>\n </response>"
schema:
properties:
response:
properties:
error:
properties:
code:
type: string
message:
type: string
required:
- code
- message
type: object
required:
- error
type: object
type: object
text/csv:
examples:
missingApiKeyCsv:
summary: Missing API Key (CSV)
value: 'Error Code,Error Message
API_KEY_MISSING, No api_key was supplied. Get one at https://api.waterdata.usgs.gov/signup/'
schema:
type: string
text/html:
examples:
missingApiKeyHtml:
summary: Missing API Key (HTML)
value: "<html>\n <body>\n <h1>API_KEY_MISSING</h1>\n <p>No api_key was supplied. Get one at https://api.waterdata.usgs.gov/signup/</p>\n </body>\n </html>"
schema:
type: string
description: Forbidden - API key is missing or not authorized for this resource.
parameters:
f:
description: The optional f parameter indicates the output format which the server shall provide as part of the response document. The default format is GeoJSON. CSV is also available.
explode: false
in: query
name: f
required: false
schema:
default: json
enum:
- json
- html
- jsonld
- csv
type: string
style: form
lang:
description: The optional lang parameter instructs the server return a response in a certain language, if supported. If the language is not among the available values, the Accept-Language header language will be used if it is supported. If the header is missing, the default server language is used. Note that providers may only support a single language (or often no language at all), that can be different from the server language. Language strings can be written in a complex (e.g. "fr-CA,fr;q=0.9,en-US;q=0.8,en;q=0.7"), simple (e.g. "de") or locale-like (e.g. "de-CH" or "fr_BE") fashion.
in: query
name: lang
required: false
schema:
default: en-US
enum:
- en-US
type: string
schemas:
Error:
properties:
error:
properties:
code:
description: Error code such as OVER_RATE_LIMIT, see https://api.data.gov/docs/developer-manual/#general-web-service-errors
type: string
message:
description: Error message
type: string
required:
- code
- message
type: object
type: object
securitySchemes:
ApiKeyHeader:
description: Providing your API key gives you higher rate limits when querying our APIs. You can obtain an API key at https://api.waterdata.usgs.gov/signup
in: header
name: api_key
type: apiKey
ApiKeyQuery:
description: Providing your API key gives you higher rate limits when querying our APIs. You can obtain an API key at https://api.waterdata.usgs.gov/signup
in: query
name: api_key
type: apiKey