Skip to main content
POST
/
v1
/
material-processing
Create a material processing step
curl --request POST \
  --url https://api.cula.tech/tracking/v1/v1/material-processing \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "external_id": "GC-PROCESS-2026-001",
  "config_id": "stc_01kqzcjrpyf27tgeevggzctpyk",
  "site": {
    "id": "ste_01kqzcjrpyf27tge6smsbnhkh5"
  },
  "executed_at": "2026-05-01T23:59:00-05:00",
  "data_points": [
    {
      "config_id": "dpc_01kqzcjrpyf27tgeq6a84z0yhy",
      "input_value": "GC-PROD-LOT-2026-0501"
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgeq844x9cbr0",
      "input_value": "fermentation_vent"
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgeqhdj0narfq",
      "input_value": {
        "value": 86200,
        "unit": "kWh"
      }
    }
  ],
  "input": [
    {
      "data_points": [
        {
          "config_id": "dpc_01kqzcjrpyf27tgeqzk6trybqe",
          "input_value": {
            "value": 3954608,
            "unit": "lb"
          }
        }
      ]
    }
  ],
  "output": [
    {
      "data_points": [
        {
          "config_id": "dpc_01kqzcjrpyf27tger4hgzn1wxn",
          "input_value": {
            "value": 518823,
            "unit": "kg"
          }
        },
        {
          "config_id": "dpc_01kqzcjrpyf27tgeq6a84z0yhy",
          "input_value": {
            "value": 99.97,
            "unit": "%"
          }
        }
      ]
    }
  ],
  "file_ids": []
}
'
{
  "id": "stp_01kqzcjrpxf27tge39hfsb5r0c",
  "external_id": "GC-PROCESS-2026-001",
  "config_id": "stc_01kqzcjrpyf27tgeevggzctpyk",
  "config_version_id": "scv_01kqzcjrpyf27tgefy70hchba7",
  "display_key": "GC-PROCESS-2026-001",
  "site": {
    "id": "ste_01kqzcjrpyf27tge6smsbnhkh5",
    "external_id": "GC-SITE-REFINERY"
  },
  "executed_at": "2026-05-02T04:59:00Z",
  "data_points": [
    {
      "config_id": "dpc_01kqzcjrpyf27tgeq6a84z0yhy",
      "config_version_id": "dpv_01kqzcjrpyf27tgerf3nqreg37",
      "name": "Produced lot number",
      "input_value": "GC-PROD-LOT-2026-0501",
      "value": "GC-PROD-LOT-2026-0501"
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgeq844x9cbr0",
      "config_version_id": "dpv_01kqzcjrpyf27tgermj3y3sen0",
      "name": "Capture method",
      "input_value": "fermentation_vent",
      "value": "fermentation_vent"
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgeqhdj0narfq",
      "config_version_id": "dpv_01kqzcjrpyf27tgerr5jnnn960",
      "name": "Capture electricity",
      "input_value": {
        "value": 86200,
        "unit": "kWh"
      },
      "value": {
        "value": 86200,
        "unit": "kWh"
      }
    }
  ],
  "input": [
    {
      "id": "mct_01kqzcjrpyf27tgep0me6795aw",
      "data_points": [
        {
          "config_id": "dpc_01kqzcjrpyf27tgeqzk6trybqe",
          "config_version_id": "dpv_01kqzcjrpyf27tges71h814sdy",
          "name": "Corn input quantity",
          "input_value": {
            "value": 3954608,
            "unit": "lb"
          },
          "value": {
            "value": 1793460.5,
            "unit": "kg"
          }
        }
      ],
      "contents": [
        {
          "material": {
            "id": "mat_01kqzcjrpyf27tge9dnvsqv8t2",
            "external_id": "corn-no2-yellow"
          },
          "weight_in_kg": 1793460.5
        }
      ]
    }
  ],
  "output": [
    {
      "id": "mct_01kqzcjrpyf27tgepbejf0xxn7",
      "data_points": [
        {
          "config_id": "dpc_01kqzcjrpyf27tger4hgzn1wxn",
          "config_version_id": "dpv_01kqzcjrpyf27tges8negm940v",
          "name": "CO2 output quantity",
          "input_value": {
            "value": 518823,
            "unit": "kg"
          },
          "value": {
            "value": 518823,
            "unit": "kg"
          }
        },
        {
          "config_id": "dpc_01kqzcjrpyf27tgeq6a84z0yhy",
          "config_version_id": "dpv_01kqzcjrpyf27tgerf3nqreg37",
          "name": "CO2 purity",
          "input_value": {
            "value": 99.97,
            "unit": "%"
          },
          "value": {
            "value": 0.9997,
            "unit": "%"
          }
        }
      ],
      "contents": [
        {
          "material": {
            "id": "mat_01kqzcjrpyf27tge9mg18vyhr2",
            "external_id": null
          },
          "weight_in_kg": 518823
        }
      ]
    }
  ],
  "file_ids": [],
  "created_at": "2026-05-06T19:34:00Z",
  "updated_at": "2026-05-06T19:34:00Z"
}

Documentation Index

Fetch the complete documentation index at: https://docs.cula.tech/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API key passed as a Bearer token. Keys are scoped to one organisation and a set of permitted sites. Two keys per scope (primary + secondary) are issued to support zero-downtime rotation.

Authorization: Bearer <api-key>

Body

application/json

Request body for creating a material processing step.

config_id
string
required

Root step config ID. The server resolves to the active config version. Discover available configs via the config list endpoint.

site
object
required

The site where the step was executed.

Example:
{ "id": "ste_01kqzcjrpyf27tge6smsbnhkh5" }
executed_at
string<date-time>
required

When the step was executed. ISO-8601 with explicit UTC offset required. Offset-less timestamps are rejected with 422.

external_id
string

Partner-assigned identifier. Must be unique within resource type and organisation. Used for idempotency and ext- lookups.

display_key
string

Human-readable display identifier.

location
object

Optional override location. Set this if the step was executed at a different physical location than the site (e.g. a remote field or temporary storage). Cula uses the distance to attribute additional transport emissions automatically.

data_points
object[]

Step-level data points.

file_ids
string[]

IDs of files to link to this resource.

input
object[]

Input material containers (consumed). At least one required.

Minimum array length: 1
output
object[]

Output material containers (produced). At least one required.

Minimum array length: 1

Response

Material processing step created.

A material processing step execution as returned in responses.

id
string
required

Cula-assigned TypeID.

Example:

"stp_01kqzcjrpxf27tge33jwvjhkff"

config_id
string
required

Root step config ID.

Example:

"stc_01kqzcjrpyf27tgeeekpvvx0zt"

config_version_id
string
required
read-only

Resolved config version used at creation time.

Example:

"scv_01kqzcjrpyf27tgefhb58rc9d4"

site
object
required

A resolved resource reference as returned in responses.

executed_at
string<date-time>
required

When the step was executed. Stored and returned in UTC.

Example:

"2026-05-01T19:30:00Z"

data_points
object[]
required

Step-level resolved data points.

file_ids
string[]
required

IDs of linked files.

Example:
[]
created_at
string<date-time>
required
read-only
Example:

"2026-05-06T19:34:00Z"

updated_at
string<date-time>
required
read-only
Example:

"2026-05-06T19:34:00Z"

input
object[]
required

Input material containers with resolved data points and computed contents.

output
object[]
required

Output material containers with resolved data points and computed contents.

external_id
string | null

Partner-assigned external identifier.

Example:

"GC-HARVEST-2026-001"

display_key
string | null

Human-readable display identifier.

Example:

"GC-HARVEST-2026-001"

location
object

Override location. If the step was executed at a different physical location than the site, this field captures those coordinates. Cula attributes additional transport emissions for the distance between the site and this location.