Skip to main content

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>
PropertyValue
AuthNone on the route. Validated via linear-signature HMAC against the integration’s stored webhook_secret.
Required queryintegration_id
IdempotentYes (Linear’s event ID is the dedup key)

Query

FieldTypeRequiredNotes
integration_idstringyesThe Dacard integration this webhook belongs to.

Headers

HeaderNotes
linear-signatureHMAC-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

StatusCodeWhen
400Missing integration_idQuery missing.
401Missing webhook signatureHeader missing when a secret is configured.
401Invalid webhook signatureHMAC mismatch.
404Integration not foundBad integration_id.
500INTERNAL_ERRORParse 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.