---
title: "Create project"
method: POST
path: "/v2/projects"
tags: ["Projects"]
---

# Create project

`POST /v2/projects`

## Request

- Base URL: `https://api.village.ai`
- URL: `https://api.village.ai/v2/projects`
- Auth: HTTP bearer

Create a new project for the authenticated user in the active workspace. Requires `title` and `goal` (both non-empty strings). First step of the project-planning flow (create_project → get_planner_skills → get_email_template → submit_plan) that the `plan_a_project` prompt orchestrates. Uses the caller's active workspace/team, so ensure the intended workspace is selected before calling.

## Request body

- CreateProjectRequest: Request to create a new project
  - `title` string, required
  - `goal` string, required

## Response `200`

Project created successfully

- object
  - `data` Project, required: A Village project
    - `id` string, required: Encrypted project identifier
    - `title` string, required
    - `goal` string, required
    - `project_type` string, nullable, required
    - `sequence_id` string, nullable, required
    - `pipeline_stages` PipelineStage[], required
      - `step` integer, required
      - `name` string, required
      - `description` string, required
      - `target` integer
      - `count` integer
    - `chatbot_messages` unknown
    - `ai_planner_output` unknown
    - `planner_searches_used` integer, required
    - `settings` unknown
    - `last_planner_run_at` string, date-time, nullable, required
    - `attachments` unknown
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `metadata` object, required
    - `request_id` string, required

## Other responses

- `400`: Bad request - invalid parameters
- `401`: Unauthorized - missing or invalid authentication

---

[API](https://skmtc.dev/village/apis/village-v2-api.md) - [All operations](https://skmtc.dev/village/apis/village-v2-api/llms.txt) - [OpenAPI document](https://skmtc.dev/village/apis/village-v2-api/revisions/aebe21a1a544?raw)
