> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# イベント取り込み

> アプリケーションから使用状況イベントを送信して、顧客の消費を追跡し、請求を行います。

イベントは使用量ベースの請求の基盤です。請求可能なアクションが発生したときにイベントを送信し、メーターがそれらを集計して料金にします。

<Card title="API Reference - Events Ingestion" icon="code" href="/api-reference/usage-events/ingest-events">
  例とレスポンスコードを含む完全なAPIドキュメント。
</Card>

## イベント構造

<Accordion title="Required Fields">
  <ParamField body="event_id" type="string" required>
    一意の識別子。UUIDを使用するか、顧客ID＋タイムスタンプ＋アクションを組み合わせてください。
  </ParamField>

  <ParamField body="customer_id" type="string" required>
    Dodo Paymentsの顧客ID。有効な既存の顧客である必要があります。
  </ParamField>

  <ParamField body="event_name" type="string" required>
    メーターのイベント名と一致するイベントタイプ（大文字小文字を区別）。例: `api.call`、`image.generated`
  </ParamField>
</Accordion>

<Accordion title="Optional Fields">
  <ParamField body="timestamp" type="string">
    ISO 8601タイムスタンプ。省略するとサーバー時刻がデフォルトになります。遅延/バッチイベントでは正確な課金のために含めてください。
  </ParamField>

  <ParamField body="metadata" type="object">
    集計やフィルタリング用の追加プロパティ:

    * 数値: `bytes`、`tokens`、`duration_ms`
    * フィルタ: `endpoint`、`method`、`quality`

    ```javascript theme={null}
    metadata: {
      endpoint: "/v1/orders",
      method: "POST",
      tokens: 1024
    }
    ```
  </ParamField>
</Accordion>

## イベントの送信

<CodeGroup>
  ```javascript Single Event theme={null}
  await fetch('https://test.dodopayments.com/events/ingest', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.DODO_PAYMENTS_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      events: [{
        event_id: "api_call_1234",
        customer_id: "cus_abc123",
        event_name: "api.call",
        metadata: { endpoint: "/v1/orders" }
      }]
    })
  });
  ```

  ```javascript Batch Events theme={null}
  await fetch('https://test.dodopayments.com/events/ingest', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.DODO_PAYMENTS_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      events: [
        { event_id: "call_1", customer_id: "cus_abc", event_name: "api.call" },
        { event_id: "call_2", customer_id: "cus_abc", event_name: "api.call" },
        { event_id: "call_3", customer_id: "cus_abc", event_name: "api.call" }
      ]
    })
  });
  ```

  ```python Python theme={null}
  import requests

  requests.post(
      'https://test.dodopayments.com/events/ingest',
      headers={'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json'},
      json={'events': [{'event_id': 'call_1', 'customer_id': 'cus_abc', 'event_name': 'api.call'}]}
  )
  ```

  ```curl cURL theme={null}
  curl -X POST 'https://test.dodopayments.com/events/ingest' \
    -H 'Authorization: Bearer YOUR_API_KEY' \
    -H 'Content-Type: application/json' \
    -d '{"events": [{"event_id": "call_1", "customer_id": "cus_abc", "event_name": "api.call"}]}'
  ```
</CodeGroup>

<Tip>
  パフォーマンス向上のため、リクエストごとに最大1,000件のイベントを一括処理します。APIは1回のコールにつき、1,000件のイベントのハードリミットを強制します。
</Tip>

## 取り込みブループリント

一般的なユースケースのための既製のイベントパターン。ゼロから構築するのではなく、実績のあるブループリントから始めましょう。

<CardGroup cols={2}>
  <Card title="LLM Blueprint" icon="brain-circuit" href="/developer-resources/ingestion-blueprints/llm">
    OpenAI、Anthropic、Groq、GeminiなどのAIトークン使用量を追跡します。
  </Card>

  <Card title="API Gateway Blueprint" icon="cloud" href="/developer-resources/ingestion-blueprints/api-gateway">
    エンドポイントフィルタリングとレート制限に対応したMeter APIリクエストを測定します。
  </Card>

  <Card title="Object Storage Blueprint" icon="box-archive" href="/developer-resources/ingestion-blueprints/object-storage">
    クラウドストレージサービス向けにファイルアップロードとストレージ消費量を追跡します。
  </Card>

  <Card title="Stream Blueprint" icon="tower-broadcast" href="/developer-resources/ingestion-blueprints/stream">
    ビデオ、オーディオ、リアルタイムデータのストリーミング帯域幅を計測します。
  </Card>

  <Card title="Time Range Blueprint" icon="clock" href="/developer-resources/ingestion-blueprints/time-range">
    サーバーレス関数やコンピュートインスタンスの経過時間に基づいて課金します。
  </Card>

  <Card title="View All Blueprints" icon="copy" href="/features/usage-based-billing/ingestion-blueprints">
    詳細な実装ガイド付きの利用可能なブループリントをすべて確認できます。
  </Card>
</CardGroup>

## ベストプラクティス

<AccordionGroup>
  <Accordion title="Use Unique Event IDs">
    重複を防ぐために決定論的なIDを使用してください: `${customerId}_${action}_${timestamp}`
  </Accordion>

  <Accordion title="Implement Retries">
    5xxエラー時には指数バックオフでリトライしてください。4xxエラーはリトライしないでください。
  </Accordion>

  <Accordion title="Include Timestamps">
    リアルタイムイベントでは省略してください。遅延/バッチイベントでは正確性のために含めてください。
  </Accordion>

  <Accordion title="Monitor Delivery">
    成功率を追跡し、失敗したイベントを再試行用にキューイングします。
  </Accordion>
</AccordionGroup>

## トラブルシューティング

<AccordionGroup>
  <Accordion title="Events not appearing">
    * イベント名はメーターと完全一致させてください（大文字小文字を区別）
    * 顧客IDが存在することを確認してください
    * メーターのフィルタがイベントを除外していないか確認してください
    * タイムスタンプが最近のものであることを確認してください
  </Accordion>

  <Accordion title="Authentication errors (401)">
    APIキーが正しいことを確認し、形式を使用してください: `Bearer YOUR_API_KEY`
  </Accordion>

  <Accordion title="Validation errors (400)">
    必要なフィールドがすべて含まれていることを確認してください: `event_id`、`customer_id`、`event_name`
  </Accordion>

  <Accordion title="Metadata not aggregating">
    * メタデータキーはメーターの「Over Property」と完全に一致させてください
    * 文字列ではなく数値を使用してください: `tokens: 150`（`tokens: "150"`ではありません）
  </Accordion>
</AccordionGroup>

## 次のステップ

<CardGroup cols={2}>
  <Card title="Create Meters" icon="sliders" href="/features/usage-based-billing/meters">
    フィルタと集計関数を使ってイベントが課金対象の数量にどのように集計されるかを定義します。
  </Card>

  <Card title="Ingestion Blueprints" icon="copy" href="/features/usage-based-billing/ingestion-blueprints">
    LLMトラッキング、APIゲートウェイ、ストレージなどの一般的なユースケース向けの既製ブループリントを利用してください。
  </Card>

  <Card title="Complete Tutorial" icon="code" href="/developer-resources/usage-based-billing-build-ai-image-generator">
    使用量ベースの課金を備えた完全なAI画像ジェネレーターをゼロから構築します。
  </Card>

  <Card title="API Reference" icon="terminal" href="/api-reference/usage-events/ingest-events">
    すべてのパラメーター、レスポンスコード、およびインタラクティブテストを含む完全なAPIドキュメント。
  </Card>
</CardGroup>
