Shovels · Capability

Shovels API — Permits

Shovels API — Permits. 2 operations. Lead operation: Search Permits. Self-contained Naftiko capability covering one Shovels business surface.

Run with Naftiko ShovelsPermits

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

shovels-permits.yaml Raw ↑
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: $.