---
title: "Import a template to a project"
method: POST
path: "/1.0/projects/{projectId}/import-template"
tags: ["Projects"]
---

# Import a template to a project

`POST /1.0/projects/{projectId}/import-template`

## Path parameters

- `projectId` integer, required

## Request body

- ProjectImportPublicAPIRequestEntity[]
  - `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, required — The date on which the template goes into effect for the project.
  - `templateId` integer, required — The unique identifier for the template.

## Response `200`

The requested action was successfully executed.

- ProjectPublicImportTemplateAPIResponseEntity
  - `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.
  - `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.

## 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)
