CLI

Ploid CLI reference

A lightweight command-line client for the Ploid Public API. Every command maps to a /v1 endpoint — the CLI handles config, stdin/file input, polling, and formatted output.

Quick start

Requires Node.js 20 or newer (plus npm, curl, and tar). The install script downloads the CLI source from github.com/ploidcom/cli, builds it, and links the ploid command globally.

curl https://ploid.com/install -fsS | bash

Prefer a package manager? Once @ploid/cliis published to npm, you'll be able to install it directly:

npm install -g @ploid/cli
npx @ploid/cli login

Sign in once per machine:

ploid login

The CLI prints a short code and opens https://ploid.com/auth/cli in your browser. Approve the device and an API key is saved to ~/.config/ploid/config.json.

# Look up one person
ploid people lookup --name "Jane Doe" --company "Acme"

# Reveal contact fields
ploid people enrich --linkedin-url https://www.linkedin.com/in/example \
  --fields profile,work_email,github

# Bulk enrich from a file and wait for completion
ploid batch create --file ./people.json --fields linkedin,github,work_email \
  --max-cost-usd 10 --wait

Authentication

Browser login is the easiest path — no manual key copy. Keys minted via login get full CLI scopes and expire after 90 days; run ploid login again to refresh. Use --no-browser on headless machines (the URL is printed instead).

ploid login
ploid logout       # revoke server-side and remove local config
ploid auth check   # validate the saved key and print balance

Manual API key

For CI or scripts, provide a key in order of precedence: --api-key flag, PLOID_API_KEY env var, or ~/.config/ploid/config.json. Create keys in Settings → API keys.

{
  "api_key": "ploid_live_...",
  "base_url": "https://api.ploid.com"
}

Account

ploid account credits
ploid account usage

Global flags

Available on every command.

FlagDescription
--api-keyAPI key (overrides env and config file).
--base-urlAPI base URL (default https://api.ploid.com).
--jsonEmit raw JSON; agent chat streams newline-delimited JSON events.
--quietSuppress progress lines (printed to stderr).

Exit codes: 0 success, 1 usage/input error, 2 API error, 3 missing auth/config.

ploid agent

Stream the same workspace agent used by /workspace/new. Progress goes to stderr in human mode; add --json or --ndjson to emit machine-readable events for Claude, Codex, Cursor, and other coding agents.

ploid agent chat --query "find DevTools founders in SF"
ploid agent chat --query "find AI infra buyers" --model fast --json
ploid agent chat --query "continue the search" --session-id thread_abc123

Sub-agent progress is emitted as data-subagent stream events with angleId, mission, status, activity, and optional peopleFound. Use ploid people agent as a people-focused alias.

ploid people

ploid people search --query "founders in SF building AI sales tools" \
  --mode natural --size 50
ploid people lookup --name "Jane Doe" --company "Acme"
ploid people enrich --name "Jane Doe" --company "Acme" \
  --fields work_email,github,x
ploid people agent --query "the CTO of Ploid"

--filters accepts a JSON file (or - for stdin) with structured search filters. Use precise titles like Founder and Co-Founder — not Founders, which matches company names and assistants. For multi-part intent (role + topic + location), prefer --mode natural over table mode.

ploid batch

Bulk enrichment from a JSON array or JSONL file. Each row needs an identifier (LinkedIn URL, github:handle, etc.).

ploid batch estimate --file ./people.json --fields linkedin,github,work_email
ploid batch create --file ./people.json --fields linkedin,github,work_email \
  --webhook-url https://example.com/hook
ploid batch status batch_abc123
ploid batch results batch_abc123 --all
ploid batch wait batch_abc123

ploid searches

Async people-set searches — create, refine, and export results.

ploid searches create --query "Sales leaders at US fintechs" \
  --count 100 --include profile --wait
ploid searches list
ploid searches get peopleset_abc123
ploid searches items peopleset_abc123 --cursor 0 --limit 100
ploid searches refine peopleset_abc123 --query "only Series B+"
ploid searches export peopleset_abc123 --format csv --out results.csv

ploid monitors

ploid monitors list
ploid monitors create --people-set-id peopleset_abc123 --interval-days 7
ploid monitors delete monitor_abc123

ploid webhooks

ploid webhooks list
ploid webhooks create --url https://example.com/hook \
  --events batch.completed,people_set.completed
ploid webhooks delete webhook_abc123

ploid linkedin

LinkedIn data passthrough — list available endpoints and call them with key=value parameters.

ploid linkedin catalog
ploid linkedin call profile url=https://www.linkedin.com/in/example
ploid linkedin call profiles-search search="VP Engineering" locations="United States"

Scripting & pipes

Pipe JSONL into batch enrichment via stdin — use --file - or omit --file entirely:

cat people.jsonl | ploid batch create --fields github,x

Add --json on any command when you need raw JSON for jq or downstream tools. Agent chat uses newline-delimited JSON events so sub-agent updates can be consumed while the turn is still running. Progress lines go to stderr so stdout stays clean for pipes.

HTTP API

The CLI is a thin wrapper over api.ploid.com/v1. Run ploid openapi to print the full spec, or explore endpoints in the API playground (requires login).

Source and issue tracker: github.com/ploidcom/cli.