GTM CLI

Query ZoomInfo's go-to-market data from your terminal. Install the GTM CLI, authenticate over OAuth, and pipe companies, contacts, intent, and research into your shell as JSON, CSV, or a table.

·Rowan BaileyRowan BaileySenior Director, Product

What is the GTM CLI?

The GTM CLI is a command-line client for ZoomInfo's go-to-market data. A single binary, gtm, searches and enriches companies and contacts, pulls intent signals, scoops, and news, runs agentic research, and reads your GTM context. It connects to the same hosted endpoint as the ZoomInfo MCP server, so the data, the credits, and the sign-in match what your AI tools already use. Results stream out as JSON, JSONL, CSV, YAML, or a table.

gtm cli · zsh

$ gtm auth login

browser sign-in complete · token saved to ~/.config/gtm-ai/

$ gtm companies search --industry software --metro "CA - San Francisco" -f table

42 companies · id, name, revenue, employeeCount

search is free · no credits consumed

$ gtm contacts search --management-level "C Level Exec" --required email -f jsonl > leads.jsonl

118 contacts written to leads.jsonl

$ gtm contacts enrich --email henry@zoominfo.com --fields phone jobTitle email

1 record enriched · 1 bulk credit

already under management? no credit charged

$ gtm companies search --industry software -f json | jq '.data[].attributes.name'

piped straight into jq, a CSV, or a cron job

no model in the loop|same command, same shape, every time

Who is this for?

RevOps and data teams who script against ZoomInfo. Engineers who want deterministic, repeatable pulls with no model in the loop and no application to maintain. Anyone who wants to see real data in under a minute, before committing to a larger build.

CLI, MCP, or API?

ZoomInfo exposes the same data three ways, through one backend. Reach for the CLI in the terminal: scripts, cron jobs, and one-off pulls. Reach for MCP when an AI agent should hold the data and decide what to fetch. Reach for the API when you are building an application with its own retry and caching logic. The CLI, MCP, or API guide works that decision through in full.

One difference is worth knowing up front. On GTM Bench v1, which ran one agent over ten B2B research tasks, the CLI arm did the work on roughly a third of MCP's tokens and 4% of what open web research burned.

Work tokens per retrieval path

10 GTM research tasks · Claude Opus 4.8 · GTM Bench v1

Lower is better. The CLI ran the same tasks on roughly a third of MCP’s tokens and 4% of the web baseline’s. MCP finished fastest on the clock and posted the highest verified-email coverage, at 94% against the CLI’s 91%.

That gap decides things when an agent runs a task on a schedule, or works a long list inside a single context window. MCP still finished fastest on the clock. Pick by the constraint you actually have.

Install

Homebrew is the shortest path on macOS and Linux.

shell
brew install zoominfo/gtm-ai/gtm-ai-cli

On Windows, or anywhere you run Node, install the global npm package instead.

shell
npm install -g @zoominfo/gtm-ai-cli

Prebuilt binaries for every platform are on the releases page. Confirm the install:

shell
gtm --version

Authenticate

Sign-in is OAuth in your browser, with no client ID or secret to paste.

shell
gtm auth login    # opens your browser, saves the token
gtm auth whoami   # show login status
gtm auth logout   # revoke and remove saved credentials

The token is written to ~/.config/gtm-ai/ at mode 0600.

Next - run your first session. Once you're authenticated, drop this prompt into any AI client with terminal access. It orients from your GTM context, shows you what you're spending, and only runs after you approve:

First GTM session
(Use the ZoomInfo MCP tools if available; otherwise use the GTM CLI.)

I just connected ZoomInfo. Help me get real value from my ZoomInfo credits today - I want to spend them on the most valuable first thing to do. Don't run anything I haven't picked yet.

1. Call get_gtm_context - it's free (no credits). Use whatever it returns, plus my company name and email domain, to work out what we sell and who we target. Don't ask me, just figure it out.

2. Say it back in one line: "You're <Company>, selling <offering> to <ICP>." Check I agree. Once I confirm, save it by calling update_gtm_context so my GTM context is set for next time. If I'm not an admin, the save will fail - that's fine, just continue.

3. Offer me 3–4 concrete first actions grounded in my context - e.g. prep for a meeting this week, find companies matching our ICP, surface accounts showing buying intent, map the buying committee at a target account. Let me pick one, or tell you my own goal.

4. Only once I've chosen: tell me which ZoomInfo tools you'll run and roughly how many credits it'll cost. Go ahead - that's what they're for. Just tell me the cost before running so I stay in control.

Keep it fast. A quick, real win - not a tour and not a list I didn't ask for.

New to ZoomInfo?

Updating

Keep the CLI current with whichever package manager you installed it from.

shell
brew upgrade gtm-ai-cli              # Homebrew
npm update -g @zoominfo/gtm-ai-cli   # npm

Scripting and CI

The CLI runs unattended. Every command emits structured output and returns a proper exit code, so it drops into a cron job or a CI step with no interactive prompts.

shell
# Fail a CI job if the search comes back empty
gtm companies search --industry software -f json | jq -e '.data | length > 0'

The repo also ships a Claude Code skill, so an agent can drive these same commands inside a larger workflow.

Requirements

📝

Subscription and credits

The data commands need a ZoomInfo subscription with bulk data credits enabled. Search and lookup are free. Enrichment and research draw down credits, and Credits & Billing covers exactly how consumption works.

Commands and guides