---
title: "Creates a new project in Avaza, linked to a customer company. Optionally creates a new company if CompanyName is provided and not matched."
method: POST
path: "/api/Project"
tags: ["Project"]
---

# Creates a new project in Avaza, linked to a customer company. Optionally creates a new company if CompanyName is provided and not matched.

`POST /api/Project`

## Request body

- NewProjectModel — Request model for creating a new project. Requires a project title and company association.
  - `CompanyIDFK` integer — An ID of a company in Avaza to create the Project under. You must provide either a CompanyID, or a CompanyName
  - `CompanyName` string — The name for a Company to create the project under. Will create company unless it matches an existing company name
  - `CurrencyCode` string — The ISO 3 letter currency code to use when creating a new Company. If not provided, the account's default currency will be used.
  - `ProjectTitle` string, required — The title of the new project. (255 characters max)
  - `ProjectCode` string — Used when Manual Project Codes are enabled
  - `ProjectNotes` string — Any descriptive notes about the project. (2000 characters max)
  - `TimesheetApprovalRequiredbyDefault` boolean — Whether timesheet approval should be required by default for newly added project members.
  - `PopulateDefaultProjectMembers` boolean — Defaults to true.
  - `isTaskRequiredOnTimesheet` boolean — Whether users must select a task when logging time to this project.
  - `StartDate` string, date-time — Planned start date for the project.
  - `EndDate` string, date-time — Planned end date for the project.
  - `BudgetAmount` number, double — Monetary budget allocated to the project.
  - `BudgetHours` number, double — Hours budget allocated to the project.
  - `ProjectStatusCode` string — Project status. Values: Active, Completed, Pending, Cancelled.
  - `ProjectCategoryIDFK` integer — The project category ID, if categorised.
  - `ProjectTags` ProjectTagInput[] — Tags to assign to the new project. Object array; each item has a Name. Names are matched case-insensitively against the account tag pool and created on first use. Omit or null to create the project with no tags. (255 characters max per name)
    - `Name` string — Tag name. (255 characters max)
  - `SendWebhooks` boolean — If true, fires the project_created webhook event to any subscribed endpoints. Defaults to false to preserve existing integration behaviour.

## Response `200`

Returns the created project with assigned Project ID.

- ProjectDetails — Full project details including sections, team members with rates/permissions, and project tags.
  - `ProjectID` integer — Unique identifier for the project.
  - `Title` string — Project title/name.
  - `ProjectCode` string — Short reference code for the project.
  - `Notes` string — Project description or notes.
  - `CompanyName` string — Name of the customer company this project belongs to.
  - `CompanyIDFK` integer — The customer company ID this project is linked to.
  - `ProjectOwnerUserIDFK` integer — User ID of the project owner/manager.
  - `ProjectStatusCode` string — Project status code. Per-account configurable. Default codes (NotStarted, InProgress, Complete, OnHold) are seeded for every account; admins may add custom codes via the Project Statuses settings panel. Codes are unique within an account and stable once created.
  - `ProjectStatusName` string — Display name of the project status (e.g. "In Progress", "At Risk").
  - `ProjectStatusColor` string — Hex colour assigned to the project status (e.g. "#F0AD4E").
  - `ProjectStatusIsNotStarted` boolean — True if this is the account's default-for-new-projects status (one row per account).
  - `ProjectStatusIsComplete` boolean — True if this status marks the project as complete (one row per account).
  - `isArchived` boolean — Whether the project is archived. Archived projects are hidden from default views.
  - `ProjectBillableTypeCode` string — Possible values: CategoryHourly, NoRate, NotBillable, PersonHourly, ProjectHourly
  - `ProjectBudgetTypeCode` string — Possible Values: CategoryHours, NoBudget, PersonHours, ProjectFees, ProjectHours
  - `BudgetAmount` number, double — Monetary budget allocated to the project.
  - `BudgetHours` number, double — Hours budget allocated to the project.
  - `ProjectHourlyRate` number, double — The project-level hourly rate (when billing type is ProjectHourly).
  - `ProjectCategoryIDFK` integer — The project category ID, if categorised.
  - `ProjectCategoryName` string — Name of the project category.
  - `isTaskRequiredOnTimesheet` boolean — Whether users must select a task when logging time to this project.
  - `DefaultAccountTaskTypeIDFK` integer — The default task type ID used for new tasks in this project.
  - `DefaultAccountTaskTypeName` string — Name of the default task type.
  - `ProjectCategoryColor` string — Html Hex Color Code starting with #
  - `StartDate` string, date-time — Planned start date for the project.
  - `EndDate` string, date-time — Planned end date for the project.
  - `Sections` ProjectSectionDetails[] — List of sections (task groups) within this project.
    - `SectionID` integer — Unique identifier for the section.
    - `Title` string — Section title/name.
    - `StartDate` string, date-time — Planned start date for the section.
    - `EndDate` string, date-time — Planned end date for the section.
    - `DisplayOrder` integer — Sort order position for display.
  - `Members` ProjectMemberDetails[] — List of team members assigned to this project.
    - `UserIDFK` integer — The user ID of the project member.
    - `ProjectIDFK` integer — The project this membership belongs to.
    - `Firstname` string — Member's first name.
    - `Lastname` string — Member's last name.
    - `Fullname` string — Member's full display name.
    - `Email` string — Member's email address.
    - `CostAmount` number, double — Cost rate per hour for this member on this project.
    - `RateAmount` number, double — Bill rate per hour for this member on this project.
    - `BudgetAmount` number, double — Budget amount allocated to this member on this project.
    - `isMemberDisabled` boolean — Whether this member's access to the project is disabled.
    - `isTimesheetAllowed` boolean — Whether this member can log timesheets to this project.
    - `isTimesheetApprover` boolean — Whether this member can approve timesheets on this project.
    - `isTimesheetApprovalRequired` boolean — Whether this member's timesheets require approval.
    - `canCreateTasks` boolean — Whether this member can create tasks in this project.
    - `canDeleteTasks` boolean — Whether this member can delete tasks in this project.
    - `canCommentOnTasks` boolean — Whether this member can comment on tasks in this project.
    - `canUpdateTasks` boolean — Whether this member can update tasks in this project.
  - `ProjectTags` ProjectTagItem[] — List of tags applied to this project.
    - `ProjectTagID` integer — Unique identifier for the project tag.
    - `Name` string — Tag name.
  - `DateCreated` string, date-time — Date the project was created.
  - `DateUpdated` string, date-time — Date the project was last updated.
  - `ViewProjectURL` string — URL to view this project in the Avaza web application.

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/avaza/apis/avaza-api-documentation.md) · [All operations](https://skmtc.net/avaza/apis/avaza-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/avaza/avaza-api-documentation/versions/1eeadf750514/schema)
