Skip to main content
API & MCP

Hydrometric for developers and agents

The full FEH2025 default-route assessment on the frozen NRFA Peak Flow Dataset, available over REST and the Model Context Protocol. The hydrologist stays in control: agents get the default route and every adopted choice is recorded.

Remote MCP server

Streamable HTTP at /api/mcp. Add it to Claude Code, Cursor, or any MCP-capable harness with one config block — no local install.

Per-user API keys

Bearer hm_live_ keys, created and revoked from your account. No cookies, no shared secrets.

Every default-route output

QMED, pooling, growth curve, design flows and the FEH report — the same audited result the browser shows, over JSON.

Authentication

API-key clients send a Bearer hm_live_ key. Join the preview, then create a key under Account → API keys. Keys are per user and can be revoked at any time.

Legacy service integrations may instead send the shared HYDROMETRIC_API_KEY plus an x-hydrometric-user-email header. API-key integrations should use per-user keys.

Join the preview

Try it in Claude Code

Swap in your own key from Account → API keys, or pick another client below.

claude mcp add --scope user --transport http hydrometric https://www.hydrometric.io/api/mcp --header "Authorization: Bearer hm_live_YOUR_KEY"

Use Hydrometric in ChatGPT

Start with get_account_setup to create or connect your Hydrometric account. Work with stations, assessments, projects, reports, reviews and your team, and use create_credit_topup for a Stripe button to buy one £20 Method Space run credit. Your existing access permissions and credit balance apply.

  1. In ChatGPT, turn on Developer mode under Settings → Security and login.
  2. Open Plugins, choose Add → Create MCP App, and enter https://www.hydrometric.io/api/mcp.
  3. Refresh an existing app to load the tool metadata. When creating an app, select Mixed Authentication (OAuth and No Authentication) if offered. Under Advanced OAuth settings, use the predefined client ID hydrometric-chatgpt, no client secret, and the scopes you need: hydrometric:assess, hydrometric:read, hydrometric:write and hydrometric:admin (separated by spaces).
  4. Sign in to Hydrometric and review the connection. Install the plugin, then start a new chat and select @Hydrometric.

You can revoke ChatGPT access at any time from Account → API keys. Assessments can consume credits; connecting does not purchase anything. Existing connections need fresh consent to add editing or administration permissions.

MCP tools

The same list agents discover from /agents.txt. Run tools consume a credit; views over a cached run are free.

ToolWhat it does
search_stationsSearch the frozen NRFA Peak Flow Dataset by station number, river name or gauge location. Returns up to `limit` matches with stationId, name, river, catchment area (km²), AMAX record length and FEH suitability flags. Free (no credit).
cefa_point_estimateSovereign (open-data) flood estimate for any river point in England & Wales: delineates the catchment on the 10 m rail, runs 72 years of CEH-GEAR storms through the CEFA storm-response model and returns P10/P50/P90 peak flows (m³/s) for 1-in-2 to 1-in-50 (simulated), the median flood, a design hydrograph shape (rise/fall hours, recession days), the sovereign descriptors (AREA, SAAR9120, BFIHOST19, DPSBAR, urban fraction, HOST class fractions) and a provenance manifest. No FEH web-service inputs. Beta screening output: retain its returned provenance and limitations; not certified for design. Takes 20–60 s (delineation on demand). Free (no credit).
get_stationStation metadata from the Peak Flow Dataset: catchment descriptors (AREA km², SAAR mm, BFIHOST, URBEXT…), gauge and centroid coordinates (BNG), record start/end and AMAX year count, and QMED/pooling suitability. Free (no credit).
run_gauged_assessmentRun the full default-route FEH2025 statistical assessment for a gauged NRFA station (QMED from AMAX with donor/urban adjustment as recommended, pooling group, GoF-selected growth curve, design flows for the default return periods 2–1000 yr, climate change allowances where covered). Returns qmed (value m³/s, method, rationale), pooling summary, growth curve (distribution, parameters, growth factors by return period), design flows by return period (m³/s, with confidence bounds), warnings, and a runId for the get_* view tools. CONSUMES 1 ASSESSMENT CREDIT unless the shared analysis cache already holds this station (cached: true ⇒ free). Options expose bounded website analyst choices; cache identity includes every option.
run_ungauged_assessmentRun an ungauged FEH statistical estimate from catchment descriptors and a British National Grid location (required easting/northing in metres for the site/outlet point). Supply centroid_easting and centroid_northing together when the catchment centroid differs; otherwise it defaults to the site point. For FEH XML/ZIP files, prefer import_feh_project then run_project_catchment_assessment to retain source metadata and distinct coordinates. Direct descriptor entry is recorded as MANUAL. Same engine and contract as POST /api/v1/estimate: returns qmed_m3s, qmed_method, design_flows_m3s (m³/s by return period), distribution, L-CV/L-skew, pooling_group_size, QMED candidates with FSE, full design flows with confidence bounds, and pooling diagnostics. CONSUMES 1 ASSESSMENT CREDIT unless identical inputs are cached. Returns runId for full-result retrieval and saving.
get_qmedRecommended QMED (median annual flood, m³/s) with method, rationale, FSE and the FEH2025 candidate estimates. Accepts a stationId (re-uses the cached run for this user+station, or runs a fresh metered assessment if none is cached) or the runId returned by run_gauged_assessment. The run cache is in-memory and per server instance. An expired explicit runId fails without rerunning; explicitly repeat the original assessment options if needed. A stationId alone requests the default route.
get_growth_curveAdopted growth curve: distribution, parameters (loc/scale/shape), L-moments, growth factors and CIs by return period, plus the pooling group summary and alternative fits. Accepts a stationId (re-uses the cached run for this user+station, or runs a fresh metered assessment if none is cached) or the runId returned by run_gauged_assessment. The run cache is in-memory and per server instance. An expired explicit runId fails without rerunning; explicitly repeat the original assessment options if needed. A stationId alone requests the default route.
get_design_flowsDesign flows (m³/s) by return period for the recommended branch, with growth factors and 95%/68% confidence bounds where available. Accepts a stationId (re-uses the cached run for this user+station, or runs a fresh metered assessment if none is cached) or the runId returned by run_gauged_assessment. The run cache is in-memory and per server instance. An expired explicit runId fails without rerunning; explicitly repeat the original assessment options if needed. A stationId alone requests the default route.
get_reportThe FEH assessment report as Markdown, for a station (default route; consumes 1 credit only if no cached analysis exists) or a saved analysis id (the effective edited/adopted report; free). Use export_report_file for a private PDF preview and PDF/DOCX download. This response includes signed-in URLs to export routes (browser session or the legacy service key + x-hydrometric-user-email header).
list_saved_analysesThe caller's saved analyses (own, project-shared and team-visible), newest first: id, name, project, station/river, area (km²), version and savedAt. Read-only, free.
get_saved_analysisA saved analysis resolved to the analyst's adopted route (same as GET /api/v1/analysis/{id}): station, QMED, growth curve, design flows (m³/s), warnings, plus notes and version. Read-only, free.
get_catchment_mapMap figures for a station from the caller's saved analyses of it (catchment boundary, QMED donor and pooling maps), returned in a private figure viewer with captions; imageDelivery native also includes MCP image content. Maps are rendered per saved analysis and stored as image blobs, not at public URLs, so a station with no saved analysis returns only the station page URL. Free.
run_method_spaceEnumerate every method-valid analyst-choice variant of an FEH statistical analysis (donor set, urban treatment, pooling composition, distribution, L-moment weighting — up to 5000 variants) and place the default route inside it. For a gauged station (stationId), one of your saved analyses (analysisId — the analyst's forks appear as named variants), or an ungauged catchment (descriptors + easting + northing). Returns, per metric (QMED, Q30, Q100, Q1000): default-route value, P10/P50/P90 of the method space, min/max, and the FSE sampling uncertainty kept separate; the named-variant table; and the Method Space figure (stacked density strips) in the private figure viewer (imageDelivery native also includes MCP image content). Pass `compare` with your own or a competitor tool's numbers to get each value's percentile, distance from the median (P10–P90 half-span units), inside/outside P10–P90, and a one-line verdict. COSTS 1 METHOD SPACE CREDIT (£20) per distinct analysis; the same paid saved-analysis fingerprint can be reopened with analysisId even at zero balance. Admins and method_space grantees are not charged. An insufficient credit balance returns an error with code "method_space_credit_required" and a purchaseUrl field. Station-ID and raw-descriptor requests still require a positive Method Space balance before assessment resolution; zero-balance reopening requires the same saved analysisId used for the paid run. A stationId run also uses the shared gauged assessment (1 assessment credit unless cached). `qmedRoute` ("all" | "amax" | "descriptors") restricts the space to one QMED route — by default a gauged AMAX analysis is compared against the AMAX-route variants only (the descriptor cloud would otherwise dominate); the response reports qmedRouteApplied and variantCountFiltered.
get_method_space_creditsYour Method Space run-credit balance (£20 per run), whether you are exempt from charging (admin / method_space grant), and a purchase URL. Free.
get_ddf_pointSovereign UK point design rainfall depth (mm), resolved directly from the immutable national open-data DDF release. No FEH web-service inputs. Coordinates must be EPSG:27700 (British National Grid) metres. Returns centralMm/lowerMm/upperMm and the coherent uncertainty draws (drawsMm) for the given duration and return period, plus the release identity (releaseId, releaseStatus, manifestSha256, maturity, certifiedForDesignUse, warning, receiptSha256). releaseStatus is "candidate" (provisional beta — not independently certified for design use) or "production" (certifiedForDesignUse: true); check the release object's warning field. Free (no credit).
get_critical_durationSovereign ReFH critical-duration search for a catchment: finds the storm duration that maximises design peak flow, using design rainfall resolved directly from the immutable national open-data DDF release for the submitted EPSG:27700 catchment polygon. No FEH web-service inputs. Returns criticalDuration (hours), searchedDurations (duration/peakFlow pairs), designResult (storm duration, design rainfall and hydrograph inputs at the critical duration), and the release identity. releaseStatus is "candidate" (provisional beta — not independently certified for design use) or "production" (certifiedForDesignUse: true); check the release object's warning field. Free (no credit).
get_product_capabilitiesRead deployed feature availability, account entitlements and billing configuration. Returns no credentials and starts no purchase or connection. Free.
get_google_drive_connectionRead whether your Google Docs export connection is available and which Google email it uses. Requires the existing export feature grant. Never returns OAuth tokens. Connect or disconnect through the saved report’s browser flow.
get_report_map_galleryRead report map figures, provenance, framing choices and draft/final state using the website’s gallery. Optional static images may require terrain/basemap retrieval. Free.
set_report_map_framingSet tight, standard or wide framing for an editable report figure. Existing issued revisions remain frozen; the returned report state identifies when content refresh is needed. May retrieve map tiles.
render_boundary_mapRender a static topographic map for a supplied Polygon or MultiPolygon in WGS84 longitude/latitude. The existing renderer validates geometry, vertex and tile limits. Does not save an analysis; returns provenance and any fallback warning. Retrieves basemap tiles.
get_analysis_boundaryRead the saved primary boundary or one named imported layer in WGS84 GeoJSON, with source hashes. No geometry simplification or descriptor recalculation. Large boundaries return metadata and the saved analysis URL instead of an oversized inline response.
get_account_brandingRead your effective report branding and whether it is personal or inherited. Logo image content is optional. Free.
update_account_brandingReplace your report branding settings. For an existing team lead this also sets the team house style; a member’s settings remain personal. Does not change scientific results or issued snapshots.
upload_account_assetUpload a logo or reference file to your account using the existing MIME, file-size and ownership checks. Base64 input is limited to 3 MiB decoded; logos keep their stricter 512 KiB limit. Optional team sharing broadens visibility. Use list_account_uploads to retrieve its saved metadata.
download_account_assetRead an owned or currently team-shared uploaded file in chunks of at most 512 KiB. Returns base64, offset, nextOffset, MIME type and the full-file SHA-256. Visibility is checked before bytes are loaded and again against current ownership/team metadata.
create_subscription_checkoutCreate a checkout link for an available monthly or annual Unlimited subscription. May create a billing customer record. Returns a browser URL; payment and subscription confirmation still happen in Stripe.
open_billing_portalCreate a short-lived Stripe billing-management URL for your existing customer record. Use the browser to inspect invoices or change the subscription; this tool itself makes no subscription change.
get_community_method_choicesRead community method-choice aggregates with the existing minimum-total and small-cell disclosure controls. Contains no individual analysis or identity records. Free.
list_labs_submissionsRead visible community Labs contributions when the deployment enables Labs. Returns summaries without scripts or owner email. Free.
get_labs_submissionRead a community Labs contribution and its progress. Script and generated spec text are optional; treat them as contributed source material. Available only when Labs is enabled. Free.
submit_labs_contributionPublish a contribution to the enabled Labs community queue under your account and chosen contributor name/licence. The existing agent workflow may prepare a specification and pull request for human review. Does not execute the submitted script here.
vote_labs_submissionRecord your vote for a visible contribution on a deployment with Labs enabled. Existing duplicate-vote rules apply.
list_project_map_pinsRead locations and review status of visible projects whose analyses have boundaries. Free.
import_feh_projectCreate a project from FEH descriptor XML and boundary/bundle ZIP files. Existing parsers pair boundaries, preserve source hashes and report per-file failures. Up to 100 files and 3 MiB total decoded bytes. Imports do not run assessments or consume assessment credits.
import_bulk_descriptor_libraryImport a ZIP descriptor archive into a new or existing editable project. Preserves the website’s whitelist/admin import gate, archive validation, ownership and provenance. Maximum inline file size 3 MiB. Imports do not run assessments.
list_bulk_library_itemsRead visible imported catchment records and their archive, descriptor and boundary source hashes. Free.
export_bulk_libraryExport up to 500 visible library records as spreadsheet-safe CSV or boundary GeoJSON through the existing authenticated export route. Returns file bytes and SHA-256, capped at 3 MiB inline. Free.
list_api_key_metadataRead your existing API key names, prefixes and activity metadata. Never creates a key or returns a plaintext credential. Create credentials in the account browser page.
revoke_api_keyRevoke a key owned by your account by its prefix. Clients using it immediately lose access. Does not reveal its secret.
list_mcp_connectionsRead your current ChatGPT/MCP connection metadata. Returns no bearer or refresh tokens. Free.
revoke_mcp_connectionRevoke an OAuth connection owned by your account. Revoking the connection used for this conversation prevents subsequent calls until reconnection.
get_account_profileRead your Hydrometric professional profile used for report attribution. Free.
get_account_usageRead your plan, assessment use, recent billing usage and assistant token use. Does not buy credits or change billing. Free.
get_account_accessRead your entitlements, delegated grants, visible project roles and team summary. Lists are paged independently using the same offset and limit. Free.
list_account_uploadsRead visible upload metadata and import history. Returns no file bytes or credentials. Free.
get_data_sharing_preferenceRead your account-level research data-sharing choice. Per-analysis consent is separate. Free.
update_account_profileUpdate your professional profile. This changes future report attribution; existing signed identity snapshots remain frozen.
set_data_sharing_preferenceSet your explicit account-level research data-sharing choice. Withdrawing also erases captured research data; a partial failure reports the resulting preference.
delegate_feature_accessGrant a named feature you may delegate to a colleague. Existing entitlement, expiry and delegation rules apply.
revoke_delegated_featureWithdraw a feature grant you made. Cannot revoke another administrator’s grant.
delete_uploaded_assetDelete an asset owned by your account. Reports using that asset may change.
set_asset_team_sharingShare or unshare an asset you own with your existing team. Requires team membership when enabling sharing.
list_projectsList projects visible to your account, including ownership and team/admin visibility. Free.
get_projectRead a visible project, settings and your edit/finalisation permissions. Free.
list_project_analysesList the analyses and versions visible in a project. Free.
get_project_topologyRead control, sub-catchment and lateral roles, boundary identities and stale-derivation reasons. Free.
get_project_flowsRead the adopted catchment design flows for a visible project. No new calculation. Free.
create_projectCreate a private project owned by your account. Sharing is managed separately.
create_shared_projectCreate a project visible to the platform whitelist. Requires existing whitelist or administrator authority; owner identity is your account. This deliberately broadens access compared with a private project.
rename_projectRename a project you may edit. Existing uniqueness and permission checks apply.
duplicate_projectCopy an accessible project using the website’s duplication and ownership rules.
delete_projectDelete a project you may delete and apply the website’s handling of its analyses. Review the project before calling.
update_project_settingsReplace shared-pooling and growth-curve borrowing settings on a project you may edit. Existing saved results are not silently recomputed.
set_project_catchment_roleSet an editable project catchment as control or sub-catchment. Selecting a control atomically demotes the previous control.
compute_project_lateralDerive and save the lateral residual catchment from the project’s control and sub-catchments. Existing topology, boundary and mutation checks apply.
run_project_catchment_assessmentRun and save a project catchment assessment from its authoritative stored descriptors. Can consume assessment credits. Existing mutation and quota checks apply; no model-supplied calculation payload is accepted.
rename_saved_analysisRename an analysis you may mutate, using the same ownership checks as the website.
duplicate_saved_analysisDuplicate an analysis in its current project using existing versioning, mutation and lateral-catchment restrictions.
copy_analysis_to_projectCopy an editable analysis to an editable target project, or to standalone storage when projectId is null.
attach_analysis_to_projectAttach a standalone analysis to an existing editable project. Requires mutation rights on the analysis and target project.
move_analysis_to_projectMove an editable saved analysis into another editable project. Preserves the website’s versioning and lateral-catchment restrictions.
detach_analysis_from_projectMove an editable saved analysis out of its project into standalone storage. Existing mutation checks apply.
delete_saved_analysisDelete an analysis you may delete. This removes saved work; inspect the analysis before calling.
list_review_worklistRead reviews that need your attention using the existing owner/reviewer visibility rules. Free.
get_analysis_reviewRead review lifecycle, sign-off verification and your mutation/finalisation permissions for a visible analysis. Free.
list_analysis_commentsRead visible review comments and their decision-tree anchors. Free.
list_analysis_reviewsRead visible review decisions and reviewer identity snapshots. Free.
list_analysis_signoffsRead visible frozen sign-off records and regulator outcomes. Free.
create_analysis_commentAdd a comment anchored to a recognised decision-tree node. Requires view access; author identity comes from your account.
set_analysis_comment_statusResolve or reopen a comment. Only its author or a project owner/editor may change its status.
request_analysis_reviewRequest review from the project’s reachable reviewers. Sends transactional notification emails. Requires owner/editor authority.
cancel_analysis_reviewCancel an active review request using existing owner/editor permissions.
submit_analysis_reviewRecord an approved, approved-with-comments or rework verdict. Requires existing reviewer authority and records the acting identity. Sends a notification email to the analysis owner.
create_review_sandboxCreate a separate review sandbox copy, preserving the source analysis. Requires the website’s owner/editor/reviewer authority.
list_review_sandboxesRead accessible sandbox forks for an analysis. Free.
sign_off_analysisSign the current analysis version as yourself and freeze its audit record. Requires existing review/sign-off authority and a complete reproducible report map. Sends notification emails to the owner and project members. This is a professional sign-off.
record_regulatory_outcomeRecord or clear the regulator’s actual decision on a signed analysis. This records evidence supplied by the user; it does not infer regulatory acceptance.
get_analysis_data_sharingRead the owner’s per-analysis research data and note-sharing choices. Free.
set_analysis_data_sharingSet explicit per-analysis research data and optional note-sharing consent. Only the analysis owner may change it; account consent is a separate gate.
get_my_teamRead your team, members and pending invitations as permitted by the website. Free.
list_my_team_invitesRead pending team invitations addressed to your account. Free.
create_teamCreate a team with your account as lead. Existing one-team-per-account rules apply.
invite_team_memberInvite a colleague to your team. Sends a transactional invitation email. Requires team-lead authority; an explicit teamId is accepted only for existing platform admins and is audited.
accept_team_inviteAccept the exact invitation token supplied by the user, as the signed-in account. Changes team membership and visibility.
remove_team_memberRemove a member from your team. Requires team-lead authority; platform-admin overrides remain audited.
revoke_team_inviteRevoke a pending team invitation. Requires team-lead authority; platform-admin overrides remain audited.
leave_teamLeave your current team and lose team-based visibility. A sole remaining lead leaving disbands the team; leads with other members are refused.
get_project_accessRead project grants and pending invitations. Requires project-management permission, as on the website. Lists are paged independently. Free.
get_project_reviewersRead active and pending project reviewer context under the existing project visibility rules. Lists are paged independently. Free.
list_my_project_invitesRead project invitations addressed to your account. Free.
invite_project_memberGrant viewer, editor or reviewer access by invitation. Sends a transactional email. Requires project mutation authority; reviewers may act professionally on the project.
accept_project_inviteAccept the exact project invitation token supplied by the user, as the signed-in account.
resend_project_reviewer_inviteResend a pending project reviewer invitation. Sends a transactional email and requires project management authority.
assign_project_reviewerAssign a current teammate as reviewer without reducing an existing stronger role. May send a review notification email. Requires project management authority.
remove_project_reviewerRemove a project reviewer assignment using existing project-management checks.
revoke_project_accessRevoke a person’s access grants and pending invitations on a project you may manage. Specify their email.
geocode_locationResolve a UK postcode, place name, OS grid reference, BNG coordinate pair, or latitude/longitude pair using the same lookup as the map. Returns coordinates and source type. Place/postcode lookup contacts public providers; no assessment runs.
derive_catchment_boundaryDerive a boundary at a clicked point through the configured terrain delineation service. Reuses authentication, England/Wales coverage and the 20-second upstream timeout. No assessment or credit charge; reports unavailable/not-configured rather than inventing a catchment.
get_catchment_at_locationRead the authoritative Hydro-Faucet junction at a UK location: snapped location, catchment descriptors, geometry, flow evidence and exact release/eligibility/degradation provenance. Does not run a new assessment. A configured spatial service is required; screening/research evidence retains its status.
run_location_assessmentRun and save the normal map-point ungauged assessment after re-fetching authoritative Hydro-Faucet inputs. Supply the junction ID from get_catchment_at_location; changed/degraded/unqualified junctions fail. Requires assess and write permissions. Consumes an assessment credit under the existing reservation/settlement lifecycle; does not purchase credits.
save_imported_catchmentParse and persist authoritative FEH XML or an FEH bundle ZIP as a new catchment with no assessment results. Optional existing project requires mutation access. Preserves descriptor/boundary hashes; no assessment credits and no analysis executed. Legacy text/CSV is inspection-only.
get_proxy_hydrographRead saved proxy selection or server-ranked telemetry proxy recommendations for an ungauged saved analysis. Retains feature and ownership gates. Telemetry supplies transferred shape only; target peaks remain FEH statistical results. Free.
select_proxy_hydrographSelect a verified NRFA proxy and construct a reproducible shape from server-fetched telemetry windows. Applies archive, independent-event and quality gates, then saves the hashed selection on the unsigned analysis. No caller-supplied shapes or claimed telemetry provenance are accepted.
get_simulation_setRead the saved coherent Method Space cases and authoritative set hash. Reuses the web feature entitlement, ownership, engine version and analysis-fingerprint checks. Never computes or purchases a Method Space run.
save_simulation_setResolve bounded adopted, distribution, pinned or representative cases against current paid/granted Method Space evidence, then freeze them on an unsigned analysis. Requires write and assess permissions; preserves feature, stale-evidence, signoff and ownership gates. Does not purchase credits.
export_simulation_setExport every coherent frozen Method Space case to TUFLOW/Flood Modeller files or a base64 ZIP using a shared ReFH1/SCS/imported/persisted proxy shape. Revalidates feature entitlement, ownership and current evidence immediately before export. Method-choice spread remains separate from sampling uncertainty.
get_climate_allowancesRead the installed Environment Agency management-catchment peak-flow allowance tables. Search names or resolve BNG point candidates; point selection is distinct from full catchment-area selection. England coverage. Dataset metadata dated 2025-09-12; this is not a live policy lookup. Free.
get_analysis_sectionRead an existing saved or cached assessment section, including complete donor/pooling diagnostics, rainfall-runoff branches and provenance. Free; never reruns an expired assessment. Null branches remain unavailable.
get_station_recordsRead frozen Peak Flow station/AMAX records, release comparison, or live daily-flow diagnostics. Free. Daily-flow diagnostics use NRFA GDF and are distinct from the frozen release used for flood-frequency calculations.
validate_catchment_descriptorsCheck descriptor ranges, missing fields and FEH2025 eligibility without running an assessment. No invented defaults and no credit charge.
import_catchmentParse FEH XML, CD3/CSV text (1 MiB maximum), or a base64 FEH export ZIP (8 MiB compressed and expanded maximum). Returns descriptors, validation, geometry and source hashes; does not save or assess. Legacy CD3/CSV are inspection-only.
query_imported_design_rainfallParse a user-supplied FEH DDF CSV and query rainfall depth in mm. Requires explicit point/catchment-average basis; never substitutes approximate RMED rainfall. Returns the source table, query and provenance. Free.
get_design_hydrographsBuild hydrograph series using existing adopted FEH peaks and ReFH1, SCS/NRCS, imported CSV or CEFA research shapes. Shape and peak provenance remain separate. CEFA research shapes are not production-authorized. Free; no new flood assessment.
export_model_inflowsGenerate model inflow files from adopted assessment peaks and published ReFH1, SCS/NRCS, imported CSV or saved proxy shapes. Optional 68/95% sampling bands produce lower/central/upper member files using stored bounds; these are separate from Method Space spread. Returns bounded UTF-8 files or a base64 ZIP, hashes and provenance. No hydraulic model is run. Free.
export_report_to_google_docsCreate a Google Doc in the authenticated account’s connected Google Drive from the effective saved report. Sends report content to Google. Requires the existing Google Docs feature grant and a connected Google account; retains draft marking, revision integrity and export audit. Supply a UUID idempotencyKey and reuse it when retrying the same export.
get_report_editorRead the effective report document, protected sections, latest revision, history, edit/finalisation permissions, refresh and review requirements. Includes current draft amendments. Preserve returned snapshot IDs and hashes when editing. Free.
get_report_amendment_auditRead original and amended sections, provenance and exclusion history. Existing reviewer/owner audit permissions apply. Free.
preview_report_draftValidate a complete edited report document against the server protected snapshot and return sanitized HTML. Does not save. Get the document and hashes from get_report_editor first.
save_report_draftSave a validated edited report document as a new revision. Requires the latest base revision and exact server snapshot hashes. Server checks protected sections, provenance, permissions and editor entitlement.
refresh_report_contentRegenerate protected report sections from current authoritative saved data. Keeps commentary and records review requirements when source content changes. Requires the latest draft revision.
finalise_reportFinalise the latest draft as an immutable report revision. Existing reviewer authority, sign-off verification, composition and amendment-review requirements are enforced. Call only after reviewing the report.
create_report_draftCreate a new editable draft from the latest finalised report. Preserves the final revision and its audit history.
discard_report_draftAbandon draft revisions and restore the finalised report, retaining the audit trail. Unsaved draft work is no longer the active report.
prepare_report_commentary_transferRead commentary eligible for transfer from a verified source revision into an editable target analysis. Existing source visibility and target mutation permissions apply. No changes.
transfer_report_commentaryCopy explicitly selected commentary blocks from a verified source revision into the target report. Server validates source visibility, target permissions and review provenance.
confirm_report_commentaryRecord that the explicitly selected transferred blocks have been reviewed. Requires the latest revision; do not confirm unread text.
confirm_report_amendmentsRecord review of explicitly selected amendments after generated source content changed. Requires the latest revision; inspect the amendment audit first.
confirm_report_compositionConfirm the latest report inclusion/exclusion changes. Requires the existing reviewer/finalisation authority and exact latest revision.
get_report_coverRead the client name and project reference on an accessible saved analysis report.
update_report_coverSet or clear the client name and project reference on an editable report. Does not change calculation results or sign-off hashes.
get_project_report_compositionRead included/excluded catchments and edit/freeze status. Exclusion rationale is returned only to callers with the existing audit permission.
set_project_report_inclusionInclude or exclude a catchment from an editable compound report. Exclusion requires the user’s reason. Finalised reports stay locked and composition changes retain review requirements.
get_method_space_snapshotRead a persisted Method Space snapshot for an accessible analysis. Does not run Method Space or consume a credit; no caller-supplied scientific result is saved.
get_method_space_report_previewRead the exact Method Space appendix in the effective report, including amendment and refresh status. Does not rerun Method Space.
export_report_filePrepare a private PDF or DOCX download and inline PDF preview. Reuses authenticated website exports with effective revisions, draft marks, branding and render audit. Download links expire after ten minutes and refuse changed reports; files are bounded to 32 MiB. Default viewer delivery keeps the link out of model context; native adds an MCP resource link. Free; does not finalise a report.
get_analysis_choicesRead saved forks, adopted route, available QMED/growth choices, climate selection, notes and warning acknowledgements. Returns the revision required by edit tools. Free.
save_assessment_runPersist a runId owned by this account into a new saved analysis, optionally in an editable project. Stores server-computed results and their descriptors. Free; does not run another assessment.
create_analysis_branchCreate an exploratory branch from authoritative saved results by changing QMED, growth fit or pooling exclusions. Computes flows on the server, preserves provenance, and does not adopt it automatically. Free recompute; use run_gauged_assessment for fresh pipeline overrides.
update_analysis_branchUpdate an existing saved branch label, rationale, report inclusion, lifecycle or adopted status. Uses the saved server-computed results. Killing an adopted branch clears the adoption. Requires an unchanged revision and an editable unsigned analysis.
set_climate_selectionSelect existing climate allowance rows for the adopted analysis and reports. Keys must exist in its computed climate results. Does not invent or recompute climate allowances.
set_analyst_noteAdd or replace a decision-tree justification by branch key. The authenticated author and timestamps are stamped by the server, and existing notes and other choices are preserved.
acknowledge_analysis_warningRecord or withdraw an analyst acknowledgement of a currently derived warning. Use only on the analyst’s explicit instruction. Captures the actual warning title and value-bearing description and authenticated author.
preview_boundary_editApply up to 50 indexed vertex operations to a saved UK WGS84 polygon (at most 2,000 positions). Returns validated geometry, source revision and AREA/descriptor consequences. Coordinates are longitude then latitude. Does not run an assessment or save changes.
save_boundary_editSave previewed vertex edits and AREA patch as a new unsigned version. Requires the preview source revision, editing permission and an unsigned source. Original geometry and source ID are retained as provenance; old calculations, reports, forks and acknowledgements are not reused. Review outstanding descriptors and run a fresh assessment before using outputs. No assessment is purchased or run.
get_account_setupUse this when a new user wants to create a Hydrometric account or connect an existing account. Public: returns current signup readiness, the browser request-access button, and approved-account sign-in steps. Hydrometric is currently invite-only; new accounts need approval. The user verifies their email and chooses consent in Hydrometric; this tool never collects passwords or verification codes and does not create credentials.
create_credit_topupUse when the user wants to add money or buy a Hydrometric Method Space run credit. Creates a Stripe Checkout session for the authenticated account and shows a payment button for ONE existing £20 GBP Method Space credit. Requires account administration permission. No charge or credit is applied until the user completes payment and Stripe confirms it. This is not a general wallet or an Unlimited subscription.
get_hydrometric_helpAnswer a specific Hydrometric workflow or FAQ: ungauged files/shapes, QMED donors, pooling/growth, Method Space interpretation, climate scenarios, reports, account/credits or visuals. Public static guidance with relevant tools and one optional next step. Does not read account data, run calculations or spend credits. Use only when helpful to the current question.
get_assessment_visualReturn a private viewer figure and source data (imageDelivery native also includes an MCP PNG) for an existing saved assessment or owner-scoped cached run. Choose design_flows, growth_curves, stored ReFH hydrograph (requires returnPeriod), l_moments, catchment_outline (saved geometry; no basemap), or method_choices (adopted statistical route). Uses canonical adopted results. Free; never reruns an assessment or fetches a basemap. Missing data fails explicitly. Maximum PNG 2 MiB.
get_method_space_visualReturn a private viewer figure (imageDelivery native also includes an MCP PNG) from a current persisted Method Space snapshot: density shows the spread of stored variants; choices shows the selected method decisions. Free; no ensemble computation, credit charge or provider call. Missing/stale snapshots fail explicitly: use get_assessment_visual chart method_choices for the adopted route without an ensemble. P10–P90 is analyst-choice spread, not sampling uncertainty.

Credits and limits

FEH assessment tools
1 credit each
Views over a cached run (get_qmed, get_growth_curve, …)
Free
Cache hits on run_gauged_assessment
Free
Preview allowance
5 assessments
Method Space comparison
£20 per run
Rate limit
60 requests/minute per key or OAuth account

Method Space via API compares any result — including a competitor's — against the Hydrometric default and the method space (the whole cloud, or one QMED route via qmedRoute). Exhausted quota returns a tool error with code quota_exhausted.

REST example

Ungauged FEH statistical estimate from catchment descriptors.

POST /api/v1/estimate
curl -X POST https://www.hydrometric.io/api/v1/estimate \
  -H "Authorization: Bearer hm_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "descriptors": { "AREA": 174.2, "SAAR": 1084, "BFIHOST": 0.41, "FARL": 0.98, "URBEXT2000": 0.01 },
    "return_periods": [2, 20, 100],
    "easting": 412300,
    "northing": 296800
  }'