Create a new project entity.
Time estimation modes — Projects support three mutually exclusive ways to estimate time (set via the Profitability tab in the UI):
estimated_time.estimated_by_position: true and provide users_positions with estimated_time per position.estimation_by_categories: 1 (or true) and provide categories with estimated_time per category.When using income_type: "hourly_rate", also set estimated_by_hourly_rates: true and assign a ratecard via ratecard_id.
Note: These fields are unrelated to the Project Estimates endpoints (
/projects/{project_id}/project_estimate), which manage budget line items (title, cost, fee).
Documentation Index
Fetch the complete documentation index at: https://developers.projectcor.com/llms.txt
Use this file to discover all available pages before exploring further.
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Project Name
Client ID
Project Template ID
Project description or brief
Project start date (YYYY-MM-DD)
Project end date (YYYY-MM-DD)
Project Manager User ID
Brand ID
Product ID
Estimated hours for the project
Whether the project is billable
Project status
Currency ID
Project evaluation date (YYYY-MM-DD)
Estimated monetary value for the project
Fee ID
Contract ID
Project deliverables description
Work order number or code
Income type for the project
fee, one_time, hourly_rate, contract Whether the project is archived
When true, time estimation is split per position via the users_positions array. Mutually exclusive with estimation_by_categories. When both are false (or omitted), the project uses a single total estimated_time value.
When truthy (true or 1), time estimation is split per category via the categories array. Mutually exclusive with estimated_by_position.
When true, the project income is calculated from hourly rates using the assigned ratecard (ratecard_id / user_positions_header_id). Requires income_type to be "hourly_rate".
Ratecard ID to assign to the project. This is an alias for user_positions_header_id — if both are sent, ratecard_id takes precedence. Use Get Ratecards (GET /ratecards) to list available ratecards.
Positions involved in the project. When estimated_by_position is true, each item should include estimated_time (hours). When false, send only the position id to associate positions without per-position hour estimates.
Categories assigned to the project. When estimation_by_categories is truthy, each item should include estimated_time (hours). When falsy, send only the category id.
User IDs to add as project collaborators.
Label IDs to assign to the project. Maximum 50 labels.
50Exchange rate to apply when the project currency differs from the company base currency.
Original estimated amount in the selected currency before exchange conversion.
Project created successfully
Unique project identifier
Project name
Project brief/description
Associated client ID
Project health indicator: 1 (on track), 2 (at risk), 3 (delayed), 4 (critical)
1, 2, 3, 4 Project status
active, finished, suspended Project start date
Project end date
Estimated hours for the project
Hours already logged
Current profitability percentage
Estimated profitability percentage
Whether the project is archived
Whether the project is billable
Project billing type
fee, one_time, hourly_rate, contract Project Manager user ID
User ID who created the project
Company ID
Project template ID used
Associated brand ID
Associated product ID
Total estimated budget
Creation timestamp
Last update timestamp
IDs of labels assigned to this project. Resolve names and styling via Get Categories and Labels with model=project (GET /categories/labels-model?model=project), which returns label objects including the same id values.
Associated client object
Project Manager details
Whether time estimation is split per position
Whether time estimation is split per category
Whether income is calculated from hourly rates using a ratecard
ID of the ratecard assigned to this project
Associated fee ID
Associated contract ID
Positions assigned to the project with their estimated and logged hours. Only present when fetching a single project (GET /projects/{project_id}).
Categories assigned to the project with their estimated and logged hours. Only present when fetching a single project.
Ratecard assigned to this project. Only present when fetching a single project.