REST API
Find companies by what they do, over HTTP
One GET returns ranked companies from an index of 80M+ crawled business websites. Pass a natural language ICP, up to 10 seed domains, exact homepage phrases, tech stack, size, country, or language. Firmographics come back on every record, and contacts, enrichment, and CRM push are separate calls on the same key.
- Python SDK getting started, reference, GitHub, PyPI
- CLI install and auth, 62 commands, JSON output for agents and scripts
- Base URL
https://api.discolike.com/v1, headerX-API-Keyissue a key - OpenAPI 3.1 openapi.json, agent auth summary auth.md
Working inside Claude, Cursor, or VS Code? The MCP server needs no key at all.
pip install "discolike[cli]"
discolike auth login # browser OAuth, or --api-key KEY
discolike discover --icp-prompt "B2B SaaS for logistics" --max-records 5Create a DiscoLike account for me. Follow https://docs.discolike.com/guides/agent-signup/, ask me for anything you need, and tell me what to do next.How do I search for companies with the API?
Three ways to describe the target, one endpoint. The SDK validates parameters locally before the request goes out. Count is free, so an agent can size the result set before spending credits on records.
Search by natural language ICP
Describe the ideal customer in plain English. icp_prompt extracts filters and seed domains from the sentence, then ranks matches from 80M+ crawled business websites.
from discolike import Discolike
from discolike.requests import DiscoverParams
client = Discolike() # reads DISCOLIKE_API_KEY
companies = client.discover(
DiscoverParams(
icp_prompt="cybersecurity for SMBs, managed IT, endpoint protection",
country=["US"],
max_records=100,
)
)
for c in companies:
print(c.domain, c.name, c.similarity)discolike discover \
--icp-prompt "cybersecurity for SMBs, managed IT, endpoint protection" \
--country US --max-records 100 --format jsonSame call over HTTP: GET https://api.discolike.com/v1/discover?icp_prompt=cybersecurity+for+SMBs%2C+managed+IT%2C+endpoint+protection&country=US&max_records=100
Every parameter and response field: endpoint reference
Lookalikes from seed domains
Pass up to 10 customer domains. Results are ranked by similarity to what those companies actually do on the web, not by shared LinkedIn tags.
companies = client.discover(
DiscoverParams(
domain=["stripe.com", "adyen.com"],
employee_range="51,500",
max_records=500,
)
)discolike discover \
--domain stripe.com --domain adyen.com \
--employee-range 51,500 --max-records 500 --format jsonSame call over HTTP: GET https://api.discolike.com/v1/discover?domain=stripe.com&domain=adyen.com&employee_range=51%2C500&max_records=500
Every parameter and response field: endpoint reference
Exact phrase on the homepage
Match text fragments that appear on the company homepage. Count first so the agent knows the size of the set before spending credits.
from discolike.requests import CountParams
count = client.count(
CountParams(
phrase_match=["managed detection and response"],
country=["DE"],
)
)
print(count.count)discolike count \
--phrase-match "managed detection and response" --country DESame call over HTTP: GET https://api.discolike.com/v1/count?phrase_match=managed+detection+and+response&country=DE
Every parameter and response field: endpoint reference
Contacts, enrichment, segmentation, DiscoGen, and CRM follow the same shape. Full method list by namespace: SDK reference. Every endpoint: docs.discolike.com
How does an agent sign up for the API?
One unauthenticated POST creates the account. The agent sends the person's work email and name plus its own name and relays the next_step text from the response. No credential is returned. The person confirms by email, logs in, picks a plan from $99 per month, and issues the API key under Settings, API Keys.
Free-mail and disposable domains are rejected. A 409 means the account already exists.
Agent guide: docs.discolike.com/guides/agent-signup →
POST https://api.discolike.com/v1/public/signup
Content-Type: application/json
{
"email": "jane@acme.com",
"first_name": "Jane",
"last_name": "Doe",
"agent": "claude-code"
}