Documentation Index
Fetch the complete documentation index at: https://docs.dacard.ai/llms.txt
Use this file to discover all available pages before exploring further.
Receive Linear webhook events for real-time signal streaming. Configure this URL in Linear under Settings > API > Webhooks for an integration. Subscribe to Issue (create, update) and Cycle (update). Distinct from /api/webhooks/linear, which handles DAC recommendation completion tracking.
POST /api/webhooks/linear/sync?integration_id=int_xyz
Content-Type: application/json
linear-signature: <hmac-sha256>
| Property | Value |
|---|
| Auth | None on the route. Validated via linear-signature HMAC against the integration’s stored webhook_secret. |
| Required query | integration_id |
| Idempotent | Yes (Linear’s event ID is the dedup key) |
Query
| Field | Type | Required | Notes |
|---|
integration_id | string | yes | The Dacard integration this webhook belongs to. |
| Header | Notes |
|---|
linear-signature | HMAC-SHA256 of the raw body. Verified against the integration’s stored secret. Required if a secret is configured. |
Response
200 OK with { ok: true, processed: <count> } on accepted events. 200 OK with { ok: true, skipped: true } on events Dacard does not parse (e.g., comment-only updates).
Errors
| Status | Code | When |
|---|
| 400 | Missing integration_id | Query missing. |
| 401 | Missing webhook signature | Header missing when a secret is configured. |
| 401 | Invalid webhook signature | HMAC mismatch. |
| 404 | Integration not found | Bad integration_id. |
| 500 | INTERNAL_ERROR | Parse or write failed. Sentry traced. |
Events parsed
Issue.create, Issue.update, Cycle.update. Other event types are accepted and acknowledged but not extracted into signals.