Skip to main content
POST
/
periodic-emission-logs
Create a periodic emission log
curl --request POST \
  --url https://api.demo.cula.earth/tracking/v1/periodic-emission-logs \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'Cula-Organisation-Id: <cula-organisation-id>' \
  --data '
{
  "external_id": "GC-ELEC-2025-10",
  "config_id": "elc_01kqzcjrpyf27tgekeyq3qzm7d",
  "site": {
    "external_id": "GC-SITE-REFINERY"
  },
  "period_start": "2025-10-01T00:00:00.000Z",
  "period_end": "2025-10-31T00:00:00.000Z",
  "data_points": [
    {
      "config_id": "dpc_01kqzcjrpyf27tgex1hkzm2wxp",
      "input_value": {
        "value": 2630450,
        "unit": "kWh"
      }
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgex3a94z1yhz",
      "input_value": 4280
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgex5b05a2cbs",
      "input_value": 18420
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgex7c16b3dct",
      "input_value": 2630.45
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgex9d27c4edu",
      "input_value": "MRETS"
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgexbd38d5fev",
      "input_value": "0197560e-351f"
    }
  ],
  "file_ids": [
    "fil_01kqzcjrpyf27tgeaqk8twgw91",
    "fil_01kqzcjrpyf27tgeavkt70apdy"
  ]
}
'
{
  "id": "eml_01kqzcjrpyf27tgebyhvvmf20z",
  "external_id": "GC-ELEC-2025-10",
  "config_id": "elc_01kqzcjrpyf27tgekeyq3qzm7d",
  "display_key": "GC-ELEC-2025-10",
  "site": {
    "id": "ste_01kqzcjrpyf27tge6smsbnhkh5",
    "external_id": "GC-SITE-REFINERY"
  },
  "period_start": "2025-10-01T00:00:00.000Z",
  "period_end": "2025-10-31T00:00:00.000Z",
  "status": "calculating",
  "emissions_in_kg_co2e": null,
  "data_points": [
    {
      "config_id": "dpc_01kqzcjrpyf27tgex1hkzm2wxp",
      "config_version_id": "dpv_01kqzcjrpyf27tgexv1hkzm2wxp",
      "name": "Capture electricity",
      "input_value": {
        "value": 2630450,
        "unit": "kWh"
      },
      "result_value": {
        "value": 2630450,
        "unit": "kWh"
      }
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgex3a94z1yhz",
      "config_version_id": "dpv_01kqzcjrpyf27tgexv3a94z1yhz",
      "name": "Peak demand (kW)",
      "input_value": 4280,
      "result_value": 4280
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgex5b05a2cbs",
      "config_version_id": "dpv_01kqzcjrpyf27tgexv5b05a2cbs",
      "name": "Natural gas (MMBtu)",
      "input_value": 18420,
      "result_value": 18420
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgex7c16b3dct",
      "config_version_id": "dpv_01kqzcjrpyf27tgexv7c16b3dct",
      "name": "REC quantity (MWh)",
      "input_value": 2630.45,
      "result_value": 2630.45
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgex9d27c4edu",
      "config_version_id": "dpv_01kqzcjrpyf27tgexv9d27c4edu",
      "name": "REC registry",
      "input_value": "MRETS",
      "result_value": "MRETS"
    },
    {
      "config_id": "dpc_01kqzcjrpyf27tgexbd38d5fev",
      "config_version_id": "dpv_01kqzcjrpyf27tgexvbd38d5fev",
      "name": "REC retirement ID",
      "input_value": "0197560e-351f",
      "result_value": "0197560e-351f"
    }
  ],
  "file_ids": [
    "fil_01kqzcjrpyf27tgeaqk8twgw91",
    "fil_01kqzcjrpyf27tgeavkt70apdy"
  ],
  "created_at": "2026-05-06T19:34:00Z",
  "updated_at": "2026-05-06T19:34:00Z"
}

Authorizations

Authorization
string
header
required

OAuth2 client credentials flow. Exchange your client_id and client_secret for a short-lived access token, then pass it as a Bearer token in the Authorization header.

Headers

Cula-Organisation-Id
string
required

Organisation ID that scopes this request. The authenticated consumer must be authorized for this organisation. Omitting this header returns 400; passing an unauthorised org returns 403.

Body

application/json

Request body for creating a periodic emission log.

config_id
string
required

Root periodic emission log config ID. The server resolves to the active config version.

site
object
required

The site where the emissions occurred.

Example:
{ "id": "ste_01kqzcjrpyf27tge6smsbnhkh5" }
period_start
string<date>
required

Start of the measurement period (ISO date).

Example:

"2025-10-01T00:00:00.000Z"

period_end
string<date>
required

End of the measurement period (ISO date).

Example:

"2025-10-31T00:00:00.000Z"

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.

data_points
object[]

Emission measurement data points.

file_ids
string[]

Complete set of file IDs to attach to this emission log when creating it or replacing it with PUT.

Response

Periodic emission log created. Calculation is in progress.

A periodic emission log as returned in responses. After creation, the server triggers a background emission calculation. The status field reflects the calculation state and emissions_in_kg_co2e contains the result once calculation completes.

id
string
required

Cula-assigned TypeID.

Example:

"eml_01kqzcjrpyf27tgebyhvvmf20z"

config_id
string
required

Root emission log config ID.

Example:

"elc_01kqzcjrpyf27tgekeyq3qzm7d"

site
object
required

A resolved resource reference as returned in responses.

period_start
string<date>
required

Start of the measurement period.

Example:

"2025-10-01T00:00:00.000Z"

period_end
string<date>
required

End of the measurement period.

Example:

"2025-10-31T00:00:00.000Z"

status
enum<string>
required

State of the background emission calculation.

  • calculating — calculation is in progress.
  • completed — calculation finished, emissions_in_kg_co2e is populated.
  • failed — calculation failed (contact support).
Available options:
calculating,
completed,
failed
Example:

"completed"

data_points
object[]
required

Resolved emission measurement data points.

file_ids
string[]
required

IDs of files linked to this emission log.

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"

external_id
string | null

Partner-assigned external identifier.

Example:

"GC-ELEC-2025-10"

display_key
string | null

Human-readable display identifier.

Example:

"GC-ELEC-2025-10"

emissions_in_kg_co2e
number | null
read-only

Total emissions for this period in kg CO2 equivalent. Null while status is calculating. Populated once calculation completes.

Example:

8942.37