Shovels · Capability
Shovels API — Permits
Shovels API — Permits. 2 operations. Lead operation: Search Permits. Self-contained Naftiko capability covering one Shovels business surface.
What You Can Do
GET
Searchpermits
— Search Permits
/v1/permits/search
GET
Getpermitbyid
— Get Permit By ID
/v1/permits/{id}
MCP Tools
search-permits
Search Permits
read-only
idempotent
get-permit-id
Get Permit By ID
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Shovels API — Permits
description: 'Shovels API — Permits. 2 operations. Lead operation: Search Permits. Self-contained Naftiko capability covering
one Shovels business surface.'
tags:
- Shovels
- Permits
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
SHOVELS_API_KEY: SHOVELS_API_KEY
capability:
consumes:
- type: http
namespace: shovels-permits
baseUri: https://api.shovels.ai/v2
description: Shovels API — Permits business capability. Self-contained, no shared references.
resources:
- name: permits-search
path: /permits/search
operations:
- name: searchpermits
method: GET
description: Search Permits
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: geo_id
in: query
type: string
description: Location filter (address, city, zip code, county, jurisdiction, or state geo_id)
required: true
- name: permit_from
in: query
type: string
description: Return permits issued on or after this date (YYYY-MM-DD)
required: true
- name: permit_to
in: query
type: string
description: Return permits issued on or before this date (YYYY-MM-DD)
required: true
- name: status
in: query
type: string
description: Filter by permit status (issued, approved, completed, expired, cancelled)
- name: tags
in: query
type: string
description: Filter by permit tags (comma-separated list)
- name: min_job_value
in: query
type: number
description: Minimum job value in dollars
- name: max_job_value
in: query
type: number
description: Maximum job value in dollars
- name: property_type
in: query
type: string
description: Filter by property type (residential, commercial, industrial)
- name: cursor
in: query
type: string
description: Pagination cursor for next page
- name: size
in: query
type: integer
description: Number of results per page (1-100, default 50)
- name: include_count
in: query
type: boolean
description: Include total count in response (capped at 10,000)
- name: permits-id
path: /permits/{id}
operations:
- name: getpermitbyid
method: GET
description: Get Permit By ID
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Unique permit ID
required: true
authentication:
type: apikey
key: X-API-Key
value: '{{env.SHOVELS_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: shovels-permits-rest
port: 8080
description: REST adapter for Shovels API — Permits. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/permits/search
name: permits-search
description: REST surface for permits-search.
operations:
- method: GET
name: searchpermits
description: Search Permits
call: shovels-permits.searchpermits
with:
geo_id: rest.geo_id
permit_from: rest.permit_from
permit_to: rest.permit_to
status: rest.status
tags: rest.tags
min_job_value: rest.min_job_value
max_job_value: rest.max_job_value
property_type: rest.property_type
cursor: rest.cursor
size: rest.size
include_count: rest.include_count
outputParameters:
- type: object
mapping: $.
- path: /v1/permits/{id}
name: permits-id
description: REST surface for permits-id.
operations:
- method: GET
name: getpermitbyid
description: Get Permit By ID
call: shovels-permits.getpermitbyid
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: shovels-permits-mcp
port: 9090
transport: http
description: MCP adapter for Shovels API — Permits. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: search-permits
description: Search Permits
hints:
readOnly: true
destructive: false
idempotent: true
call: shovels-permits.searchpermits
with:
geo_id: tools.geo_id
permit_from: tools.permit_from
permit_to: tools.permit_to
status: tools.status
tags: tools.tags
min_job_value: tools.min_job_value
max_job_value: tools.max_job_value
property_type: tools.property_type
cursor: tools.cursor
size: tools.size
include_count: tools.include_count
outputParameters:
- type: object
mapping: $.
- name: get-permit-id
description: Get Permit By ID
hints:
readOnly: true
destructive: false
idempotent: true
call: shovels-permits.getpermitbyid
with:
id: tools.id
outputParameters:
- type: object
mapping: $.