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.
Projects API
List Projects
Query Parameters:
| Parameter | Type | Description |
|---|
search | string | Filter by project name |
status | string | Filter by status (DRAFT, IN_PROGRESS, etc.) |
templateId | string | Filter by template |
priority | string | Filter by priority |
sortBy | string | Sort field |
sortOrder | string | asc or desc |
assignedToMe | boolean | Only show assigned projects |
curl -G https://app.thig.ai/api/projects \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "status=IN_PROGRESS" \
-d "sortBy=updatedAt" \
-d "sortOrder=desc"
Response:
{
"projects": [
{
"id": "proj_123",
"name": "Mobile App PRD",
"description": "PRD for our iOS application",
"status": "IN_REVIEW",
"priority": "high",
"templateId": "tmpl_456",
"assignedToId": "user_789",
"createdAt": "2026-01-15T10:30:00Z",
"updatedAt": "2026-01-20T14:00:00Z"
}
],
"total": 42
}
Create Project
Body:
| Field | Type | Required | Description |
|---|
name | string | Yes | Project name |
description | string | No | Project description |
templateId | string | No | Template to use |
status | string | No | Initial status (default: DRAFT) |
priority | string | No | Priority level |
curl -X POST https://app.thig.ai/api/projects \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Mobile App PRD", "templateId": "tmpl_456", "priority": "high"}'
Get Project
GET /api/projects/{projectId}
Returns full project details with template and assignee data. Supports share token authentication via x-share-token header.
curl https://app.thig.ai/api/projects/proj_123 \
-H "Authorization: Bearer YOUR_API_KEY"
Update Project
PATCH /api/projects/{projectId}
Body: Any project fields to update (name, description, status, priority, assignedToId, templateId).
curl -X PATCH https://app.thig.ai/api/projects/proj_123 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"status": "IN_REVIEW", "priority": "high"}'
Delete Project
DELETE /api/projects/{projectId}
curl -X DELETE https://app.thig.ai/api/projects/proj_123 \
-H "Authorization: Bearer YOUR_API_KEY"
Quick Start Project
POST /api/projects/quick-start
Create a project from the quick-start flow.
Body:
| Field | Type | Required | Description |
|---|
name | string | Yes | Project name |
templateId | string | No | Template to use |
useCase | string | No | Use case description |
Project from Marketplace
POST /api/projects/from-marketplace
Body:
| Field | Type | Required | Description |
|---|
templateId | string | Yes | Marketplace template ID |
name | string | No | Custom project name |
PRD Documents
Get PRD
GET /api/projects/{projectId}/prd
Create/Replace PRD
POST /api/projects/{projectId}/prd
Body:
| Field | Type | Required | Description |
|---|
content | string | Yes | PRD content (markdown/HTML) |
style | string | No | PRD style |
curl -X POST https://app.thig.ai/api/projects/proj_123/prd \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"content": "# Executive Summary\n\nThis PRD outlines...", "style": "comprehensive"}'
Update PRD
PATCH /api/projects/{projectId}/prd
PRD Versions
GET /api/projects/{projectId}/prd/versions
POST /api/projects/{projectId}/prd/versions
GET /api/projects/{projectId}/prd/versions/{versionId}
Files
List Files
GET /api/projects/{projectId}/files
Upload File
POST /api/projects/{projectId}/files
Send as multipart/form-data with file field. Max 10MB.
curl -X POST https://app.thig.ai/api/projects/proj_123/files \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@./requirements.pdf"
Delete File
DELETE /api/projects/{projectId}/files/{fileId}
Folders
GET /api/projects/{projectId}/folders
POST /api/projects/{projectId}/folders
PATCH /api/projects/{projectId}/folders/{folderId}
DELETE /api/projects/{projectId}/folders/{folderId}
GET /api/projects/{projectId}/comments
Returns threaded comments with user data.
POST /api/projects/{projectId}/comments
Body:
| Field | Type | Required | Description |
|---|
content | string | Yes | Comment text |
parentId | string | No | Reply to this comment |
section | string | No | Anchor to PRD section |
blockId | string | No | Anchor to specific block |
curl -X POST https://app.thig.ai/api/projects/proj_123/comments \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"content": "Should we add offline support?", "section": "Features"}'
PATCH /api/projects/{projectId}/comments/{commentId}
DELETE /api/projects/{projectId}/comments/{commentId}
Status & Activity
Update Status
PATCH /api/projects/{projectId}/status
Body: { "status": "IN_REVIEW" }
Status History
GET /api/projects/{projectId}/status-history
Activity Feed
GET /api/projects/{projectId}/activity
Sharing & Collaboration
Get Share Settings
GET /api/projects/{projectId}/share
Enable Sharing
POST /api/projects/{projectId}/share
Body:
| Field | Type | Description |
|---|
password | string | Optional password protection |
expiresAt | string | Optional expiration date |
curl -X POST https://app.thig.ai/api/projects/proj_123/share \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"expiresAt": "2026-06-01T00:00:00Z"}'
Revoke Share
DELETE /api/projects/{projectId}/share
Collaborators
GET /api/projects/{projectId}/collaborators
POST /api/projects/{projectId}/collaborators
DELETE /api/projects/{projectId}/collaborators/{collaboratorId}
Stakeholder Views
GET /api/projects/{projectId}/stakeholder-views
POST /api/projects/{projectId}/stakeholder-views
DELETE /api/projects/{projectId}/stakeholder-views/{viewId}
Project Links
GET /api/projects/{projectId}/links
POST /api/projects/{projectId}/links
DELETE /api/projects/{projectId}/links/{linkId}
PRD Score
GET /api/projects/{projectId}/score
POST /api/projects/{projectId}/score
Returns AI-generated quality score with breakdown across clarity, completeness, user focus, technical feasibility, metrics, and risk assessment.
Assignment
PATCH /api/projects/{projectId}/assign
Body: { "assignedToId": "user_123" }