apollo-io-cli 0.1.0

Agent-friendly CLI for Apollo.io APIs - Full coverage of 50+ API operations for enrichment, search, contacts, deals, sequences, and more
apollo-io-cli-0.1.0 is not a library.

Apollo CLI

Build Status License: MIT Rust Apollo.io API

Agent-first Apollo.io CLI — A powerful command-line interface for the Apollo.io API, designed for both humans and AI agents.

Features

  • Full API Coverage — 50+ Apollo.io API operations supported
  • Dual Interface — Human-friendly subcommands AND agent-friendly exec command
  • JSON In, JSON Out — All responses are valid JSON, including errors
  • Stdin Piping — Pipe JSON data from files or other commands
  • Comprehensive Help — Built-in examples for every command
  • Man Pages — Unix man page documentation

Quick Start

Installation

# Build from source
cargo build --release

# Binary is at ./target/release/apollo

Configuration

Set your Apollo.io API key:

export APOLLO_API_KEY="your_api_key_here"

Get your API key from Apollo.io Settings > Integrations > API.

Basic Usage

# Search for people
apollo search people --data '{"q_keywords": "software engineer", "person_titles": ["CTO", "VP Engineering"]}'

# Enrich a person by email
apollo enrichment people --data '{"email": "john@example.com"}'

# Create a contact
apollo contacts create --data '{"first_name": "John", "last_name": "Doe", "email": "john@example.com"}'

# List all deals
apollo deals list

Usage Modes

Subcommand Style (Human-Friendly)

Hierarchical commands with tab completion:

apollo contacts create --data '{"first_name": "John"}'
apollo accounts search --data '{"q_keywords": "tech"}'
apollo enrichment organization --domain "example.com"

Exec Style (Agent-Friendly)

Single command with operation string — ideal for AI agents:

apollo exec contacts.create --data '{"first_name": "John"}'
apollo exec accounts.search --data '{"q_keywords": "tech"}'
apollo exec enrichment.organization --data '{"domain": "example.com"}'

Stdin Piping

Pipe JSON data from files or other commands:

cat contacts.json | apollo exec contacts.bulk-create
echo '{"email": "test@example.com"}' | apollo enrichment people

List All Operations

apollo operations

All Operations

Category Operation Description
Enrichment enrichment.people Enrich data for a single person
enrichment.people-bulk Enrich data for multiple people
enrichment.organization Enrich data for a single organization
enrichment.organization-bulk Enrich data for multiple organizations
Search search.people Search for people (consumes credits)
search.people-api Search for people (credit-free, master key)
search.organizations Search for organizations
search.job-postings Get job postings for an organization
search.organization-info Get complete organization info
search.news Search for news articles
Contacts contacts.create Create a new contact
contacts.get Get a contact by ID
contacts.update Update a contact
contacts.search Search for contacts
contacts.bulk-create Bulk create contacts
contacts.bulk-update Bulk update contacts
contacts.bulk-stage-update Update stage for multiple contacts
contacts.bulk-owner-update Update owner for multiple contacts
contacts.stages List all contact stages
Accounts accounts.create Create a new account
accounts.get Get an account by ID
accounts.update Update an account
accounts.search Search for accounts
accounts.bulk-create Bulk create accounts
accounts.bulk-update Bulk update accounts
accounts.bulk-owner-update Update owner for multiple accounts
accounts.stages List all account stages
Deals* deals.create Create a new deal
deals.list List all deals
deals.get Get a deal by ID
deals.update Update a deal
deals.stages List all deal stages
Sequences sequences.search Search for sequences
sequences.activate Activate a sequence
sequences.add-contacts Add contacts to a sequence
sequences.update-status Update contact status in a sequence
sequences.emails Search for outreach emails
sequences.email-stats Get email statistics
Tasks tasks.create Create a new task
tasks.bulk-create Bulk create tasks
tasks.search Search for tasks
Calls* calls.create Create a call record
calls.search Search for calls
calls.update Update a call record
Misc misc.health Test API key validity
misc.usage View API usage stats and rate limits
misc.users List all users
misc.email-accounts List email accounts
misc.lists List all labels/lists
misc.custom-fields List all custom fields
misc.create-custom-field Create a custom field
misc.fields List all available fields

*Note: Deals use /opportunities internally; Calls use /phone_calls internally in the Apollo API.

Output Format

All responses are JSON:

{
  "success": true,
  "data": { ... }
}

Errors also return JSON:

{
  "success": false,
  "error": {
    "code": "invalid_input",
    "message": "Operation 'contacts.get' requires --id parameter"
  }
}

Man Pages

Generate and install man pages:

# Generate man pages
cargo run --example gen_manpages

# Install man pages (Linux/macOS)
./install-man.sh

# View man page
man apollo

Documentation

Full documentation available at documentation/.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE for details.

Links