このプロジェクトについて

discolike-python は、DiscoLike API の公式 Python SDK および CLI です。DiscoLike API は、世界8000万以上のビジネスウェブサイトを50言語でインデックスするビジネスウェブ検索エンジンです。このリポジトリは、discolike(SDKライブラリ)と discolike-cli(SDKに依存するターミナル用コマンドラインインターフェース)の2つのパッケージを提供します。どちらも Python 3.10+ が必要です。 SDK は、DiscoLike の API とやり取りするための型付きクライアント(Discolike)と、その非同期版(AsyncDiscolike)を提供します。主な機能は以下のとおりです。ICPテキスト、フレーズ、テクノロジースタック、地域、その他40以上のフィルターによる類似企業の発見。取得前のセグメント数のカウント。電話番号・市区町村・都道府県(任意)を含む不整形な企業名を、単一または一括CSVモードでドメインにマッチング。CSVドメインリストへの DiscoLike データセットの補完。ドメインリストの自動セグメント化。ICP定義に対するドメインリストの検証。企業情報、スコア、成長データ、リダイレクト、ベンダー、子会社を含む完全な企業プロフィールの取得。ターゲット企業の連絡先の検索、ルックアップ、マッチング、発見。ウェブ検索を有効にしたドメインセットに対する DiscoGen リサーチの実行。 認証は3つの方法をサポートしています。signup(ブラウザを使わずにメールアドレスと名前からアカウントを作成し、所有者がメールで確認する)、OAuth ログイン(ブラウザベースの PKCE 認可コードフローで、ループバックリダイレクトを使用。ヘッドレスモードではURLを表示)、APIキー(環境変数 DISCOLIKE_API_KEY、CLI設定ファイル、または明示的なパラメータを介して指定)。OAuth 資格情報は、有効期限の60秒前に事前に更新され、401応答後にもう一度更新されます。また、クライアントは独自の httpx2.Client または httpx2.AsyncClient を持ち込むこともできます。 すべてのリクエストモデルはプラットフォームの OpenAPI 仕様から生成され、リクエスト送信前に Pydantic でローカル検証されます。そのため、不正な enum 値や範囲外の数値によって往復が無駄になることはありません。すべてのレスポンスは型付きの Pydantic モデルです。エラーは DiscolikeError を継承し、認証、プランアクセス、未検出、サーバー、レート制限、検証、API接続失敗に特化したサブクラスがあります。一時的な失敗は自動的に再試行されます(デフォルトで3回)。 長時間実行されるバルク操作(match.bulk、segment、validate_icp、contacts.bulk_match)はブロックせずに Job ハンドルを返します。Job.wait() は完了までブロックし、Job.status() はブロックせずにポーリングし、Job.cancel() は中止します。DiscoGen 系のジョブでは、返される JobStatus に警告、estimated_cost、およびモデルごとの使用量と検索プロバイダーエントリを含む cost_metadata が含まれます。JobTimeoutError はクライアント側の待機上限にすぎません。タスクはサーバー側で実行され続けるため、wait() を再度呼び出して再開できます。 CLI は SDK の機能を反映し、discover、count、match、extract、validate-icp、append、segment、signup の各コマンドに加え、auth、company、contacts、discogen、queries、account、search-providers、llm-providers のコマンドグループを提供します。結果はデフォルトで JSON として stdout に出力され、stdout が TTY の場合に --format table で人間が読みやすい形式にできます。非同期エンドポイントは --wait でジョブ完了までブロックするか、ポーリング用の task_id を返します。終了コードは標準化されています。0 成功、1 サーバーエラー、2 検証エラー、3 認証/プランエラー、4 レート制限、5 ネットワークエラー、6 未検出。 リポジトリは uv ワークスペースとして構成され、packages/discolike(SDK)と packages/discolike-cli(CLI)の2つのメンバーがあります。開発では、テストに pytest、リントに ruff、OpenAPI 仕様からリクエストモデルを再生成するコード生成スクリプト(scripts/gen_requests.py)を使用します。examples/ フォルダには、チェックポイントと再開を備えた CRM 連絡先エクスポートと DiscoLike ペルソナ ID のマッチング、CSV からの勤務先メールアドレスの一括検索、ICP による企業の発見後に DiscoGen で補完する、といった一般的なワークフロー用の実行可能スクリプトが含まれています。プロジェクトは MIT ライセンスの下で提供されています。