---
title: "Creates a project"
method: POST
path: "/projects"
tags: ["Projects"]
---

# Creates a project

`POST /projects`

## Request

- Base URL: `https://api3.autarc.energy/v1`
- URL: `https://api3.autarc.energy/v1/projects`
- Auth: API key in header `X-Api-Key`

## Request body

- CreateProjectRequest: Company is inferred from API key / access token.
  - `name` string, required
  - `address` Address, required
    - `addressLine1` string, required
    - `addressLine2` string, nullable
    - `postalCode` string, required
    - `city` string, required
    - `country` string, required
    - `countryCode` string, nullable: The ISO country code.
    - `latitude` number, nullable
    - `longitude` number, nullable
  - `source` 'internal' | 'hubspot' | 'check' | 'hero' | 'marketplace' | 'zapier' | 'api' | 'leadEmail' | 'leadFinder' | 'pipedrive'
  - `currentStageId` string, uuid, nullable: The ID of the project stage. Use the /project-stages endpoint to list available stages.
  - `customerId` string, uuid, nullable
  - `status` 'inProgress' | 'completed' | 'archived'
  - `isLead` boolean, nullable: Determines if the project is a lead project
  - `humanId` string, nullable: Human readable identifier. E.g. "P-001"
  - `projectValue` number, float, nullable: The value of the project. E.g. 10.000EUR
  - `installationDate` string, date, nullable
  - `buildingType` 'singleOrDoubleFamilyHouse' | 'semiDetachedHouse' | 'terracedHouse' | 'endTerracedHouse' | 'multiFamilyHouse' | 'commercialBuilding'
  - `buildingAge` 'from2002' | 'from1995To2001' | 'from1984To1994' | 'from1979To1983' | 'from1969To1978' | 'from1958To1968' | 'from1949To1957' | 'from1919To1948' | 'before1918'
  - `isMonumentProtected` boolean: Determines if the building is monument protected
  - `numberOfResidents` number, nullable: The number of residents in the building
  - `numberOfFloors` number, nullable: The number of floors in the building
  - `heatedLivingAreaM2` number, nullable: The heated living area in square meters. Used in the heat pump check. This is an independent value and not the total sum of room areas.
  - `currentHeatingSystemType` 'gas' | 'oil' | 'condensingGas' | 'condensingOil' | 'pellet' | 'electric' | 'districtOrOther'
  - `currentHeatingSystemConstructionYear` 'before1980' | 'between1980And1995' | 'after1995'
  - `drinkingWaterHeatingSystemType` 'withCirculation' | 'withoutCirculation'
  - `isFacadeInsulated` boolean, nullable: Was the facade insulated after construction?
  - `isRoofInsulated` boolean, nullable: Was the roof insulated after construction?
  - `pipeSystemType` 'singlePipeHeating' | 'twoPipeHeating' | 'unknown'
  - `roomHeatingType` 'floor' | 'floorAndRadiator' | 'radiator'
  - `averageEnergyConsumptionLast3Years` number, nullable: Average energy consumption over the last 3 years (kWh or liters depending on system)
  - `hasSolarThermalSystem` boolean, nullable: Whether the property has a solar thermal system
  - `hasFireplace` boolean, nullable: Whether the property has a wood-burning fireplace
  - `windowGlazingType` 'single' | 'double' | 'triple' | 'doubleWithThermalInsulation' | 'tripleWithThermalInsulation'
  - `heatingCircuits` HeatingCircuit[]
    - `id` string
    - `name` string
    - `flowTemperature` number, nullable
    - `returnTemperature` number, nullable
    - `index` integer
  - `responsibleProfileId` string, uuid, nullable: Profile ID of the team member responsible for this project. Pass null on PATCH to clear.
  - `tags` string[]: Tag names. Replaces all existing tags on create/update; pass an empty array to clear.

## Response `201`

OK

- Project
  - `id` string, uuid
  - `name` string
  - `companyId` string, uuid
  - `currentStageId` string, uuid, nullable: The ID of the project stage. Use the /project-stages endpoint to list available stages.
  - `hubspotDealId` string, nullable: HubSpot deal ID when this project is linked to a deal in HubSpot. Omitted when not linked.
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `avgHeatload` number, nullable: Average heat load per m² (W/m²). Computed; not accepted in request body.
  - `yearlyEnergyConsumption` number, nullable: Estimated yearly energy consumption (kWh). Computed; not accepted in request body.
  - `technicalFeasibilityAssesment` 'feasible' | 'notFeasible' | 'notStarted'
  - `source` 'internal' | 'hubspot' | 'check' | 'hero' | 'marketplace' | 'zapier' | 'api' | 'leadEmail' | 'leadFinder' | 'pipedrive'
  - `responsibleProfileId` string, uuid, nullable: Profile ID of the team member responsible for this project. Pass null on PATCH to clear.
  - `tags` string[]: Tag names. Replaces all existing tags on create/update; pass an empty array to clear.
  - `customerId` string, uuid, nullable
  - `status` 'inProgress' | 'completed' | 'archived'
  - `isLead` boolean, nullable: Determines if the project is a lead project
  - `humanId` string, nullable: Human readable identifier. E.g. "P-001"
  - `projectValue` number, float, nullable: The value of the project. E.g. 10.000EUR
  - `installationDate` string, date, nullable
  - `buildingType` 'singleOrDoubleFamilyHouse' | 'semiDetachedHouse' | 'terracedHouse' | 'endTerracedHouse' | 'multiFamilyHouse' | 'commercialBuilding'
  - `buildingAge` 'from2002' | 'from1995To2001' | 'from1984To1994' | 'from1979To1983' | 'from1969To1978' | 'from1958To1968' | 'from1949To1957' | 'from1919To1948' | 'before1918'
  - `isMonumentProtected` boolean: Determines if the building is monument protected
  - `numberOfResidents` number, nullable: The number of residents in the building
  - `numberOfFloors` number, nullable: The number of floors in the building
  - `heatedLivingAreaM2` number, nullable: The heated living area in square meters. Used in the heat pump check. This is an independent value and not the total sum of room areas.
  - `address` Address
    - `addressLine1` string, required
    - `addressLine2` string, nullable
    - `postalCode` string, required
    - `city` string, required
    - `country` string, required
    - `countryCode` string, nullable: The ISO country code.
    - `latitude` number, nullable
    - `longitude` number, nullable
  - `currentHeatingSystemType` 'gas' | 'oil' | 'condensingGas' | 'condensingOil' | 'pellet' | 'electric' | 'districtOrOther'
  - `currentHeatingSystemConstructionYear` 'before1980' | 'between1980And1995' | 'after1995'
  - `drinkingWaterHeatingSystemType` 'withCirculation' | 'withoutCirculation'
  - `isFacadeInsulated` boolean, nullable: Was the facade insulated after construction?
  - `isRoofInsulated` boolean, nullable: Was the roof insulated after construction?
  - `pipeSystemType` 'singlePipeHeating' | 'twoPipeHeating' | 'unknown'
  - `roomHeatingType` 'floor' | 'floorAndRadiator' | 'radiator'
  - `averageEnergyConsumptionLast3Years` number, nullable: Average energy consumption over the last 3 years (kWh or liters depending on system)
  - `hasSolarThermalSystem` boolean, nullable: Whether the property has a solar thermal system
  - `hasFireplace` boolean, nullable: Whether the property has a wood-burning fireplace
  - `windowGlazingType` 'single' | 'double' | 'triple' | 'doubleWithThermalInsulation' | 'tripleWithThermalInsulation'
  - `heatingCircuits` HeatingCircuit[]
    - `id` string
    - `name` string
    - `flowTemperature` number, nullable
    - `returnTemperature` number, nullable
    - `index` integer

## Other responses

- `404`: The specified resource was not found

---

[API](https://skmtc.dev/autarc/apis/autarc-2-0-api.md) - [All operations](https://skmtc.dev/autarc/apis/autarc-2-0-api/llms.txt) - [OpenAPI document](https://skmtc.dev/autarc/apis/autarc-2-0-api/revisions/adfb20a40efc?raw)
