Skip to main content

discolike-cli

Official CLI for the DiscoLike API — the discolike command from your terminal. Built on the discolike SDK.

Installation

pip install discolike-cli

Or run it without installing:

uvx --from discolike-cli discolike --help

Requires Python 3.11+. Installing this package gives you the discolike command.

Authentication

discolike auth login

Opens your browser to log in (add --no-browser to print the URL instead, --port to pin the loopback port when forwarding over SSH). To use an API key instead, pass --api-key KEY or --method api_key to be prompted; create a key at app.discolike.com/account/management/keys. You can also set DISCOLIKE_API_KEY in the environment instead.

Quickstart

discolike discover --icp-prompt "managed IT services for SMBs" --country US --max-records 25
discolike match "Stripe Inc" --city "San Francisco"
discolike match --file companies.csv --name-column company_name --wait
discolike count --phrase-match "book a demo" --country US
discolike company data stripe.com
discolike extract https://stripe.com/enterprise

Top-level commands: discover, count, match, extract, validate-icp, append, segment — plus auth, bulk, company, contacts, discogen, prospecting, queries, account, search-providers, and llm-providers command groups.

Volume pulls

discolike bulk walks past the 10,000-per-search ceiling and pulls contacts for a whole domain list into one CSV, with checkpoint and resume:

discolike bulk companies --params-file form.json --max-companies 50000 --run-name agencies --out companies.csv
discolike bulk estimate  --domains-file companies.csv --per-company 10          # free size check
discolike bulk contacts  --domains-file companies.csv --per-company 10 --summary "growth marketing" --out contacts.csv

companies saves each page as an exclusion list (<run-name>-round-N) and excludes it from the next page; rerunning with the same --out resumes from the CSV. contacts slices the domain list at 10000 / per-company domains per call and records finished slices in <out>.checkpoint. Both keep one call in flight under --rate-limit (default 10/min, the Pro rate on /discover and /contacts), retry on 429/5xx, and print a JSON summary at the end. Filters come from --params-file, --param and the common flags; the paging fields are managed for you.

Managed prospecting

discolike prospecting start --brief "Find 100 US logistics companies and 3 operations directors each" --idempotency-key logistics-1
discolike prospecting start --brief "Find lookalikes of our customers and their CTOs" --customers-file customers.csv --idempotency-key seeded-1
discolike prospecting wait RUN_ID
# Review the proposed plan; change its engines or size if needed (returns a new plan_version):
discolike prospecting plan RUN_ID --plan-version 1 --contact-integration-id LLM_ID --search-provider-id SEARCH_ID
# Then approve the exact version you saw:
discolike prospecting approve RUN_ID --plan-version 2
discolike prospecting list --limit 20
discolike prospecting message RUN_ID --text "Make it 250 companies" --idempotency-key logistics-edit-1
discolike prospecting status RUN_ID --events-after 12 --messages-after 8 --limit 100
discolike prospecting cancel RUN_ID

wait returns on proposed, needs_input, completed, failed, or cancelled. A timeout stops polling only. Inspect status and stop reason; completion does not guarantee full coverage. Message replies arrive through status --messages-after; follow next_message_seq and reply_pending. A "segment these" request keeps reply_pending true until the segments message is posted, which can take more than an hour. If grouping stops without an outcome, the flag clears on its own after about 90 minutes.

plan changes a proposed plan before approval and sends only the flags you pass: --contact-integration-id, --validation-integration-id and --search-provider-id take option ids from the plan message's contact_engine, company_check_engine and search_provider (--search-provider-id none skips web research), and --target-companies, --contacts-per-company, --deliverable, --goal, --max-spend-usd and --max-provider-spend-usd (0 removes a limit) resize or re-scope it. When your organization has several AI or search providers and none is the default, the plan shows that engine with selected: null and approve returns 409 until plan picks one. The run comes back re-estimated at a new plan_version; approve that one.

start and approve default to pausing at checkpoints, like the web chat: a pilot check on large lists (pilot), a search drifting off target (tail_quality), candidates running out short of the target (short), the target being met (target_reached), another round of companies when the ones checked yield too few contacts (top_up), and, on wave runs, the researched contacts found before their emails are looked up (contacts_review, asked with --auto too; contacts already in DiscoLike's database get their lookups during research, which approving the plan starts; picking "Find emails" by number sends the question's seq, which the API needs to accept it). Pass --auto to never pause (except at a top_up round that would pass a spending limit); a poor pilot is then sharpened once and the run continues with a notice, stopping with pilot_failed only if the re-pilot fit is still under 20%. If sharpening itself fails, the run continues on the original criteria. On a terminal, wait shows the question, any sample companies and numbered replies at a checkpoint, sends your pick or your own text, and keeps waiting. Without a terminal, or with --no-input, it prints the run on stdout, a needs_input envelope (message, stop_reason, suggested_replies, sample) on stderr, and exits 7; answer with prospecting message --text "<reply>" (add --question-seq with the question's seq to answer only that question) and run wait again.

Omit --target-companies and --contacts-per-company to infer counts from the brief (fallback 1,000 and 3; up to 10 contacts per company). Explicit values override the text. --deliverable accounts returns the checked companies only, with no people; --goal companies takes --target-companies matching companies and works only those instead of adding rounds until the contact target is met. Both default to leads. --max-candidates and --max-actions are automatic when omitted or 0; their maxima are 100,000 and 10,000. Targets allow up to 10,000 companies, status pages up to 500 rows, and lists up to 50 runs. Work caps do not cap provider charges.

Conventions

  • Results print as JSON to stdout; errors print as JSON (error, message, status_code) to stderr.
  • Pass --format table for a human-readable table — used automatically when stdout is a TTY.
  • Volume inputs come from files: --domains-file companies.csv (a domain column, or one domain per line) on queries create-exclusion-list, contacts discover|search|count|generate, discogen run and validate-icp; --params-file form.json (a JSON object of API parameter names, e.g. an app form) on discover, count and contacts discover|search|count; --exclude-domains-file on discover. Precedence: file < --param < flags.
  • Async endpoints (match --file, discogen run, discogen run-personas, segment, validate-icp) take --wait to block until the job finishes. Without it, you get a task_id back to poll with discolike discogen status <task_id> --family <family>. append is synchronous — it returns enriched rows directly (or writes CSV bytes to --output).

Exit codes

Exit code Meaning
0 Success
1 Server error or unexpected failure
2 Validation error
3 Authentication or plan-access error
4 Rate limited
5 Network error
6 Not found
7 Needs input: prospecting wait reached a checkpoint with no terminal to ask (or --no-input)

License

MIT

Metadata

Release files for discolike-cli 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for discolike-cli 0.6.0
File Size Uploaded
discolike_cli-0.6.0.tar.gz 75.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for discolike-cli 0.6.0
File Interpreter ABI Platform
discolike_cli-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 131.6 kB

Release files / discolike_cli-0.6.0.tar.gz

Download URL discolike_cli-0.6.0.tar.gz
Size 75.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b1778b35dbf163de6fcf1b82f37316c361f352aa61560442ebf41916b5ec077b
BLAKE2b-256 checksum
How to use checksums
bddd9e8ef59fa1e70ec5e4cb13355eeb710ae74e768f40b9edfe9b6aedc9464f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / discolike_cli-0.6.0-py3-none-any.whl

Download URL discolike_cli-0.6.0-py3-none-any.whl
Size 55.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
00c2c8c4c430f792df569007b37e530ae875889555022f3c23ad5fab588f7c0e
BLAKE2b-256 checksum
How to use checksums
2a02f31a5e5d92e74e16772c42cd67409d875b6cfa0a111acc5d35dfc6c1159a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page