# Create a project

Source: https://www.supervisible.com/developers/projects/post-projects

POST /projects



## POST /projects

Create project metadata and optional current billing terms atomically. Fixed-price amount is a contract total; retainer amount is monthly; time-materials requires hourlyRate and may include a budget amount. Explicit non-billable accepts neither. No billing fields means unspecified billing intent. Billing permissions are checked separately from project creation. Currency is the application's USD default; editable currency, invoices, payment schedules and milestones are unsupported.

Base URL: https://app.supervisible.com/api/v1

Required scope: write:projects

## Operation contract

The definition below includes parameters, request bodies, response schemas, examples and authentication requirements.

```json
{
  "summary": "Create a project",
  "description": "Create project metadata and optional current billing terms atomically. Fixed-price amount is a contract total; retainer amount is monthly; time-materials requires hourlyRate and may include a budget amount. Explicit non-billable accepts neither. No billing fields means unspecified billing intent. Billing permissions are checked separately from project creation. Currency is the application's USD default; editable currency, invoices, payment schedules and milestones are unsupported.",
  "tags": [
    "projects"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "x-required-scope": "write:projects",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255
            },
            "objective": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2000
                },
                {
                  "type": "null"
                }
              ]
            },
            "startDate": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            "endDate": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            "status": {
              "type": "string",
              "enum": [
                "draft",
                "planned",
                "active",
                "completed",
                "cancelled"
              ]
            },
            "priority": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "high",
                    "medium",
                    "low"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "flags": {
              "maxItems": 4,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "on_track",
                  "needs_attention",
                  "understaffed",
                  "off_track"
                ]
              }
            },
            "billingType": {
              "type": "string",
              "enum": [
                "fixed_price",
                "retainer",
                "time_materials",
                "non_billable"
              ]
            },
            "amount": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 99999999999.99
            },
            "hourlyRate": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 99999999999.99
            },
            "clientId": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "projectManagerId": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "accountManagerId": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "name",
            "startDate",
            "endDate",
            "clientId"
          ],
          "additionalProperties": false,
          "example": {
            "name": "CRM Sync Project",
            "clientId": "019cb675-c4d6-7e90-8806-25e5145c3a06",
            "startDate": "2026-01-01",
            "endDate": "2026-03-01",
            "status": "planned"
          }
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful response",
      "content": {
        "application/json": {
          "example": {
            "data": {
              "name": "CRM Sync Project",
              "clientId": "019cb675-c4d6-7e90-8806-25e5145c3a06",
              "startDate": "2026-01-01",
              "endDate": "2026-03-01",
              "status": "planned"
            }
          }
        }
      }
    },
    "400": {
      "description": "Invalid request"
    },
    "401": {
      "description": "Unauthorized"
    },
    "403": {
      "description": "Missing required scope or current member permission"
    },
    "404": {
      "description": "Not found"
    },
    "409": {
      "description": "Conflict; refresh current state and preview again"
    },
    "429": {
      "description": "Rate limited; honor Retry-After"
    }
  },
  "parameters": []
}
```

## Referenced definitions

```json
{
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "API Key"
      }
    }
  }
}
```

[Complete OpenAPI specification](https://www.supervisible.com/openapi/public-api-v1.json)
