メインコンテンツへスキップ
ウェブフックはモニター結果を受信する推奨方法です。モニターがトリガーすると、Pubrioは設定されたURLにJSONペイロードを含むPOSTリクエストをリアルタイムで送信します。

前提条件

  • モニターアクセス権のあるPubrio APIキー
  • パブリックにアクセス可能なHTTPSエンドポイント(またはusewebhook.comのテストURL)
クイックテスト: usewebhook.comを使用して無料の一時的なウェブフックURLを生成できます。デプロイなしですべての受信ペイロードを確認できます。

ステップ1:ウェブフック配信先でモニターを作成

curl -X POST https://api.pubrio.com/monitors/create \
  -H "Content-Type: application/json" \
  -H "pubrio-api-key: YOUR_API_KEY" \
  -d '{
    "name": "My First Monitor",
    "detection_mode": "signal_first",
    "signal_types": ["jobs"],
    "signal_filters": [
      {
        "signal_type": "jobs",
        "filters": {
          "locations": ["US"]
        }
      }
    ],
    "destination_type": "webhook",
    "destination_config": {
      "webhook_url": "https://usewebhook.com/YOUR_WEBHOOK_ID",
      "headers": {
        "X-Custom-Auth": "your-secret-token"
      },
      "body": {
        "pipeline": "my-webhook"
      }
    },
    "max_records_per_trigger": 5,
    "profile_id": 1
  }'
レスポンス:
{
  "data": {
    "monitor_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "name": "My First Monitor",
    "detection_mode": "signal_first",
    "destination_type": "webhook",
    "is_active": true,
    "is_paused": false,
    "masked_signature": "7••••••••••••••••8df",
    "created_at": "2026-04-06T10:00:00.000Z",
    "signature": "71a2b3c4-d5e6-f789-0abc-def123456789"
  }
}
headers オブジェクトは毎回の配信にカスタムHTTPヘッダーを追加します(認証に便利)。body オブジェクトはウェブフックペイロードのルートレベルにカスタムフィールドを追加します。
レスポンスの signature を保存してください — 受信ペイロードの検証に必要です。これは作成時とシグネチャ公開エンドポイントでのみ返されます。

ステップ2:ウェブフック接続を検証

ウェブフック検証エンドポイントを使用してエンドポイントが到達可能かテストします。これはプレースホルダーデータを含むサンプルペイロードを送信します — クレジットは消費されず、実際のシグナルは取得されません。
curl -X POST https://api.pubrio.com/monitors/webhook/validate \
  -H "Content-Type: application/json" \
  -H "pubrio-api-key: YOUR_API_KEY" \
  -d '{
    "monitor_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "detection_mode": "signal_first",
    "signal_types": ["jobs"],
    "signal_filters": [
      {
        "signal_type": "jobs",
        "filters": { "locations": ["US"] }
      }
    ],
    "destination_type": "webhook",
    "destination_config": {
      "webhook_url": "https://usewebhook.com/YOUR_WEBHOOK_ID",
      "headers": { "X-Custom-Auth": "your-secret-token" },
      "body": { "pipeline": "my-webhook" }
    },
    "profile_id": 1
  }'
成功したレスポンスには、送信されたサンプルリクエストペイロードとエンドポイントが返したレスポンスが含まれます — 本番稼働前に接続が正常であることを確認できます。

ステップ3:実データでテスト

接続が検証されたら、プロセストライエンドポイントを使用して実際の実行をトリガーします。これは実際のシグナルを取得しウェブフックに配信します — tried_at に最近の過去の日付を使用してデータが利用可能であることを確認してください:
curl -X POST https://api.pubrio.com/monitors/process/try \
  -H "Content-Type: application/json" \
  -H "pubrio-api-key: YOUR_API_KEY" \
  -d '{
    "monitor_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "tried_at": "2026-01-01T00:00:00.000Z",
    "profile_id": 1
  }'
validateと異なり、tryエンドポイントは実際のスキャンを実行しクレジットを消費します。実際のペイロードが正しく届くことを確認し、スケジュールされたスキャンが開始される前に結果をすばやく推定するために使用してください。

ステップ4:シグネチャの検証

各モニターには、受信ペイロードがPubrioからのものであることを確認するための一意のシグネチャがあります。
curl -X POST https://api.pubrio.com/monitors/signature/reveal \
  -H "Content-Type: application/json" \
  -H "pubrio-api-key: YOUR_API_KEY" \
  -d '{
    "monitor_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "profile_id": 1
  }'
{
  "data": {
    "monitor_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "signature": "71a2b3c4-d5e6-f789-0abc-def123456789"
  }
}
このシグネチャを受信ペイロードの monitor.monitor_id と比較して真正性を検証します。

ウェブフックペイロード構造

ペイロードはモニターの detection_mode に応じて異なります:
signal_first モードでは、ペイロードにトップレベルの signals 配列が含まれます:
{
  "monitor": {
    "monitor_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "name": "My Signal Monitor",
    "detection_mode": "signal_first",
    "signal_types": ["jobs", "news"],
    "signal_filters": [...],
    "company_filters": {...},
    "is_company_enrichment": true,
    "is_people_enrichment": true,
    "people_enrichment_configs": [...]
  },
  "metadata": {
    "total_signals": 3,
    "total_companies": 2,
    "total_people": 5
  },
  "triggered_at": "2026-04-05T20:29:43.832Z",
  "signals": [
    {
      "signal_type": "jobs",
      "signal": {
        "signal_type": "jobs",
        "job_search_id": "...",
        "companies": [
          {
            "domain_search_id": "...",
            "company_name": "...",
            "domain": "...",
            ...
          }
        ],
        ...
      },
      "companies": [
        {
          "domain_search_id": "...",
          "company_name": "...",
          "domain": "...",
          "logo_url": "...",
          "country_code": "...",
          "company_size": 5000,
          "industry": "...",
          "people": [...],
          "emails": [...],
          "phones": [...],
          ...
        }
      ]
    },
    {
      "signal_type": "news",
      "signal": {
        "signal_type": "news",
        "news_search_id": "...",
        "news_id": "...",
        "title": "...",
        "summary": "...",
        "published_at": "...",
        "source": "...",
        "category": "...",
        "companies": [...],
        ...
      },
      "companies": [...],
      ...
    },
    ...
  ],
  "pipeline": "my-webhook"
}
各シグナルエントリにはシグナルの詳細と、関連するエンリッチメント済み企業と人物が含まれます。
destination_config のカスタム body フィールドはルートレベルに表示されます(例:上記の例の "pipeline": "my-webhook")。

メール配信先

メール配信を希望するチームは、destination_type"email" に設定してください:
{
  "destination_type": "email",
  "destination_config": {
    "email": "[email protected]"
  }
}
Pubrioはエージェンシーやチーム向けのホワイトラベルメール配信をサポートしています。送信者ドメインとブランディングのカスタマイズについてはお問い合わせください。

トラブルシューティング

  • エンドポイントがパブリックにアクセス可能であることを確認してください(ファイアウォールやVPNの背後にないこと)
  • 200 ステータスコードを返すことを確認してください — 他のコードは失敗として扱われます
  • ウェブフック検証エンドポイントを使用して接続をテストしてください
  • 統計ログでエラーメッセージとレスポンスコードを確認してください
ウェブフックが一貫して非200コードを返す場合、max_failure_trigger の連続失敗回数に達するとモニターが一時停止します。問題を修正し、モニター更新で再アクティベートしてください。
配信に失敗しリトライが設定されている場合、同じペイロードを複数回受信する可能性があります。triggered_at またはログIDを使用して重複排除してください。
max_records_per_trigger を減らして配信ごとのレコード数を制限してください。フィルターを絞り込んでマッチするシグナル量を減らすこともできます。