---
title: "Start Plan"
method: POST
path: "/api/projects/plan"
tags: ["plan"]
---

# Start Plan

`POST /api/projects/plan`

Start planning for a project.

This endpoint:
1. If image attachments are provided, augments them with AI-generated names/descriptions
2. If project_id is provided, saves augmented assets and scope data to the database
3. Streams plan tokens while generating
4. Emits completion with the full plan and augmented assets

The frontend should connect to Socket.IO and join the plan session room
before calling this endpoint to receive streaming updates.

Args:
    prompt: User's project prompt
    session_id: Session ID for Socket.IO room (client-generated)
    style: Cinematic visual style text for planning context
    motion_graphics_style: Motion graphics style text for planning context
    project_id: Optional project ID for saving to database
    title: Optional project title (from scoping)
    aspect_ratio: Optional aspect ratio (from scoping)
    length: Optional length tier (1, 2, 3)
    voiceover: Optional voiceover flag ('true'/'false')
    files: Optional file attachments (images will be augmented)
    current_user: Authenticated user info
    db: Database session
    
Returns:
    PlanResponse with the plan text and augmented assets

## Response `200`

Successful Response

- PlanResponse — Response model for planning endpoint.
  - `success` boolean, required
  - `session_id` string, required
  - `plan` string, nullable
  - `augmented_assets` AugmentedAsset[], nullable
    - `name` string, required
    - `description` string, required
    - `image_url` string, required
  - `error` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/latted/apis/motion-graphics-designer-api.md) · [All operations](https://skmtc.dev/latted/apis/motion-graphics-designer-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/latted/motion-graphics-designer-api/revisions/36d149b525df/schema)
