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.
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 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
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.
brew install zoominfo/gtm-ai/gtm-ai-cliOn Windows, or anywhere you run Node, install the global npm package instead.
npm install -g @zoominfo/gtm-ai-cliPrebuilt binaries for every platform are on the releases page↗. Confirm the install:
gtm --versionAuthenticate
Sign-in is OAuth in your browser, with no client ID or secret to paste.
gtm auth login # opens your browser, saves the token
gtm auth whoami # show login status
gtm auth logout # revoke and remove saved credentialsThe 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:
(Use the ZoomInfo MCP tools if available; otherwise use the GTM CLI. Use the tool schema or CLI help for supported commands.) I just connected ZoomInfo. Help me complete the job below. 1. Read my saved business context with get_gtm_context, or the CLI equivalent. This read is free. Use the returned offerings, ICP, and role to frame the work. If context is missing, continue with the information we have. Save changes only if I explicitly ask; a first briefing does not require updating shared business context. 2. Prepare a connected account briefing. Ask me only which company or domain to brief if I haven't named one. Use the account and decision already in this conversation when available. Connect the account's available CRM history, including stage and status, with recent customer conversations and external buying signals. Use Account Research, and add Browse Engagements, Conversation Intelligence, or company signals when the briefing needs more evidence. Return a short briefing: where things stand, what changed, what remains unresolved, and one recommended next action. Cite the source and date for each material fact when returned. Distinguish the recommendation from the evidence. 3. Ask only for missing inputs, then name the tools and give a credit estimate if supported by their documentation. Label it as an estimate: actual charges depend on records and work done. Ask for approval once before paid research, then complete the selected job. Include a short source-coverage note. Separate an unavailable or unauthorized source from a successful search with no matching records. If connection status is unknown, say so. Never infer "no customer history" from an empty result. Continue with available evidence and identify what is missing; use https://gtm.ai/guides/connect-customer-context for source setup. Recommend CRM changes as drafts. Applying them requires an available, separately connected CRM workflow and my authorization. Do not claim a CRM update was made by ZoomInfo research tools.
New to ZoomInfo?
Updating
Keep the CLI current with whichever package manager you installed it from.
brew upgrade gtm-ai-cli # Homebrew
npm update -g @zoominfo/gtm-ai-cli # npmScripting 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.
# 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
Command reference→
Every command, flag, output format, and credit note, with copy-paste examples for each.
Getting started guide→
Install, authenticate, and run your first query.
ZoomInfo MCP→
The same data and sign-in, inside Claude, Codex, Cursor, ChatGPT, and other AI agents.
Start building→
Compare the three paths.