Shovels · Capability
Shovels API — Geography
Shovels API — Geography. 7 operations. Lead operation: Search Cities. Self-contained Naftiko capability covering one Shovels business surface.
What You Can Do
GET
Searchcities
— Search Cities
/v1/cities/search
GET
Getcitybyid
— Get City By ID
/v1/cities/{geo-id}
GET
Getcitymetricscurrent
— Get City Metrics Current
/v1/cities/{geo-id}/metrics/current
GET
Searchcounties
— Search Counties
/v1/counties/search
GET
Searchjurisdictions
— Search Jurisdictions
/v1/jurisdictions/search
GET
Searchstates
— Search States
/v1/states/search
GET
Searchzipcodes
— Search Zipcodes
/v1/zipcodes/search
MCP Tools
search-cities
Search Cities
read-only
idempotent
get-city-id
Get City By ID
read-only
idempotent
get-city-metrics-current
Get City Metrics Current
read-only
idempotent
search-counties
Search Counties
read-only
idempotent
search-jurisdictions
Search Jurisdictions
read-only
idempotent
search-states
Search States
read-only
idempotent
search-zipcodes
Search Zipcodes
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Shovels API — Geography
description: 'Shovels API — Geography. 7 operations. Lead operation: Search Cities. Self-contained Naftiko capability covering
one Shovels business surface.'
tags:
- Shovels
- Geography
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
SHOVELS_API_KEY: SHOVELS_API_KEY
capability:
consumes:
- type: http
namespace: shovels-geography
baseUri: https://api.shovels.ai/v2
description: Shovels API — Geography business capability. Self-contained, no shared references.
resources:
- name: cities-search
path: /cities/search
operations:
- name: searchcities
method: GET
description: Search Cities
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: q
in: query
type: string
description: City name search term
required: true
- name: cursor
in: query
type: string
description: Pagination cursor
- name: size
in: query
type: integer
description: Number of results per page
- name: cities-geo_id
path: /cities/{geo_id}
operations:
- name: getcitybyid
method: GET
description: Get City By ID
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: geo_id
in: path
type: string
description: City geo_id
required: true
- name: cities-geo_id-metrics-current
path: /cities/{geo_id}/metrics/current
operations:
- name: getcitymetricscurrent
method: GET
description: Get City Metrics Current
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: geo_id
in: path
type: string
description: City geo_id
required: true
- name: counties-search
path: /counties/search
operations:
- name: searchcounties
method: GET
description: Search Counties
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: q
in: query
type: string
description: County name search term
required: true
- name: cursor
in: query
type: string
description: Pagination cursor
- name: size
in: query
type: integer
description: Number of results per page
- name: jurisdictions-search
path: /jurisdictions/search
operations:
- name: searchjurisdictions
method: GET
description: Search Jurisdictions
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: q
in: query
type: string
description: Jurisdiction name search term
required: true
- name: cursor
in: query
type: string
description: Pagination cursor
- name: size
in: query
type: integer
description: Number of results per page
- name: states-search
path: /states/search
operations:
- name: searchstates
method: GET
description: Search States
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: q
in: query
type: string
description: State name search term
required: true
- name: cursor
in: query
type: string
description: Pagination cursor
- name: size
in: query
type: integer
description: Number of results per page (1-100, default 50)
- name: zipcodes-search
path: /zipcodes/search
operations:
- name: searchzipcodes
method: GET
description: Search Zipcodes
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: q
in: query
type: string
description: Zip code search term
required: true
- name: cursor
in: query
type: string
description: Pagination cursor
- name: size
in: query
type: integer
description: Number of results per page
authentication:
type: apikey
key: X-API-Key
value: '{{env.SHOVELS_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: shovels-geography-rest
port: 8080
description: REST adapter for Shovels API — Geography. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/cities/search
name: cities-search
description: REST surface for cities-search.
operations:
- method: GET
name: searchcities
description: Search Cities
call: shovels-geography.searchcities
with:
q: rest.q
cursor: rest.cursor
size: rest.size
outputParameters:
- type: object
mapping: $.
- path: /v1/cities/{geo-id}
name: cities-geo-id
description: REST surface for cities-geo_id.
operations:
- method: GET
name: getcitybyid
description: Get City By ID
call: shovels-geography.getcitybyid
with:
geo_id: rest.geo_id
outputParameters:
- type: object
mapping: $.
- path: /v1/cities/{geo-id}/metrics/current
name: cities-geo-id-metrics-current
description: REST surface for cities-geo_id-metrics-current.
operations:
- method: GET
name: getcitymetricscurrent
description: Get City Metrics Current
call: shovels-geography.getcitymetricscurrent
with:
geo_id: rest.geo_id
outputParameters:
- type: object
mapping: $.
- path: /v1/counties/search
name: counties-search
description: REST surface for counties-search.
operations:
- method: GET
name: searchcounties
description: Search Counties
call: shovels-geography.searchcounties
with:
q: rest.q
cursor: rest.cursor
size: rest.size
outputParameters:
- type: object
mapping: $.
- path: /v1/jurisdictions/search
name: jurisdictions-search
description: REST surface for jurisdictions-search.
operations:
- method: GET
name: searchjurisdictions
description: Search Jurisdictions
call: shovels-geography.searchjurisdictions
with:
q: rest.q
cursor: rest.cursor
size: rest.size
outputParameters:
- type: object
mapping: $.
- path: /v1/states/search
name: states-search
description: REST surface for states-search.
operations:
- method: GET
name: searchstates
description: Search States
call: shovels-geography.searchstates
with:
q: rest.q
cursor: rest.cursor
size: rest.size
outputParameters:
- type: object
mapping: $.
- path: /v1/zipcodes/search
name: zipcodes-search
description: REST surface for zipcodes-search.
operations:
- method: GET
name: searchzipcodes
description: Search Zipcodes
call: shovels-geography.searchzipcodes
with:
q: rest.q
cursor: rest.cursor
size: rest.size
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: shovels-geography-mcp
port: 9090
transport: http
description: MCP adapter for Shovels API — Geography. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: search-cities
description: Search Cities
hints:
readOnly: true
destructive: false
idempotent: true
call: shovels-geography.searchcities
with:
q: tools.q
cursor: tools.cursor
size: tools.size
outputParameters:
- type: object
mapping: $.
- name: get-city-id
description: Get City By ID
hints:
readOnly: true
destructive: false
idempotent: true
call: shovels-geography.getcitybyid
with:
geo_id: tools.geo_id
outputParameters:
- type: object
mapping: $.
- name: get-city-metrics-current
description: Get City Metrics Current
hints:
readOnly: true
destructive: false
idempotent: true
call: shovels-geography.getcitymetricscurrent
with:
geo_id: tools.geo_id
outputParameters:
- type: object
mapping: $.
- name: search-counties
description: Search Counties
hints:
readOnly: true
destructive: false
idempotent: true
call: shovels-geography.searchcounties
with:
q: tools.q
cursor: tools.cursor
size: tools.size
outputParameters:
- type: object
mapping: $.
- name: search-jurisdictions
description: Search Jurisdictions
hints:
readOnly: true
destructive: false
idempotent: true
call: shovels-geography.searchjurisdictions
with:
q: tools.q
cursor: tools.cursor
size: tools.size
outputParameters:
- type: object
mapping: $.
- name: search-states
description: Search States
hints:
readOnly: true
destructive: false
idempotent: true
call: shovels-geography.searchstates
with:
q: tools.q
cursor: tools.cursor
size: tools.size
outputParameters:
- type: object
mapping: $.
- name: search-zipcodes
description: Search Zipcodes
hints:
readOnly: true
destructive: false
idempotent: true
call: shovels-geography.searchzipcodes
with:
q: tools.q
cursor: tools.cursor
size: tools.size
outputParameters:
- type: object
mapping: $.