discolike
Official Python SDK for the DiscoLike API — discover lookalike companies, enrich domain lists, match company names to domains, and find contacts, from typed Python.
For the terminal, see discolike-cli (pip install discolike-cli or uvx --from discolike-cli discolike).
Installation
pip install discolike
Requires Python 3.10+.
Authentication
export DISCOLIKE_API_KEY="dl_..."
Create a key at app.discolike.com/account/management/keys. You can also pass api_key=... explicitly to Discolike(), or run discolike auth login from the CLI to log in through the browser — the SDK then picks up the saved OAuth session and refreshes it automatically.
Quickstart
from discolike import Discolike
from discolike.requests import DiscoverParams
client = Discolike()
companies = client.discover(
DiscoverParams(
icp_text="Cybersecurity for SMBs, managed IT services, endpoint protection",
country=["US"],
max_records=25,
)
)
for company in companies:
print(company.domain, company.name, company.similarity)
The client is a context manager if you want deterministic cleanup:
with Discolike() as client:
...
Async
Every resource has an async twin on AsyncDiscolike:
import asyncio
from discolike import AsyncDiscolike
from discolike.requests import DiscoverParams
async def main() -> None:
async with AsyncDiscolike() as client:
companies = await client.discover(DiscoverParams(icp_text="B2B SaaS for logistics", max_records=10))
print([c.domain for c in companies])
asyncio.run(main())
Long-running jobs
Bulk operations (match.bulk, segment, validate_icp, contacts.bulk_match) return a Job handle instead of blocking:
from discolike.requests import SegmentParams
job = client.segment(SegmentParams(domains="stripe.com,adyen.com,checkout.com"))
result = job.wait()
Job.status() polls without blocking, Job.cancel() aborts, and wait() raises JobFailedError / JobTimeoutError on failure. On DiscoGen-family jobs the returned JobStatus also carries warnings, estimated_cost and cost_metadata (per-model usage plus a search_provider entry when a BYOS search provider ran; search_calls only counts the model's built-in search).
JobTimeoutError is a client-side wait limit only — the task keeps running server-side (large DiscoGen runs can take hours), so call wait() again to resume or fetch status() later. Cancelled tasks still return results for every item that finished before cancellation. Send one job per list (up to 10,000 domains) rather than splitting into parallel jobs — concurrent DiscoGen jobs share your LLM provider key and slow each other down.
Links
- API documentation: docs.discolike.com
- Source: github.com/Discolike/discolike-python
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file discolike-0.3.0.tar.gz.
File metadata
- Download URL: discolike-0.3.0.tar.gz
- Upload date:
- Size: 53.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba285fbb3dc229922e5a2268afb4b34417fc09cc87bf17b516e913afe33ef8d2
|
|
| MD5 |
d84425dddb5e0eee07bb56e736c9a983
|
|
| BLAKE2b-256 |
7cac0a5a632c29f6de000ac3533196a8664528823be29803a3934f3771653f4c
|
Provenance
The following attestation bundles were made for discolike-0.3.0.tar.gz:
Publisher:
publish.yml on discolike/discolike-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
discolike-0.3.0.tar.gz -
Subject digest:
ba285fbb3dc229922e5a2268afb4b34417fc09cc87bf17b516e913afe33ef8d2 - Sigstore transparency entry: 2646468357
- Sigstore integration time:
-
Permalink:
discolike/discolike-python@c21c269d93553c725b8d65a1c10df42171f4af3e -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/discolike
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c21c269d93553c725b8d65a1c10df42171f4af3e -
Trigger Event:
release
-
Statement type:
File details
Details for the file discolike-0.3.0-py3-none-any.whl.
File metadata
- Download URL: discolike-0.3.0-py3-none-any.whl
- Upload date:
- Size: 39.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdc25fdc52e5de9c697d39c66eaf1ef5fdecb815b3428a7e91cc830a7f17a110
|
|
| MD5 |
10976a473ed46b0a07124a82899632e5
|
|
| BLAKE2b-256 |
914828b0157a5385471d235b0d6437065147c90e5a3c53c555dd36f26df8d658
|
Provenance
The following attestation bundles were made for discolike-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on discolike/discolike-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
discolike-0.3.0-py3-none-any.whl -
Subject digest:
cdc25fdc52e5de9c697d39c66eaf1ef5fdecb815b3428a7e91cc830a7f17a110 - Sigstore transparency entry: 2646468478
- Sigstore integration time:
-
Permalink:
discolike/discolike-python@c21c269d93553c725b8d65a1c10df42171f4af3e -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/discolike
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c21c269d93553c725b8d65a1c10df42171f4af3e -
Trigger Event:
release
-
Statement type: