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

# List a Signal's Triggers

> Trigger history scoped to one Signal.

**Cost: Free**

Identical shape to [`GET /v1/triggers`](/api-reference/triggers/list), pre-filtered to one Signal.

<ParamField path="id" type="string" required>
  Signal ID, e.g. `sig_9dk2m1xq`.
</ParamField>

<ParamField query="since" type="string">
  ISO 8601 — only Triggers checked after this time.
</ParamField>

<ParamField query="matched" type="boolean">
  Default `true`. Pass `false` to include unmatched **check logs** — useful for auditing pay-per-check billing.
</ParamField>

<ParamField query="cursor" type="string">
  From the previous response's `meta.nextCursor`.
</ParamField>

<ParamField query="limit" type="integer" default="50">
  1–100.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.up2data.ai/v1/signals/sig_9dk2m1xq/triggers?since=2026-07-01T00:00:00Z" \
    -H "X-API-Key: $UP2DATA_API_KEY"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": [
      {
        "id": "trg_abc123",
        "signal_id": "sig_9dk2m1xq",
        "check_number": 41,
        "checked_at": "2026-07-01T09:00:04Z",
        "matched": true,
        "criteria_matched": ["field_change:headline"],
        "diff": { "headline": { "before": "VP Eng @ Acme", "after": "CTO @ Beta" } },
        "credits_used": 1,
        "webhook": { "status": "delivered", "attempts": 1 }
      }
    ],
    "meta": { "creditsUsed": 0, "billed": false, "nextCursor": null, "requestId": "req_st81mnq2" }
  }
  ```
</ResponseExample>
