# Create New Project Create a new project in your workspace. This endpoint is only accessible to Owners and Executive Managers. Endpoint: POST /projects Version: 2.0.0 Security: oauth2, apiKey ## Request fields (application/json): - `workspace_id` (integer, required) ID of the workspace (Team.id from owner_user_rel table) Example: 1 - `name` (string, required) Project name Example: "Marketing Campaign Q1" - `start_date` (string) Project start date Example: "2024-01-15" - `deadline` (string) Project deadline (must be after or equal to start_date) Example: "2024-03-31" - `estimation` (number) Estimated hours Example: 120 - `budget` (number) Budget estimation Example: 5000 - `notes` (string) Project notes Example: "Focus on social media channels" - `icon` (string) Project icon identifier Example: "project-icon-1" ## Response 201 fields (application/json): - `success` (boolean) Example: true - `message` (string) Example: "Project created successfully" - `data` (object) - `data.id` (integer, required) Unique identifier for the project Example: 100 - `data.name` (string, required) Name of the project Example: "Marketing Campaign Q1" - `data.owner_id` (integer, required) ID of the workspace owner Example: 10 - `data.start_date` (string,null) Project start date Example: "2024-01-15" - `data.deadline` (string,null) Project deadline Example: "2024-03-31" - `data.estimation` (number,null) Estimated hours Example: 120 - `data.budget_estimation` (number,null) Budget estimation Example: 5000 - `data.notes` (string,null) Project notes Example: "Focus on social media channels" - `data.icon` (string,null) Project icon identifier Example: "project-icon-1" - `data.is_billable` (boolean) Whether the project is billable Example: true - `data.rate` (number,null) Project rate - `data.weekly_hours_limit` (integer,null) Weekly hours limit for the project Example: 168 - `data.screenshots` (string,null) Screenshots visibility setting Example: "blur" - `data.tags` (array) Project tags Example: [{"id":5,"name":"Marketing","color":"#FF5733"}] - `data.tags.id` (integer) Example: 5 - `data.tags.name` (string) Example: "Marketing" - `data.tags.color` (string,null) Example: "#FF5733" - `data.contracts_count` (integer) Number of active contracts (members assigned to the project) Example: 3 - `data.status` (integer) Project status Example: 1 - `data.created_at` (string,null) Timestamp when project was created Example: "2024-01-15T09:00:00Z" - `data.updated_at` (string,null) Timestamp when project was last updated Example: "2024-01-15T09:00:00Z" - `data.deleted_at` (string,null) Timestamp when project was deleted (soft delete) - `meta` (object) - `meta.api_version` (string) Example: "2.0.0" - `meta.timestamp` (string) ## Response 400 fields (application/json): - `success` (boolean, required) - `message` (string, required) Error message describing what went wrong Example: "An error occurred" - `error` (string,null) Optional additional error details Example: "Internal Server Error" - `meta` (object, required) - `meta.api_version` (string) Example: "2.0.0" - `meta.timestamp` (string) ## Response 401 fields (application/json): - `success` (boolean, required) - `message` (string, required) Error message describing what went wrong Example: "An error occurred" - `error` (string,null) Optional additional error details Example: "Internal Server Error" - `meta` (object, required) - `meta.api_version` (string) Example: "2.0.0" - `meta.timestamp` (string) ## Response 403 fields (application/json): - `success` (boolean, required) - `message` (string, required) Error message describing what went wrong Example: "An error occurred" - `error` (string,null) Optional additional error details Example: "Internal Server Error" - `meta` (object, required) - `meta.api_version` (string) Example: "2.0.0" - `meta.timestamp` (string) ## Response 422 fields (application/json): - `success` (boolean, required) - `message` (string, required) Example: "Validation failed" - `errors` (object, required) Object containing validation error messages for each field Example: {"email":["The email field is required.","The email must be a valid email address."],"firstname":["The firstname field is required."],"role":["The selected role is invalid."]} - `meta` (object, required) - `meta.api_version` (string) Example: "2.0.0" - `meta.timestamp` (string) ## Response 500 fields (application/json): - `success` (boolean, required) - `message` (string, required) Error message describing what went wrong Example: "An error occurred" - `error` (string,null) Optional additional error details Example: "Internal Server Error" - `meta` (object, required) - `meta.api_version` (string) Example: "2.0.0" - `meta.timestamp` (string)