Skip to main content
The CLI organizes commands into groups: permits, properties, contractors, decisions, addresses, geographic lookups, tags, schema, usage, and config. Every command outputs JSON to stdout and supports --help for detailed usage.

Command Reference

permits

Search and retrieve building permit data. Example: Search permits

properties

Search properties with their permit history rolled up onto each record. Added in v0.8.0. Example: Properties with no solar permit
Properties are in beta. Unlike permits search, there is no --permit-to flag and jurisdiction geo_ids are rejected. See Querying properties from the CLI.

contractors

Search contractors and access their permits, employees, and metrics. Example: Find electrical contractors in Austin
Contractor search supports state, county, city, jurisdiction, and ZIP code geo_ids, but not address-level geo_ids. Use permits search for address-level queries.

decisions

Search municipal zoning and land-use decisions. Added in v0.7.0.

addresses

Search for addresses to resolve geo_ids, plus resident and metrics lookups.
Returns matching addresses with their geo_id, formatted name, and coordinates. Also supports addresses residents and addresses metrics current|monthly.

cities, counties, jurisdictions, states, zipcodes

Resolve geographic names to geo_ids for use in search commands.
states search matches on the 2-letter abbreviation (CA), not the full state name. zipcodes search matches on ZIP prefix and spans states, so filter the results if you need one state.
Each group also exposes a coverage subcommand reporting which permit fields are reliably populated for that area. The geo_id is a positional argument here, and both dates are required. Cities, counties, and jurisdictions additionally support metrics current and metrics monthly.

schema

Print the annotated JSON response schema for any data command — offline, with no API call and no API key required.
Each schema gives response_fields (type, description, unit, range, enum), meta_fields for commands whose meta carries more than the standard keys, a jq-ready field_index, and filters mapping each CLI flag to its type. Nested objects appear as dotted paths like trust.coverage_tier.
This is the cheapest way for an AI agent to learn a command’s output shape before spending credits. Any data command also accepts --schema to print its own: shovels properties search --schema.

tags

List available permit tags (work type classifications).
Returns tags like solar, hvac, roofing, electrical, pool_spa, new_dwelling, kitchen_remodel, and more. Use these values with the --tags flag in search commands.

usage

Check your API credit usage and limits.

config

Manage persistent CLI settings.

version

Print CLI version, git commit, and build date.

Common Search Filters

These flags are available on permits search and contractors search. properties search names and scopes several of them differently — see Querying properties from the CLI:

Tag Filters

Tags support a - prefix for exclusion. Mix includes and excludes as needed.

Property Filters

Permit Filters

Contractor Filters (contractor search only)

Global Flags

These flags apply to all commands:
--dry-run and --schema both short-circuit before any network call, so they’re free. Use --dry-run to confirm how your flags map to query parameters, and --schema to learn the response shape.

Getting Help

Every command supports --help: