Natural-language description of the project to plan and execute. Min 10, max 5000 characters.
POST
/api/deep-work/start BearerStart Deep Work Project
Create a new Deep Work project and start the AI-powered planning pipeline in the background. Returns the project immediately while research, PRD generation, and task breakdown run asynchronously.
Overview
Creates a new Deep Work project and starts the planning pipeline in the background. The project is returned immediately in PLANNING status. Track progress via WebSocket events (dw_planning_phase, dw_planning_complete).
Request Body
description string research_depth stringHow deeply to research before planning. One of: none, quick, standard, deep.
Response
success booleanWhether the project was created successfully.
project objectThe created project object.
id stringUnique project ID.
title stringProject title (extracted from PRD after planning).
status stringCurrent status — will be
planning initially.created_at stringISO 8601 timestamp.
curl -X POST http://localhost:8000/api/deep-work/start \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "description": "Build a REST API for recipe management with user auth and search", "research_depth": "standard" }'const res = await fetch('http://localhost:8000/api/deep-work/start', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_TOKEN', 'Content-Type': 'application/json', }, body: JSON.stringify({ description: 'Build a REST API for recipe management with user auth and search', research_depth: 'standard', }),});const data = await res.json();import httpx
res = httpx.post( "http://localhost:8000/api/deep-work/start", headers={"Authorization": "Bearer YOUR_TOKEN"}, json={ "description": "Build a REST API for recipe management with user auth and search", "research_depth": "standard", },)data = res.json(){ "success": true, "project": { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "title": "", "description": "Build a REST API for recipe management with user auth and search", "status": "planning", "creator_id": "human", "task_ids": [], "team_agent_ids": [], "tags": [], "created_at": "2024-01-15T14:30:00Z", "updated_at": "2024-01-15T14:30:00Z" }}Was this page helpful?
Request
curl -X POST "http://localhost:8000/api/deep-work/start" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>"const response = await fetch("http://localhost:8000/api/deep-work/start", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer <token>"
},
});
const data = await response.json();
console.log(data);import requests
response = requests.post(
"http://localhost:8000/api/deep-work/start",
headers={'Content-Type':'application/json','Authorization':'Bearer <token>'},
)
print(response.json())package main
import (
"fmt"
"net/http"
"io"
)
func main() {
req, _ := http.NewRequest("POST", "http://localhost:8000/api/deep-work/start", nil)
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer <token>")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}Response
Send a request to see the response
Authorization
Headers
Body
Response