---
title: "Post Component"
method: POST
path: "/components"
---

# Post Component

`POST /components`

Creates a component in the Isometric system

## Headers

- `x-client-secret` string, required — A secret token identifying the client connecting to the API

## Request body

- CreateComponentRequest
  - `supplier_reference_id` string, required — A string that must be unique for all resources created by a specific supplier. It can be used by a client to identify the correct objects in their system.
  - `project_id` string, required — The project in which to create the component
  - `component_blueprint_key` string, required — The key of the blueprint which we are deriving this component from.
  - `display_name` string, required
  - `description` string, nullable — A description of the component. Must be at most 2000 characters long.
  - `activity_completed_at` string, date-time, required — The date at which the physical activity related to this component started
  - `activity_started_at` string, date-time, required — The date by which the physical activity related to this component finished
  - `inputs` union[], required — A list of component inputs. This must match the list of inputs on the component blueprint. See the component-blueprints endpoint.
    - union
      - CreateComponentListInput
        - `__typename` 'CreateComponentListInput' — Contains the name of the model (formally, OpenAPI Schema Object). Used to determine the type of data, for example when two different types are unioned.
        - `input_key` string, required — An input key from the component blueprint.
        - `datapoint_ids` string[], required — The Isometric IDs of the datapoints that will be used to populate the value of this input
      - CreateComponentScalarInput
        - `__typename` 'CreateComponentScalarInput' — Contains the name of the model (formally, OpenAPI Schema Object). Used to determine the type of data, for example when two different types are unioned.
        - `input_key` string, required — An input key from the component blueprint.
        - `datapoint_id` string, required — The Isometric ID of the datapoint that will be used to populate the value of this input

## Response `200`

Successful Response

- Component
  - `id` string, required
  - `supplier_reference_id` string, nullable, required — A string that must be unique for all resources created by a specific supplier. It can be used by a client to identify the correct objects in their system.
  - `type` 'ACTIVITY' | 'REMOVAL_COUNTERFACTUAL' | 'SEQUESTRATION' | 'LOSS' | 'ADJUSTMENT' | 'UNCERTAINTY_DISCOUNT', required
  - `scope` 'REMOVAL' | 'GHG_STATEMENT' | 'PROJECT' | 'NET_NEGATIVITY', required
  - `display_name` string, required
  - `description` string, nullable, required
  - `activity_completed_at` string, date-time, nullable, required
  - `activity_started_at` string, date-time, nullable, required
  - `blueprint_key` string, required
  - `removal_template_component_id` string, nullable, required — The ID of the removal template component, if this component was created via a template. May be null if the component was created directly, or if the template has been deleted.
  - `ghg_entry_template_component_id` string, nullable, required — The ID of the GHG entry template component, if this component was created via a template. May be null if the component was created directly, or if the template has been deleted.
  - `allocation_strategy` 'ESTIMATED_PROJECT_TONNAGE' | 'MANUAL' | 'CUSTOM_TIME_PERIOD' | 'ESTIMATED_PROJECT_LIFETIME' — Strategies which control how Project Emissions are automatically amortized and attributed to GHG Statement and GHG entries ESTIMATED_PROJECT_TONNAGE - Automatic amortization ensuring full amortization in proportion to the project's estimated gross removal. MANUAL - No automatic amortization. All GHG Statement and GHG entry attributions are performed manually. CUSTOM_TIME_PERIOD - Automatic amortization ensuring full amortization by a specified target date. ESTIMATED_PROJECT_LIFETIME - Automatic amortization ensuring full amortization over the project's estimated lifetime.
  - `inputs` union[], required — A list of component inputs. The inputs can be either scalars or list inputs.
    - union
      - ComponentListInput
        - `__typename` 'ComponentListInput' — Contains the name of the model (formally, OpenAPI Schema Object). Used to determine the type of data, for example when two different types are unioned.
        - `input_key` string, required — An input key from the component blueprint.
        - `datapoint_ids` string[], required — The Isometric ID of the datapoints assigned to this input
      - ComponentScalarInput
        - `__typename` 'ComponentScalarInput' — Contains the name of the model (formally, OpenAPI Schema Object). Used to determine the type of data, for example when two different types are unioned.
        - `input_key` string, required — An input key from the component blueprint.
        - `datapoint_id` string, required — The Isometric ID of the datapoint assigned to this input

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/isometric/apis/isometric-certify-data-ingestion-api.md) · [All operations](https://skmtc.net/isometric/apis/isometric-certify-data-ingestion-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/isometric/isometric-certify-data-ingestion-api/versions/9819e9c8ccf0/schema)
