Skip to content

Get Projects

GET
/api/projects

Get all projects with comprehensive intelligence metrics.

Retrieves complete list of projects from ChromaDB with full intelligence data including AI learning patterns, knowledge base metrics, analytics, and agent assignments. Supports optional filtering by status and project type.

This endpoint provides the primary project listing for dashboard and project selection interfaces, including real-time analytics data from ProjectManager.

Args: status: Optional status filter (e.g., “active”, “archived”, “completed”) project_type: Optional project type filter (e.g., “fiction”, “general”, “custom”)

Returns: ProjectsResponse: Complete project list with intelligence metrics and summary statistics - projects: List of ProjectItem with full details - summary: Aggregate metrics across all projects - last_update: Timestamp of response generation

Raises: HTTPException: 500 if project retrieval fails

Example Response: json { "projects": [ { "id": "proj_abc123", "name": "My Novel", "type": "fiction", "status": "active", "intelligence": { "assignedAgents": ["HAWKEN", "LAGAN"], "knowledgeBase": {"documents": 127, "connections": 453} }, "analytics": { "timeSpent": 2450.5, "activeDays": 37, "productivityScore": 82.3 } } ], "summary": { "totalProjects": 15, "activeProjects": 12, "totalAgentAssignments": 45 }, "lastUpdate": "2025-01-31T15:45:00Z" }

status
Any of:
string

Filter by project status

project_type
Any of:
string

Filter by project type

Successful Response

ProjectsResponse

Projects endpoint response with intelligence metrics.

Main API response for GET /projects endpoint providing list of all projects with intelligence data, analytics, and summary metrics for dashboard display.

Fields:

  • projects: List of project items with full details (list[ProjectItem])
  • summary: Aggregate summary metrics (ProjectSummaryMetrics object)
  • last_update: Last update timestamp ISO 8601 (string)

JSON Example:

{
  "projects": [
    {
      "id": "proj_abc123",
      "name": "My Novel",
      ...
    }
  ],
  "summary": {
    "totalProjects": 15,
    "activeProjects": 12,
    ...
  },
  "lastUpdate": "2025-01-31T15:45:00Z"
}
object
projects
required
Projects

List of projects

Array<object>
ProjectItem

Complete project details with intelligence and analytics.

Comprehensive project data structure including basic metadata, settings, intelligence data, and analytics metrics. Represents a complete project entity for API responses.

Fields:

  • id: Unique project identifier (string)
  • name: Project name (string)
  • description: Project description (string)
  • type: Project type (string, e.g., “fiction”, “general”)
  • status: Project status (string, e.g., “active”, “archived”)
  • created_at: Creation timestamp ISO 8601 (string)
  • modified_at: Last modification timestamp ISO 8601 (string)
  • owner: Project owner user ID (string)
  • collaborators: List of collaborator user IDs (list[str])
  • settings: Project configuration settings (ProjectSettings object)
  • intelligence: Project intelligence data (ProjectIntelligence object)
  • analytics: Project analytics metrics (ProjectAnalytics object)

JSON Example:

{
  "id": "proj_abc123",
  "name": "My Novel",
  "description": "Main writing project",
  "type": "fiction",
  "status": "active",
  "createdAt": "2025-01-15T10:00:00Z",
  "modifiedAt": "2025-01-31T15:30:00Z",
  "owner": "user_001",
  "collaborators": ["user_002", "user_003"],
  "settings": { ... },
  "intelligence": { ... },
  "analytics": { ... }
}
object
id
required
Id

Unique project identifier

string
name
required
Name

Project name

string
description
required
Description

Project description

string
type
required
Type

Project type

string
status
required
Status

Project status

string
createdAt
required
Createdat

Creation timestamp (ISO 8601)

string
modifiedAt
required
Modifiedat

Last modification timestamp (ISO 8601)

string
owner
required
Owner

Project owner user ID

string
collaborators
Collaborators

Collaborator user IDs

Array<string>
settings
required
ProjectSettings

Project settings

object
visibility
required
Visibility

Project visibility level

string
autoSave
required
Autosave

Enable automatic saving

boolean
contextPreservation
required
Contextpreservation

Enable context preservation

boolean
aiAssistance
required
Aiassistance

Enable AI assistance

boolean
notifications
required
Notifications

Enable notifications

boolean
integrations
required
ProjectIntegrations

Integration settings

object
mime
required
Mime

Enable MIME integration

boolean
research
required
Research

Enable research hub integration

boolean
analytics
required
Analytics

Enable analytics integration

boolean
lorekeeper
Any of:
LorekeeperProjectConfig

Per-project Lorekeeper configuration.

Defines project-specific rules for lore consistency validation including prohibited elements, naming conventions, and cultural context. Read by the lore validator at analysis time via ProjectConfig.lore_rules.

Fields:

  • prohibited_elements: Elements that should not appear in this project’s writing
  • naming_patterns: Descriptions of naming conventions (e.g. “Yoruba-inspired”)
  • cultural_context: Description of the project’s cultural/thematic setting
  • strict_naming: Whether to enforce naming convention checks
object
prohibitedElements
Prohibitedelements

Prohibited story elements

Array<string>
namingPatterns
Namingpatterns

Naming convention descriptions

Array<string>
culturalContext
Culturalcontext

Cultural/thematic setting

string
""
strictNaming
Strictnaming

Enforce naming conventions

boolean
publishing
Any of:
PublishingReadinessConfig

Per-project publishing readiness weight configuration.

All fields are optional. Absent fields fall back to the system defaults. Weights are normalised to sum to 1.0 at calculation time.

object
weightProseguard
Any of:
number
<= 1
weightLorekeeper
Any of:
number
<= 1
weightMlHealth
Any of:
number
<= 1
weightEditCompletion
Any of:
number
<= 1
readyThreshold
Any of:
number
<= 100
documentsDirectory
Documentsdirectory

Per-project document save directory. Empty = use global default.

string
""
color
Any of:
string
icon
Any of:
string
activeAgents
Activeagents

Divine agents assigned to this project

Array<string>
aiPersonality
Aipersonality

Per-project AI personality/tone prompt

string
""
knowledgeFilter
Knowledgefilter

Lore category names scoping per-project lore search

Array<string>
genres
Genres

Genre overlay drivers for the Authored Library (M9). Empty list means universal voicing only. Values must be one of the 12 SUPPORTED_GENRES the authored-library layer recognises.

Array<string>
agentConfig
Any of:
ProjectAgentConfig

Per-project LLM tuning knobs stored inside ProjectSettings.

Declared as a typed Pydantic sub-model (rather than a raw dict) so IshvanaBaseModel’s alias generator emits camelCase over the wire — without that, the frontend sees max_tokens / search_results_count while its mapper expects maxTokens / searchResultsCount.

object
temperature
Any of:
number
<= 2
maxTokens
Any of:
integer
>= 1
searchResultsCount
Any of:
integer
>= 1
agentSystemPrompts
Agentsystemprompts

Per-agent base system prompt overrides keyed by lowercase agent id (e.g. ‘lagan’). Empty dict / missing key means the agent uses its hardcoded default identity text.

object
key
additional properties
string
intelligence
required
ProjectIntelligence

Project intelligence

object
assignedAgents
Assignedagents

Assigned divine agents

Array<string>
contextData

Project context data

object
key
additional properties
any
learningPatterns
required
LearningPatterns

AI learning patterns

object
userBehavior

User behavior patterns

object
key
additional properties
any
contentPreferences

Content preferences

object
key
additional properties
any
workflowOptimizations

Workflow optimization patterns

object
key
additional properties
any
knowledgeBase
required
KnowledgeBaseMetrics

Knowledge base metrics

object
documents
required
Documents

Number of documents

integer
connections
required
Connections

Number of connections

integer
insights
required
Insights

AI-generated insights

integer
analytics
required
ProjectAnalytics

Project analytics

object
timeSpent
required
Timespent

Total time spent in minutes

number
activeDays
required
Activedays

Number of active days

integer
completionRate
required
Completionrate

Completion percentage

number
<= 100
collaboratorActivity
Collaboratoractivity

Collaborator activity scores

object
key
additional properties
number
agentInteractions
required
Agentinteractions

Agent interactions count

integer
productivityScore
required
Productivityscore

Productivity score

number
<= 100
trends
required
AnalyticsTrends

Analytics trends

object
daily
Daily

Daily trend data

Array<number>
weekly
Weekly

Weekly trend data

Array<number>
monthly
Monthly

Monthly trend data

Array<number>
mechanicsEnabled
Mechanicsenabled

Whether TTRPG mechanics system is enabled

boolean
summary
required
ProjectSummaryMetrics

Summary metrics

object
totalProjects
required
Totalprojects

Total projects count

integer
activeProjects
required
Activeprojects

Active projects count

integer
completedProjects
required
Completedprojects

Completed projects count

integer
totalCollaborators
required
Totalcollaborators

Total collaborators count

integer
totalAgentAssignments
required
Totalagentassignments

Total agent assignments

integer
averageCompletionRate
required
Averagecompletionrate

Average completion rate

number
<= 100
averageProductivityScore
required
Averageproductivityscore

Average productivity score

number
<= 100
lastUpdate
required
Lastupdate

Last update timestamp (ISO 8601)

string

Validation Error

HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object