Documentation Index
Fetch the complete documentation index at: https://docs.thig.ai/llms.txt
Use this file to discover all available pages before exploring further.
Webhooks & Integrations API
Outgoing Webhooks
Configure webhooks to notify external systems of platform events.
List Webhooks
Create Webhook
Body:
| Field | Type | Required | Description |
|---|
name | string | Yes | Webhook name |
url | string | Yes | Endpoint URL |
events | string[] | Yes | Events to subscribe to |
secret | string | No | HMAC signing secret |
isActive | boolean | No | Active state (default: true) |
Available Events:
project.created, project.updated, project.deleted
prd.generated, prd.updated
member.added, member.removed
- And more from
WEBHOOK_EVENT_CATEGORIES
curl -X POST https://app.thig.ai/api/admin/webhooks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Slack Notifier",
"url": "https://hooks.slack.com/services/...",
"events": ["project.created", "prd.generated"],
"secret": "whsec_mySigningSecret"
}'
Webhook Payload
When an event fires, your endpoint receives:
{
"event": "project.created",
"timestamp": "2026-01-15T10:30:00Z",
"data": {
"projectId": "proj_123",
"name": "Mobile App PRD",
"status": "DRAFT"
}
}
The payload includes an HMAC signature in the header specified by signatureHeaderName (default: x-webhook-signature).
Incoming Webhooks
Receive events from external systems.
Receive Webhook
POST /api/webhooks/incoming/{token}
Public endpoint authenticated by unique token. Accepts JSON or form-urlencoded data.
curl -X POST https://app.thig.ai/api/webhooks/incoming/YOUR_TOKEN \
-H "Content-Type: application/json" \
-d '{"event": "issue.created", "data": {"title": "Bug report"}}'
Verification Challenge
GET /api/webhooks/incoming/{token}
Responds to verification challenges (Slack-style) by echoing the challenge parameter.
Integrations
Integration Status
GET /api/integrations/status
Returns connection status for all integrations.
Response:
{
"integrations": {
"notion": {
"connected": true,
"workspaceName": "My Workspace",
"connectedAt": "2026-01-10T08:00:00Z"
},
"confluence": {
"connected": false
}
}
}
Notion
Connect
GET /api/integrations/notion/connect
Returns OAuth authorization URL. Redirect user to this URL.
Disconnect
POST /api/integrations/notion/disconnect
Confluence
Connect
GET /api/integrations/confluence/connect
Returns OAuth authorization URL.
Disconnect
POST /api/integrations/confluence/disconnect
Scheduled Exports
List Schedules
GET /api/scheduled-exports
Query: ?projectId= to filter by project. Requires Pro plan.
Create Schedule
POST /api/scheduled-exports
Body:
| Field | Type | Required | Description |
|---|
scheduleType | string | Yes | weekly_digest, on_status_change, custom_cron, one_time |
projectId | string | No | Specific project |
cronExpression | string | No | For custom_cron type |
triggerStatus | string | No | For on_status_change type |
scheduledAt | string | No | For one_time type (ISO 8601) |
timezone | string | Yes | IANA timezone |
format | string | Yes | pdf, html, docx, markdown |
deliveryMethod | string | Yes | email or webhook |
recipients | string[] | No | Email recipients |
webhookUrl | string | No | Webhook endpoint |
includeChangelog | boolean | No | Include changelog |
customSubject | string | No | Email subject |
customMessage | string | No | Email message |
curl -X POST https://app.thig.ai/api/scheduled-exports \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"projectId": "proj_123",
"scheduleType": "weekly_digest",
"format": "pdf",
"deliveryMethod": "email",
"recipients": ["team@example.com"],
"timezone": "America/New_York",
"includeChangelog": true
}'
Update Schedule
PATCH /api/scheduled-exports/{exportId}
Delete Schedule
DELETE /api/scheduled-exports/{exportId}
Trigger Manually
POST /api/scheduled-exports/{exportId}/trigger
Other Endpoints
Notifications
GET /api/notifications
PATCH /api/notifications/{notificationId}
DELETE /api/notifications/{notificationId}
Search
GET /api/search?q=search+term&mode=keyword
Modes: keyword, semantic, hybrid.
Upload Document
POST /api/upload/document
FormData with file field. Max 10MB. Supports PDF, DOCX, TXT, MD. Returns extracted text and AI analysis.
curl -X POST https://app.thig.ai/api/upload/document \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@requirements.pdf"
Upload Image
FormData with file and projectId. Max 5MB. Returns storage URL.
curl -X POST https://app.thig.ai/api/upload/image \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@screenshot.png" \
-F "projectId=proj_123"
Audio Transcription
POST /api/upload/transcribe
FormData with file field. Max 25MB. Feature-flagged. Returns transcribed text and duration.
curl -X POST https://app.thig.ai/api/upload/transcribe \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@meeting-recording.mp3"
Feature Flags
POST /api/feature-flags
GET /api/feature-flags/enabled
GET /api/feature-flags/{flagKey}
NPS Feedback
GET /api/feedback/nps
POST /api/feedback/nps
Health Check
Public. Returns { status: "ok" } or { status: "degraded" }.
Pricing Plans
Public. Returns active subscription plans with features.
Email Unsubscribe
Token-verified, no login required.