EPA — U.S. Environmental Protection Agency · Capability
U.S. EPA WaterSense — Custom Search
Custom Search. 3 operations. Lead operation: Multi Criteria Search Criteria. Self-contained Naftiko capability covering one EPA business surface.
What You Can Do
GET
Getapimulticriteriasearchcriteria
— Multi Criteria Search Criteria
/v1/api/multicriteriasearchcriteria
GET
Getapimulticriteriasearch
— Multi Criteria Search
/v1/api/multicriteriasearch
GET
Getapikeywordsearch
— Keyword Search
/v1/api/keywordsearch
MCP Tools
multi-criteria-search-criteria
Multi Criteria Search Criteria
read-only
idempotent
multi-criteria-search
Multi Criteria Search
read-only
idempotent
keyword-search
Keyword Search
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: U.S. EPA WaterSense — Custom Search
description: 'Custom Search. 3 operations. Lead operation: Multi Criteria Search Criteria. Self-contained Naftiko capability covering one EPA business surface.'
tags:
- EPA
- Custom Search
created: '2026-05-29'
modified: '2026-05-29'
binds:
- namespace: env
keys:
EPA_USERNAME: EPA_USERNAME
capability:
consumes:
- type: http
namespace: elg-search-custom-search
baseUri: https://owapps-stage.app.cloud.gov/elg
description: U.S. EPA WaterSense — Custom Search business capability. Self-contained, no shared references.
authentication:
type: basic
username: '{{env.EPA_USERNAME}}'
password: '{{env.EPA_PASSWORD}}'
resources:
- name: api-multicriteriasearchcriteria
path: /api/multiCriteriaSearchCriteria
operations:
- name: getapimulticriteriasearchcriteria
method: GET
description: Multi Criteria Search Criteria
inputParameters: []
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: api-multicriteriasearch
path: /api/multiCriteriaSearch
operations:
- name: getapimulticriteriasearch
method: GET
description: Multi Criteria Search
inputParameters:
- name: pointSourceCategoryCode
in: query
type: integer
required: false
description: Placeholder.
- name: sicCode
in: query
type: integer
required: false
description: Placeholder.
- name: naicsCode
in: query
type: integer
required: false
description: Placeholder.
- name: pollutantId
in: query
type: string
required: false
description: Placeholder.
- name: pollutantGroupId
in: query
type: integer
required: false
description: Placeholder.
- name: treatmentTechnologyCode
in: query
type: string
required: false
description: Placeholder.
- name: treatmentTechnologyGroup
in: query
type: string
required: false
description: Placeholder.
- name: rangeLow
in: query
type: number
required: false
description: Placeholder.
- name: rangeHigh
in: query
type: number
required: false
description: Placeholder.
- name: rangeUnitCode
in: query
type: string
required: false
description: Placeholder.
- name: filterTreatmentId
in: query
type: integer
required: false
description: Placeholder.
- name: filterPointSourceCategoryCode
in: query
type: integer
required: false
description: Placeholder.
- name: filterPollutantId
in: query
type: string
required: false
description: Placeholder.
- name: download
in: query
type: string
required: false
description: Placeholder.
- name: sortCol
in: query
type: string
required: false
description: Placeholder.
- name: sortDir
in: query
type: string
required: false
description: Placeholder.
- name: offset
in: query
type: integer
required: false
description: Placeholder.
- name: limit
in: query
type: integer
required: false
description: Placeholder.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: api-keywordsearch
path: /api/keywordSearch
operations:
- name: getapikeywordsearch
method: GET
description: Keyword Search
inputParameters:
- name: keyword
in: query
type: string
required: false
description: Placeholder.
- name: operator
in: query
type: string
required: false
description: Placeholder.
- name: download
in: query
type: string
required: false
description: Placeholder.
- name: sortCol
in: query
type: string
required: false
description: Placeholder.
- name: sortDir
in: query
type: string
required: false
description: Placeholder.
- name: offset
in: query
type: integer
required: false
description: Placeholder.
- name: limit
in: query
type: integer
required: false
description: Placeholder.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
namespace: elg-search-custom-search-rest
port: 8080
description: REST adapter for U.S. EPA WaterSense — Custom Search. One Spectral-compliant resource per consumed operation, prefixed with /v1.
resources:
- path: /v1/api/multicriteriasearchcriteria
name: api-multicriteriasearchcriteria
description: REST surface for Multi Criteria Search Criteria.
operations:
- method: GET
name: getapimulticriteriasearchcriteria
description: Multi Criteria Search Criteria
call: elg-search-custom-search.getapimulticriteriasearchcriteria
with: {}
outputParameters:
- type: object
mapping: $.
- path: /v1/api/multicriteriasearch
name: api-multicriteriasearch
description: REST surface for Multi Criteria Search.
operations:
- method: GET
name: getapimulticriteriasearch
description: Multi Criteria Search
call: elg-search-custom-search.getapimulticriteriasearch
with:
pointSourceCategoryCode: rest.pointSourceCategoryCode
sicCode: rest.sicCode
naicsCode: rest.naicsCode
pollutantId: rest.pollutantId
pollutantGroupId: rest.pollutantGroupId
treatmentTechnologyCode: rest.treatmentTechnologyCode
treatmentTechnologyGroup: rest.treatmentTechnologyGroup
rangeLow: rest.rangeLow
rangeHigh: rest.rangeHigh
rangeUnitCode: rest.rangeUnitCode
filterTreatmentId: rest.filterTreatmentId
filterPointSourceCategoryCode: rest.filterPointSourceCategoryCode
filterPollutantId: rest.filterPollutantId
download: rest.download
sortCol: rest.sortCol
sortDir: rest.sortDir
offset: rest.offset
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/api/keywordsearch
name: api-keywordsearch
description: REST surface for Keyword Search.
operations:
- method: GET
name: getapikeywordsearch
description: Keyword Search
call: elg-search-custom-search.getapikeywordsearch
with:
keyword: rest.keyword
operator: rest.operator
download: rest.download
sortCol: rest.sortCol
sortDir: rest.sortDir
offset: rest.offset
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: elg-search-custom-search-mcp
port: 9090
transport: http
description: MCP adapter for U.S. EPA WaterSense — Custom Search. One tool per consumed operation, routed inline through this capability's consumes block.
tools:
- name: multi-criteria-search-criteria
description: Multi Criteria Search Criteria
hints:
readOnly: true
destructive: false
idempotent: true
call: elg-search-custom-search.getapimulticriteriasearchcriteria
with: {}
outputParameters:
- type: object
mapping: $.
- name: multi-criteria-search
description: Multi Criteria Search
hints:
readOnly: true
destructive: false
idempotent: true
call: elg-search-custom-search.getapimulticriteriasearch
with:
pointSourceCategoryCode: tools.pointSourceCategoryCode
sicCode: tools.sicCode
naicsCode: tools.naicsCode
pollutantId: tools.pollutantId
pollutantGroupId: tools.pollutantGroupId
treatmentTechnologyCode: tools.treatmentTechnologyCode
treatmentTechnologyGroup: tools.treatmentTechnologyGroup
rangeLow: tools.rangeLow
rangeHigh: tools.rangeHigh
rangeUnitCode: tools.rangeUnitCode
filterTreatmentId: tools.filterTreatmentId
filterPointSourceCategoryCode: tools.filterPointSourceCategoryCode
filterPollutantId: tools.filterPollutantId
download: tools.download
sortCol: tools.sortCol
sortDir: tools.sortDir
offset: tools.offset
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: keyword-search
description: Keyword Search
hints:
readOnly: true
destructive: false
idempotent: true
call: elg-search-custom-search.getapikeywordsearch
with:
keyword: tools.keyword
operator: tools.operator
download: tools.download
sortCol: tools.sortCol
sortDir: tools.sortDir
offset: tools.offset
limit: tools.limit
outputParameters:
- type: object
mapping: $.