Skip to main content
The Shovels CLI is a single-binary command-line tool for querying U.S. building permit and contractor data. It outputs JSON to stdout, handles pagination automatically, and retries on rate limits. No runtime dependencies required.
CLI vs. API vs. Online: The CLI wraps the same Shovels REST API but handles auth headers, cursor pagination, rate-limit retries, and credit tracking for you. Use it from your terminal, in shell scripts, or from AI agents.
Choose your environment to get started:

Install

Run the install script to download the latest release:
The script detects your OS and architecture, downloads the correct binary from GitHub Releases, verifies the SHA256 checksum, and installs to ~/.shovels/bin.
Add ~/.shovels/bin to your PATH if the installer doesn’t do it automatically. For most shells, add export PATH="$HOME/.shovels/bin:$PATH" to your shell profile.
Verify the installation:

Configure Your API Key

You need a Shovels API key. If you don’t have one, create a free account to get a key with 250 free requests.There are two ways to provide your API key:

Option A: Environment variable

Option B: Config file (persistent)

This saves your key to ~/.config/shovels/config.yaml so you don’t need to export it every session.Confirm your config is set:

Verify the Setup

Check that the CLI can connect to the API and authenticate:
You should see a JSON response with your credit usage, confirming the CLI is installed and configured correctly.

Run Your First Query

Search for solar permits in Encinitas, CA (ZIP 92024) from 2024:
You’ll see JSON output like this:
Every response includes a meta object with credit tracking so you always know your usage.

Understanding geo_id

Most search commands require a --geo-id flag. A geo_id can be:
  • A ZIP code — Use it directly (e.g., 92024)
  • A state — Use the 2-letter code (e.g., CA)
  • A city, county, or jurisdiction — Use the base64-encoded ID from a search
To find a geo_id for a city:
Use that geo_id in subsequent searches:

Explore More Commands

The CLI covers permits, contractors, addresses, and geographic lookups:
Every command has built-in help:

Pipe It

The CLI outputs JSON to stdout, so it works with jq and other Unix tools:

Next Steps