Skip to main content
POST
Create a material conversion

Authorizations

Authorization
string
header
required

OAuth 2.0 client credentials. Exchange your client_id and client_secret for an access token scoped to the organisation that provides data access.

Headers

Cula-Organisation-Id
string
required

ID of the organisation the request operates on behalf of (e.g. org_...). Must be an organisation the API client has access to.

Example:

"org_01k83mfmhgchya944v86ryvhpq"

Body

application/json
config_id
string
required

The ID of the material conversion config that defines the conversion to create.

Example:

"mcvc_01kyaas94dty6shm2d0j7zw9v8"

occurred_at
string<date-time>

When the conversion took place: an ISO 8601 date-time with an explicit UTC offset (Z or ±hh:mm). Defaults to now if omitted.

Example:

"2026-01-15T08:00:00Z"

external_id
string

A optional custom ID that can be set to an internal ID from your system. This ID must be unique within all objects of the organisation you operate in. You can later use this external ID to reference and query this object. Be aware that you can update this ID later. If you need an immutable ID, use the object ID returned when creating the object.

Required string length: 1 - 100
Pattern: ^[A-Za-z0-9\-_]+$
Example:

"MY-CUSTOM-ID"

input_containers
(New Container · object | Existing Container · object)[]

The containers the conversion consumes. Only applicable to non-unified configs (unified: false): describe each container against one of the config's input_configs via config_id.

Maximum array length: 100

Describes a new container to create, based on one of the container configs the flow's config lists.

output_containers
(New Container · object | Existing Container · object)[]

The containers the conversion produces. Only applicable to non-unified configs (unified: false): describe each container against one of the config's output_configs via config_id.

Maximum array length: 100

Describes a new container to create, based on one of the container configs the flow's config lists.

data_points
object[]

Values for the conversion's data points. When the config is unified (unified: true), the flat array spans the whole flow (conversion step, input and output containers); when unified is false, only the step's own data points — container values belong to the input_containers / output_containers items.

Maximum array length: 100

Response

Material conversion created.

id
string
required

The ID of the material conversion.

Example:

"mcv_01k1k06s731c8dpsfc8beya4rt"

config_id
string
required

The ID of the config the conversion was created from.

Example:

"mcvc_01kyaas94dty6shm2d0j7zw9v8"

config_version_id
string
required

The ID of the exact config version the conversion was created from.

Example:

"mcvcv_01krxsm2pxdgygx26jbyv4ztjy"

external_id
string | null
required

Optional external ID of the conversion.

Example:

"MY-CUSTOM-ID"

display_id
string
required

Human-readable identifier.

Example:

"PYR-2026-01-15-1"

site
object
required

The site the conversion was executed at.

occurred_at
string<date-time>
required

When the conversion took place.

Example:

"2026-01-15T08:00:00Z"

created_at
string<date-time>
required

When the conversion was recorded in Cula.

Example:

"2026-01-15T08:00:00Z"

data_points
(short_text · object | long_text · object | multi_text · object | number · object | percentage · object | amount · object | timestamp · object | duration · object | boolean · object | material · object | material_batch · object | container_type · object | material_pool · object)[]
required

Data points set on the conversion step itself.

Data point holding a single line of text.

input_containers
object[]
required

The material containers the conversion consumed. Always returned, whether the config is unified or not.

output_containers
object[]
required

The material containers the conversion produced. Always returned, whether the config is unified or not.