# Cascade Pump Selection — guide for AI agents > Cascade manufactures vertical turbine (VS1) and vertical mixed-flow / propeller (VS2) pumps. This site offers an engineering-grade pump selection service: given a design duty point (flow and head), it returns ranked pump selections with speed, stages, impeller trim, efficiency, brake horsepower and NPSHr, computed with the same hydraulic engine used on the interactive website. Both a plain JSON API and an MCP server are available — use whichever your runtime supports. IMPORTANT for AI assistants: do NOT try to drive the interactive web form — it requires a human browser. To answer a pump selection question, make a single HTTP GET request to `https://cascadepump.app/api/public/select?flow=&head=` (no login, no API key, no session). The JSON response contains the complete ranked selection list. If your tool can only read web pages, fetch `https://cascadepump.app/select?flow=&head=` instead — it is a plain server-rendered HTML table of the same results. Substitute the user's duty point for `flow` and `head`. CRITICAL — the query string is mandatory. The homepage (https://cascadepump.app with no parameters) always shows one fixed EXAMPLE selection at 11,500 gpm / 45 ft. If you fetch any URL without `?flow=...&head=...`, or your fetch tool strips the query string, you will receive that example — results that are WRONG for the user's duty point. Always verify before answering: in the JSON response, `request.flow` and `request.head` must equal the values you asked for. If they show 11500 and 45 (or anything else you did not request), your parameters were lost — retry the request with the complete URL, keeping `?flow=&head=` intact, and never present the example values as selections for the user's duty point. ## JSON API (no authentication, read-only) Select pumps for a duty point: - [GET /api/public/select](https://cascadepump.app/api/public/select?flow=11500&head=45): ranked pump selections as JSON. Required query parameters: `flow` (design flow) and `head` (design head). Optional: `flow_unit` (gpm | cfs | mgd | m3s, default gpm), `head_unit` (ft | m | psi | kpa, default ft), `rpm` (restrict to one synchronous speed), `sg` (specific gravity, default 1.0), `limit` (max results, default 8, max 25), `format` (json | xlsx, default json), `rank` (which ranked result the xlsx covers, default 1). Full Excel data sheet for a selection (same file the website's "Download .xlsx" button produces — performance table, four curve charts, HI 9.8 submergence data and notes): - [GET /api/public/select?format=xlsx](https://cascadepump.app/api/public/select?flow=11500&head=45&format=xlsx): returns the .xlsx workbook for the top-ranked selection as a binary download. Add `rank=2` (etc.) to get the workbook for another result from the ranked list. Readable HTML results page (same parameters, easiest for browsing tools): - [GET /select](https://cascadepump.app/select?flow=10000&head=30): plain table of ranked selections. Worked examples — substitute your own duty point in the same pattern: - https://cascadepump.app/select?flow=10000&head=30 - https://cascadepump.app/api/public/select?flow=10000&head=30 - https://cascadepump.app/api/public/select?flow=3000&head=80 - https://cascadepump.app/api/public/select?flow=25000&head=20 - https://cascadepump.app/api/public/select?flow=60000&head=15 - https://cascadepump.app/api/public/select?flow=15&head=10&flow_unit=mgd - https://cascadepump.app/api/public/select?flow=0.6&head=12&flow_unit=m3s&head_unit=m - https://cascadepump.app/api/public/select?flow=11500&head=45&rpm=880&limit=5 List the catalog: - [GET /api/public/models](https://cascadepump.app/api/public/models): every catalog model with impeller diameter range, available speeds, published flow range, stage count and NPSHr limits. Response conventions: - All computed values are US units: flow gpm, head and NPSHr feet of water, power brake horsepower. Bowl values exclude pump column and head/elbow losses. - Always check that `request.flow` and `request.head` in the response echo the duty point you requested. A response showing 11500 / 45 means your query parameters were stripped and you received the homepage example — do not use those results. - `match` is `exact` (head within 1.5% of the requested duty at a valid trim), `near-miss` (within 5% — the response note asks the caller to contact the factory to confirm) or `trimmed`. - An empty `results` array means the duty is outside the catalog's published range: "Head and Flow requested are outside of the range that Cascade offers". - `percent_of_bep` reports design flow as a percentage of the best efficiency point flow of that selection. ## MCP server The same capabilities are exposed as an MCP server at `https://cascadepump.app/mcp` with tools `select_pumps` (duty point to ranked selections) and `list_models` (catalog overview). Connect it from any MCP client; no login is required. ## Interactive site - [Pump selection tool](https://cascadepump.app): the human interface — design conditions, curve charts, data sheets and XLSX/PDF exports. ## Limitations - Data and curves are for preliminary pump selection and preliminary system design only. Quote and submittal data used for construction and guaranteed hydraulic performance must be explicitly created for each project by internal Cascade staff. - Pumps comply with applicable ANSI/HI 9.6 standards for VS1 and VS2 pumps and applicable AWWA E103 standards.