GTM.ai
Docs menu

GTM CLI Command Reference

Every GTM CLI command: lookup, companies, contacts, signals, intent, scoops, audiences, engagements, gtm-context, research, feedback, and raw. Plus help, output formats, field projection, credit costs per command, and common shell workflows.

Rowan BaileyRowan BaileySenior Director, Product

Every gtm command, with copy-paste examples. The pattern repeats throughout: search for IDs, enrich for detail, then pipe the rest through your shell.

IDs in these examples are placeholders; get real ones from a search.

Help and debugging

Every command reads gtm <object> <action> --filters, and --help works at every level. Run it whenever you need the full flag list for a command; this page shows the common ones.

shell
gtm --help
gtm contacts search --help
gtm help contacts search     # same output

Add --debug (or -d) to any command to print the underlying MCP tool call and response to stderr.

Credits

Each data command calls one MCP tool and costs what that tool costs. auth, help, and raw list-tools touch no credits. Credits & Billing explains how data credits and AI credits are consumed.

CommandsCredit type
lookup, every search, companies similar, contacts similar, contacts recommendedFree
audiences list, audiences get, engagements listFree
gtm-context get, feedback submitFree
companies enrich, contacts enrich, signalsData credits
research account, research contact, engagements ask, gtm-context update (admin only)AI credits
raw call <tool>Whatever the named tool costs

Per-company intent, scoops, and news

Per-company intent, news, and scoops come from gtm signals, through Enrich Company Signals, which supersedes Enrich Intent, Enrich Scoops, and Enrich News.

Output formats

Every command that returns records accepts -f, --format: json (the default) and jsonl preserve the response shape, while csv, yaml, and table flatten it for reading.

shell
gtm companies search --industry software -f table
gtm contacts search --management-level "C Level Exec" -f jsonl > c-level.jsonl

Projecting fields

Add --select with a comma-separated list of dotted paths to keep only those fields from each record, applied before formatting.

shell
gtm companies search --industry software --page-size 5 --select id,name,revenue -f table

lookup

Search endpoints reject unknown industry, metro, or topic strings with a 422, so look the canonical value up first and pass its ID to the filter.

shell
gtm lookup --field industries --fuzzy software -f table
gtm lookup --field intent-topics --fuzzy cloud -f table
# Tech products take two steps: vendor first, then products
gtm lookup --field tech-vendors --fuzzy hubspot
gtm lookup --field tech-products --vendor "HubSpot, Inc"

companies

Search needs at least one filter. Enrich accepts any identifier: ID, domain, name, ticker, or website. similar returns a machine-ranked list of look-alikes.

shell
gtm companies search --industry software --metro "CA - San Francisco" --employees "100to249,250to499"
gtm companies search --type public --country "United States" --revenue-min 1000000 --sort -revenue -f table
gtm companies enrich --domain stripe.com --fields name revenue employeeCount industries
gtm companies similar --name "Stripe"
# Enrich several companies from a JSON array of identifiers
gtm companies enrich --file companies.json

Search results come back as a data array. Each record carries an id and an attributes object, which is the path the workflows below read with jq. A search response, trimmed to one record and one attribute:

json
{
  "data": [
    {
      "id": "123456789",
      "attributes": {
        "name": "Example Software Inc"
      }
    }
  ]
}

contacts

Search by role, seniority, company, or signal. Enrich by person ID, email, phone, or name plus company. similar and recommended extend the set.

shell
gtm contacts search --management-level "C Level Exec,VP Level Exec" --company-id 344589814
gtm contacts search --management-level Manager --department "Engineering & Technical" --required email,phone
gtm contacts enrich --email henry@zoominfo.com --fields phone jobTitle managementLevel email
gtm contacts similar --person-id 1260398587 --company-id 239305146
gtm contacts recommended --company-id 344589814 --use-case PROSPECTING

signals

signals returns intent, news, and scoops for up to 10 companies in one call, through Enrich Company Signals. Pass company IDs separated by spaces after --company-ids. --types takes intent, news, or scoop; leave it off to get all three.

shell
gtm signals --company-ids 344589814 --types intent scoop
gtm signals --company-ids 344589814 239305146 -f yaml

intent

Every intent request needs --topics, so look the exact topic names up first. Other filters narrow which companies come back.

shell
gtm intent search --topics "Cloud Applications" "Java" --signal-score-min 70
gtm intent search --topics "Cloud Applications" --signal-score-min 85 --country "United States" --sort -signalScore -f table

For intent on companies you already know, use gtm signals --types intent.

scoops

Scoops capture funding, hiring, leadership moves, layoffs, launches, and other business events, searchable across the market.

shell
gtm scoops search --scoop-types "New Hire" "Executive Move" --department C-Suite --published-start 2026-05-27

For scoops at companies you already know, use gtm signals --types scoop.

audiences

audiences list finds your audiences by name, creator, or type (contact or company), up to 25 per page. audiences get takes an audience ID from that list with --id and returns its column definitions; add --preview for 5 sample rows, or --preview <n> for up to 25. Both are read-only and free, through Browse Audiences and Get Audience.

shell
gtm audiences list --search "enterprise" --type company -f table
gtm audiences get --id 3f2b8c1e-0a4d-4e6b-9c7f-1d2e3f4a5b6c --preview 10

engagements

engagements list builds a timeline of your meetings and emails, by default from 7 days back to 7 days ahead, through Browse Engagements. The window can span up to 90 days and reach up to 60 days ahead. engagements ask answers a question about what was said, through Conversation Intelligence, and uses AI credits. Scope it to exactly one of --engagement-id, --company-id, or --contact-id.

shell
gtm engagements list --company-id 344589814 --type meetings --sort=-chronological
gtm engagements ask --company-id 344589814 --query "What objections came up in the last month?"
# Engagement IDs can contain < and >, so quote them
gtm engagements ask --engagement-id '<engagement-id>' --query "What were the next steps?" --include-content

gtm-context

gtm gtm-context get reads the offerings, ICPs, personas, and competitors that shape how every tool interprets your queries, and it costs zero credits. gtm gtm-context update uses AI credits.

shell
gtm gtm-context get
gtm gtm-context get --detailed -f yaml
# Admin only: update from text or a file
gtm gtm-context update --query "Update competitors" --source "Our main competitors are X, Y, Z."
gtm gtm-context update --query "Create buyer personas from these interviews" --source-file ./interview-notes.txt

research

research blends ZoomInfo market data with your CRM and conversation history into a brief, so frame the goal in --query and let the tool choose what to retrieve.

shell
gtm research account --company-id 344589814 --query "Prep for a renewal call: status, news, and risks"
gtm research contact --contact-id 1260398587 --query "Who is this person and our history before I reach out"

These commands run the same Account Research and Contact Research agents you reach through MCP. They are slower than a search, since an agent does the work. Credits scale with that work. The brief comes back inside a JSON envelope, so pipe it through jq to read it in the terminal.

feedback

Report a data problem or request a feature without leaving the terminal. --category takes DATA_QUALITY, FEATURE_REQUEST, ACCESS_ENTITLEMENT_ISSUE, or OTHER.

shell
gtm feedback submit --category DATA_QUALITY --message "Company 344589814 lists the wrong headquarters city"

raw

When a tool has no dedicated wrapper yet, raw lists the catalog and calls any tool by name. That includes tools that write inside ZoomInfo, such as the audience tools, so treat raw call with the same care as the tool it wraps.

shell
gtm raw list-tools -f table
gtm raw call find_similar_companies --args '{"companyName":"Stripe"}'

Common workflows

The CLI earns its keep in pipes: pull fields with jq, chain a search into an enrich, or export straight to CSV.

shell
# Names only
gtm companies search --industry software | jq '.data[].attributes.name'
 
# Search for IDs, then enrich each
gtm companies search --industry software --page-size 3 -f json \
  | jq -r '.data[].id' \
  | xargs -I{} gtm companies enrich --id {}
 
# Export a contact list to CSV
gtm contacts search --management-level "VP Level Exec" --department Sales -f csv > vp-sales.csv

Next steps