Expired Domains CLI

Search expired and auction domains from your terminal

One standalone Go binary — karma — for the Karma.Domains Public API. Search expired domains, auction domains, backorder, and buy-now lots from the terminal. Look up reports and run live SEO checkers. Table output by default; --json for jq and scripts. Same Pro Bearer key as REST and MCP.

1 Standalone binary
6 Platforms
Pro Same API key
60/min Shared rate limit
Ask AI
  • ChatGPT
  • Claude
  • Gemini
  • Grok
  • Perplexity

Download for your platform

Prebuilt binaries from GitHub Releases. Unpack and put karma (or karma.exe) on your PATH. SHA-256 checksums ship with every release.

Latest v0.1.0

Prefer building from source? go build -o karma ./cmd/karma in the repo.

Authenticate with a Pro API key

The CLI talks to the same Public API as curl and the SDKs. One key from Profile → Settings covers REST, MCP, and karma.

Requires the Pro plan or above. Create or reset the key in Profile → Settings. Treat it like a password — never commit it or paste it in public chats.

Environment export KARMA_API_KEY=YOUR_API_KEY
Flag karma --api-key YOUR_API_KEY …
Config file ~/.config/karma-domains/config.toml → api_key = "…"
Rate limit 60 requests/minute per key (shared with REST and MCP)
List quota 50,000 rows/day (UTC), page_size 1–100
Live-tool quota 200 non-cache calls/day (UTC); cache hits free
  1. Get a Pro plan or above.
  2. Create or reset the key in Profile → Settings.
  3. Export KARMA_API_KEY, pass --api-key, or set api_key in config.toml.
  4. Run karma search, karma domain, or karma check …

See the CLI in action

Recorded demos — no API key required on this page. Switch scenarios to watch search tables, --json pipes into jq, lookups, and live checks.

Commands

Subcommands map to Public API routes. Default output is a readable table; add --json for the raw payload.

  • karma search

    Search expired, auction, backorder, and buy-now reports. Flags --tld, --domain-type, --moz-da-min, --page, --page-size, --sort-by, --filter-json, --filter-file.

  • karma domain <name>

    Look up a domain across all bases.

  • karma report <type> <id>

    Fetch a full report by report_type and report_id.

  • karma profile

    Show the authenticated user email and credit balance.

  • karma check <tool> <domain>

    Live checkers — expiry, whois, domain_authority, domain_age, traffic, dns, spam_score, karma_metric, backlinks, and more. 1 credit per domain unless cached.

  • karma favorites list|add|remove

    List favorites or pin/unpin a report.

Global flags

  • --json Print the raw API JSON (pretty-printed).
  • --api-key Override KARMA_API_KEY for one invocation.
  • --base-url Override the API base URL (advanced).

Full filter names and response fields — Public API docs and OpenAPI.

How it works

Install once, authenticate with your Pro key, then search or pipe JSON from any shell.

  1. Download the binary for your OS from GitHub Releases and put karma on your PATH.
  2. Set the Pro API key via KARMA_API_KEY, --api-key, or ~/.config/karma-domains/config.toml.
  3. Search or check — table output for humans, --json plus jq for scripts and cron.

What you can do in the shell

Same inventory as the website and Public API — from a morning sweep or a nightly job.

Morning auction sweep

Filter GoDaddy, DropCatch, and other lots with --filter-json, then pipe domains into a shortlist file before you open the app.

SEO shortlist with jq

Require Moz DA, KarmaScore, or TLD constraints, then extract only the fields you need for a sheet or Slack message.

Cron monitoring

Schedule karma --json search and alert when new matches appear. One binary — no Python or Node runtime on the server.

Live check before you buy

Run karma check expiry or whois on a finalist. Live tools cost 1 credit per domain; cache hits are free.

Favorites from the terminal

List saved reports with karma favorites list, or add/remove pins without leaving the shell.

Scripts without SDKs

When curl is too verbose and you do not want a language SDK, karma wraps search, report, and checkers in one command.

Frequently asked questions

Do I need the Pro plan?

Yes. The CLI uses the Public API Bearer key, which requires Pro or above. Create the key in Profile → Settings.

Is this the same key as the Public API and MCP?

Yes. One key for REST, the MCP server, and karma. The 60 requests/minute cap is shared.

Table output or --json?

Default search and favorites print a compact table (domain, base, report id). Pass --json for the full API payload — ideal for jq, scripts, and cron.

Where is the full list of search filters?

Use --filter-json or --filter-file with the same field names as POST /v1/reports/search. See the Public API landing and OpenAPI.

Which platforms are supported?

Prebuilt binaries for macOS (Apple Silicon and Intel), Linux (x86_64 and ARM64), and Windows (x64 and ARM64). Downloads are on GitHub Releases.

When do live checkers spend credits?

karma check … costs 1 credit per domain unless the response is cached (cache hits are free). List search and report reads count against the request limit and daily row quota, not extra credits.

CLI, curl, SDK, or MCP — which should I use?

Use the CLI for terminal workflows and jq pipes. Use curl or the Python / TypeScript SDKs in app code. Use MCP when you want ChatGPT, Claude, or Cursor to call the same inventory in chat.

Are share links and SEO enrich in the CLI yet?

Not every Public API route is wrapped yet (for example share links and SEO enrich). Use curl or an SDK for those, or check the CLI repo for updates.

Same inventory as the app — from your shell

Download karma and start searching expired domains

One Pro key for the CLI, Public API, and MCP. Six platforms. Table or --json.

Pro Plan required
6 Platform builds
60/min Shared rate limit