POST /api/deep-work/start Bearer

Start 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

Natural-language description of the project to plan and execute. Min 10, max 5000 characters.

research_depth string

How deeply to research before planning. One of: none, quick, standard, deep.

Response

success boolean

Whether the project was created successfully.

project object

The created project object.

id string
Unique project ID.
title string
Project title (extracted from PRD after planning).
status string
Current status — will be planning initially.
created_at string
ISO 8601 timestamp.

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