---
title: "Get project by Id"
method: GET
path: "/1.0/projects/{projectId}"
tags: ["Projects"]
---

# Get project by Id

`GET /1.0/projects/{projectId}`

## Path parameters

- `projectId` integer, required

## Query parameters

- `includeFields` string[]
- `includeAllFields` boolean

## Response `200`

The requested action was successfully executed.

- ProjectPublicAPIResponseEntity
  - `projectId` integer — The project's unique, system-generated identifier, which can be used to identify the project globally.
  - `projectName` string — The name of the project.
  - `startDate` string — On this date the project's execution officially begins. If sources (templates) are mentioned in the request, the start date is required. For projects without any defined sources, it may be empty. The format for the start date is _YYYY-MM-DD_.
  - `dueDate` string — The day on which the project's execution is planned to be completed. The due date is not required and can be left blank. If sources (templates) are included as part of the project creation, the project's due date will be calculated depending on the duration of the specified sources. For projects where both startDate and dueDate are specified, the latter must be on or after the given startDate. The format for the due date is _YYYY-MM-DD_.
  - `createdAt` integer — The time when the project was created. The referenced time will be in epoch millis.
  - `updatedAt` integer — The time when the project was updated. Any changes that's related to the project are captured and specified here in epoch millis.
  - `owner` ProjectOwnerUserPublicResponse — The project owner is the team member who has access to everything in the project and is in charge of managing it. Any team member can be assigned as the project owner during the project creation or can be modified later. In the absence of a selection, the project owner is set to the team member who created the project by default.
    - `emailId` string — The project owner's email identifier.
    - `userId` integer — The unique identifier for project owner.
    - `firstName` string — The first name of the project owner.
    - `lastName` string — The last name of the project owner.
  - `teamMembers` ProjectResponseMembersResponse — The teamMembers field can be used to specify the project members, customers and customerChampion. Once the project is created, an invite will be emailed to all the teamMembers specified.
    - `members` ProjectVendorUserPublicAPI[] — The project team members.
      - `emailId` string — The team members email identifier.
      - `userId` integer — The unique identifier for the user.
      - `firstName` string — The first name of the user.
      - `lastName` string — The last name of the user.
    - `customers` ProjectCustomerUserPublicAPI[] — The project customers.
      - `emailId` string — The customers' email identifier.
      - `userId` integer — The unique identifier for the customer.
      - `firstName` string — The first name of the customer.
      - `lastName` string — The last name of the customer.
    - `customerChampion` ProjectCustomerChampionUserPublicAPI — The Customer champion is the team member in charge of project management and representing the customer's team.
      - `emailId` string — The customer champion's email identifier
      - `userId` integer — The unique identifier for the customer champion.
      - `firstName` string — The first name of the customer champion.
      - `lastName` string — The last name of the customer champion.
  - `status` ProjectStatusPublicResponse — The project status value along with the label will be present here.
    - `value` integer — The value of the status field is the unique identifier for status fields.
    - `label` string — The label is the name of the status.
  - `fields` ProjectFieldPublicResponseAPIEntity[] — Fields lists the custom project fields whose values were provided during project creation or updated later. Refer these [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know more about different types of custom fields returned in response.
    - `fieldId` integer — The field identifier
    - `fieldLabel` string — The `fieldLabel` is the name of the custom project field
    - `fieldValue` string — The `fieldValue` is the value provided while creation or updating. The fieldValue can be a string, an integer, or an number array and it must match the type of the field. Refer [examples](https://developer.rocketlane.com/v1.0/docs/custom-fields#examples-of-requests-and-responses-for-assigning-custom-field-values) to know how each `field_type` is associated with project.
    - `fieldValueLabel` string — The `fieldValueLabel` is the value provided while creation or updating in a String format.
  - `customer` CustomerCompanyProjectPublicResponse — Company details for the invoice
    - `companyId` integer — The unique identifier for the customer company.
    - `companyName` string — The customer company name.
    - `companyUrl` string — The URL of the client's website. Unless explicitly stated, the value for this field can be left blank.
  - `partnerCompanies` ProjectPartnerCompanyPublicAPIResponseEntity[] — The `partners` field contains list of partner companies.
    - `companyId` integer — The unique identifier for the partner company.
    - `companyName` string — The name of the partner company.
    - `companyUrl` string — The URL of the partner company's website. Unless explicitly stated, the value for this field can be left blank.
  - `archived` boolean — The field `archived` denotes whether the project is archived or not. If the project is archived, there's an option to un-archive the project.
  - `visibility` 'EVERYONE' | 'MEMBERS' | 'GROUP' — Set visibility parameters to restrict who can see your project. There are two options: `EVERYONE` and `MEMBERS`. Selecting `EVERYONE` allows all team members from your firm to view the project, while selecting `MEMBER` restricts access to only those team members who have been specifically invited.
  - `createdBy` ProjectPublicCreatedByResponse — The team member who created the project.
    - `emailId` string — The team members email identifier.
    - `userId` integer — The unique identifier for the user.
    - `firstName` string — The first name of the user.
    - `lastName` string — The last name of the user.
  - `updatedBy` ProjectPublicUpdatedByResponse — The team member who updated the project
    - `emailId` string — The team members email identifier.
    - `userId` integer — The unique identifier for the user.
    - `firstName` string — The first name of the user.
    - `lastName` string — The last name of the user.
  - `currency` 'AFN' | 'ALL' | 'DZD' | 'ARS' | 'AMD' | 'AUD' | 'AZN' | 'BHD' | 'BDT' | 'BYN' | 'BZD' | 'BOB' | 'BAM' | 'BWP' | 'BRL' | 'GBP' | 'BND' | 'BGN' | 'BIF' | 'KHR' | 'CAD' | 'CVE' | 'XAF' | 'CLP' | 'CNY' | 'COP' | 'KMF' | 'CDF' | 'CRC' | 'HRK' | 'CZK' | 'DKK' | 'DJF' | 'DOP' | 'EGP' | 'ERN' | 'EEK' | 'ETB' | 'EUR' | 'GEL' | 'GHS' | 'GTQ' | 'GNF' | 'HNL' | 'HKD' | 'HUF' | 'ISK' | 'INR' | 'IDR' | 'IRR' | 'IQD' | 'ILS' | 'JMD' | 'JPY' | 'JOD' | 'KZT' | 'KES' | 'KWD' | 'LVL' | 'LBP' | 'LYD' | 'LTL' | 'MOP' | 'MKD' | 'MGA' | 'MYR' | 'MUR' | 'MXN' | 'MDL' | 'MAD' | 'MZN' | 'MMK' | 'NAD' | 'NPR' | 'TWD' | 'NZD' | 'NIO' | 'NGN' | 'NOK' | 'OMR' | 'PKR' | 'PAB' | 'PYG' | 'PEN' | 'PHP' | 'PLN' | 'QAR' | 'RON' | 'RUB' | 'RWF' | 'SAR' | 'RSD' | 'SGD' | 'SOS' | 'ZAR' | 'KRW' | 'LKR' | 'SDG' | 'SEK' | 'CHF' | 'SYP' | 'TZS' | 'THB' | 'TOP' | 'TTD' | 'TND' | 'TRY' | 'USD' | 'UGX' | 'UAH' | 'AED' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'XOF' | 'YER' | 'ZMK' | 'ZWL' — The currency for handling the project’s financials. You can only specify a currency for a project that is added at the account level. Please note that the project’s currency cannot to changed once set.
  - `financials` ProjectFinancialsPublicResponse — This section addresses the financial aspects of the projects and the associated fields.
    - `contractType` 'FIXED_FEE' | 'TIME_AND_MATERIAL' | 'SUBSCRIPTION' | 'NON_BILLABLE' — The contract type or the billing method for the project financials.
    - `revenueRecognitionType` string — Method used for revenue recognition. Options include: TrackedHours/BudgetHours – Revenue is recognized based on the proportion of tracked hours to the budgeted hours. TrackedHours/AllocatedHours – Revenue is recognized based on the proportion of tracked hours to the allocated hours
    - `fixedFeeContract` FixedFeeFinancialsPublicResponse — This section addresses the financial aspects of the Fixed Fee contract type projects and its associated fields.
      - `fixedFee` number, double — The project fee for the Fixed fee contract type project.
    - `timeAndMaterialContract` TimeAndMaterialFinancialsPublicResponse — This section addresses the financial aspects of the Time & Material contract type projects and its associated fields.
      - `rateCard` ProjectRateCardPublicResponse — Rate cards allow you to standardise bill rates to be charged depending on the roles of the project's resources. If the rate card chosen does not include the bill rates for the project's currency, then the project will not have a rate card set.
        - `rateCardId` integer — The `rateCardId` is the unique identifier of the rate card
        - `rateCardName` string — The `rateCardName` is the name of the rate card
      - `projectBudget` number, double — The project budget allocated for the Time & Material contract type project.
    - `subscriptionContract` SubscriptionFinancialsPublicResponse — This section addresses the financial aspects of the Subscription contract type projects and its associated fields.
      - `subscriptionFrequency` 'MONTHLY' | 'QUARTERLY' | 'YEARLY' | 'HALF_YEARLY' — Refers to the interval at which a subscription renews or takes place, such as on a monthly, quarterly, or yearly basis.
      - `subscriptionStartDate` string — The subscription start date is the date when the subscription interval begins. The format for the subscription start date is YYYY-MM-DD.
      - `periodMinutes` integer — Period minutes refer to the budgeted minutes for each subscription period.
      - `periodBudget` number, double — Period budget represents the fixed budget of every subscription period.
      - `noOfPeriods` integer — Represents the number of periods in a subscription.
    - `metrics` ProjectFinancialsMetrics — The metrics used to evaluate and assess the financial aspects of projects.
      - `actualRevenue` number, double — The revenue you are making on the project. For a time and material project, `Actual Revenue = Sum of all (Tracked time * Bill rates for the roles)`. For a fixed fee project, this is the recognised revenue for the project.
      - `estimatedRevenue` number, double — This is the potential revenue you can generate from the project based on your resource allocation plan.
      - `actualCost` number, double — The actual cost incurred on the project. `Actual Cost = Sum of all (Tracked time * Cost rates for the team members)`.
      - `estimatedCost` number, double — This is the potential cost you will incur on the project based on your resource allocation plan. `Estimated Cost = Sum of all (Allocated time * Cost rates for the team members)`.
      - `actualProfit` number, double — The actual profit you are making on the project. `Profit = Revenue - Cost`.
      - `estimatedProfit` number, double — This is the potential profit you will make on the project. `Estimated Profit = Estimated Revenue - Estimated Cost`.
      - `actualProfitMargin` number, double — The actual profit margin for the project. Tracking the profit margin helps you monitor the profitability of the project throughout its duration. `Margin (%) = Profit / Revenue * 100`.
      - `estimatedProfitMargin` number, double — This is the potential margin you will make on the project. `Estimated Profit Margin (%) = Estimated Profit / Estimated Revenue * 100`.
      - `estimateAtCompletion` number, double — EAC (Estimate at Completion) predicts the total number of hours that would be consumed at project completion.
      - `estimationToCompletionInHours` number, double — ETC (Estimate to Complete) refers to number of hours required to complete a project based on the resource allocation plan.
  - `startDateActual` string — The date on which the project status is changed to in progress. The status can be either the default said status (in progress) or custom statuses that are categorised as in progress. It can be null for projects that have not yet begun. The format for the actual start date is _YYYY-MM-DD_.
  - `dueDateActual` string — The date when project status gets changed to completed. The status can be either the default provided status (completed) or a custom status that is labelled under the Completed category. It will be null if the project is yet to be completed. The format for the actual due date is _YYYY-MM-DD_.
  - `annualizedRecurringRevenue` integer — Indicates the value of the recurring revenue of the customer's subscriptions for a single calendar year.
  - `projectFee` integer — The total fee that is charged for the project.
  - `budgetedHours` number, double — Budgeted hours represent the total hours allocated for project execution. This value can be edited at any point throughout the project's duration. You can enter the budgeted hours in decimal form, including both hours and minutes, with up to two decimal places of precision. Eg: 1.65 hrs = 1h 39m(1.65h * 60m = 99m).
  - `percentageBudgetedHoursConsumed` number, double — The budgeted hours consumed percentage.
  - `percentageBudgetConsumed` number, double — The budget consumed percentage.
  - `trackedHours` integer — The number of hours tracked as part of `submitted` time-entries are captured here and computed in hours.
  - `trackedMinutes` number, double — The number of minutes tracked as part of `submitted` time-entries are captured here and computed in minutes.
  - `allocatedHours` integer — If the project has `allocations` against say users or placeholders, it is collected and computed in hours.
  - `allocatedMinutes` number, double — If the project has `allocations` against say users or placeholders, it is collected and computed in minutes.
  - `billableHours` integer — If the project has time entries tracked under billable, it is collected and computed in hours.
  - `billableMinutes` number, double — If the project has time entries tracked under billable, it is collected and computed in minutes.
  - `nonBillableHours` integer — If the project has time entries tracked under non-billable, it is collected and computed in hours.
  - `nonBillableMinutes` number, double — If the project has time entries tracked under non-billable, it is collected and computed in minutes.
  - `remainingHours` integer — Number of hours left to complete the project or task based on tracked and budgeted hours.
  - `remainingMinutes` integer — Number of minutes left to complete the project or task and complements RemainingHours.
  - `progressPercentage` integer — The progress percentage is computed based on the number of tasks that are completed vs the total number of tasks in the project. This can be used to track how much the project has progressed over time.
  - `currentPhases` ProjectPhasePublicLiteAPIResponseEntity[] — The phases that are currently marked as in progress are available here.
    - `phaseId` integer — The unique identifier for the phase in a project.
    - `phaseName` string — The name of the phase.
  - `autoAllocation` boolean — The field autoAllocation defines whether Auto Allocation is enabled for the project or not. If auto allocation is enabled, instead of adding it manually, the allocations are computed from the tasks duration, effort and the assignees specified in the project.
  - `sources` ImportPublicAPIResponseEntity[] — Sources denotes the project templates involved in creation/ imported post creation of the project.
    - `prefix` string — A prefix can be used to distinguish which phase or task corresponds to which template when adding more than one source to a project.
    - `startDate` string, date — The date on which the template goes into effect for the project.
    - `templateId` integer — The unique identifier for the template.
    - `templateName` string — The name of the template.
  - `plannedDurationInDays` integer — The difference between `startDate` and `dueDate` is computed and stored in days as `plannedDurationInDays`.
  - `inferredProgress` 'ON_TRACK' | 'AHEAD_OF_TIME' | 'RUNNING_LATE' | 'NONE' — The `inferredProgress` can be used to know whether the project's progress is as per the expectation. For eg: the value `ON_TRACK` specifies that the project is in good state and not further action would be necessary to track the progress of it, whereas the value `RUNNING_LATE` means that the project state deviates from the original plan and needs immediate attention.
  - `projectAgeInDays` integer — If both the project actual dates (`startDateActual` and `dueDateActual`) are available, the difference is computed and shown in days. If `dueDateActual` isn't available, then the value is computed by the difference of today's date and the available date under `startDateActual`. The value will be null or not present if `startDateActual` is not available.
  - `customersInvited` integer — Reflects the number of customers that have been invited to the project.
  - `customersJoined` integer — CustomersJoined tracks the actual number of customers who joined the project after being invited. It is mostly used to track customer engagement.
  - `externalReferenceId` string — An externalReferenceId is a unique identifier that links entities or transactions between external systems and Rocketlane, ensuring accurate data correlation and consistency.

## Other responses

- `400` — This error typically happens when the request payload contains an error. If you want to make sure that the request's parameters are named correctly and are the right data types, you can examine the request's syntax.
- `401` — You see this error when trying to access this resource without being authenticated. Check the API request header to make sure it is not empty and has a valid api-key that you acquired from the Rocketlane API Settings tab.
- `404` — If we were unable to locate the resource you were looking for or the proper API endpoint you were looking for, this error would show up.

---

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