Skip to main content

Projects API

List Projects

GET /api/projects
Query Parameters:
ParameterTypeDescription
searchstringFilter by project name
statusstringFilter by status (DRAFT, IN_PROGRESS, etc.)
templateIdstringFilter by template
prioritystringFilter by priority
sortBystringSort field
sortOrderstringasc or desc
assignedToMebooleanOnly 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

POST /api/projects
Body:
FieldTypeRequiredDescription
namestringYesProject name
descriptionstringNoProject description
templateIdstringNoTemplate to use
statusstringNoInitial status (default: DRAFT)
prioritystringNoPriority 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:
FieldTypeRequiredDescription
namestringYesProject name
templateIdstringNoTemplate to use
useCasestringNoUse case description

Project from Marketplace

POST /api/projects/from-marketplace
Body:
FieldTypeRequiredDescription
templateIdstringYesMarketplace template ID
namestringNoCustom project name

PRD Documents

Get PRD

GET /api/projects/{projectId}/prd

Create/Replace PRD

POST /api/projects/{projectId}/prd
Body:
FieldTypeRequiredDescription
contentstringYesPRD content (markdown/HTML)
stylestringNoPRD 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}

Comments

List Comments

GET /api/projects/{projectId}/comments
Returns threaded comments with user data.

Create Comment

POST /api/projects/{projectId}/comments
Body:
FieldTypeRequiredDescription
contentstringYesComment text
parentIdstringNoReply to this comment
sectionstringNoAnchor to PRD section
blockIdstringNoAnchor 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"}'

Update Comment

PATCH /api/projects/{projectId}/comments/{commentId}

Delete Comment

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:
FieldTypeDescription
passwordstringOptional password protection
expiresAtstringOptional 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}

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" }