Skip to main content
GET
https://api.dcycle.io
/
api
/
v1
/
custom_emission_groups
/
units
/
{id}
Get Group Units
const options = {
  method: 'GET',
  headers: {
    'x-api-key': '<x-api-key>',
    'x-organization-id': '<x-organization-id>',
    'x-user-id': '<x-user-id>'
  }
};

fetch('https://api.dcycle.io/api/v1/custom_emission_groups/units/{id}', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
{
  "id": "<string>",
  "name": "<string>",
  "abbreviation": "<string>",
  "type": "<string>"
}

Get Group Units

Retrieve a list of all measurement units used by emission factors within a specific custom emission group.
This endpoint returns the unique set of units used across all emission factors in the group, useful for validating data consistency or building UI selectors.

Request

Headers

x-api-key
string
required
Your API key for authenticationExample: sk_live_1234567890abcdef
x-organization-id
string
required
Your organization UUIDExample: ff4adcc7-8172-45fe-9cf1-e90a6de53aa9
x-user-id
string
required
Your user UUIDExample: a1b2c3d4-e5f6-7890-abcd-ef1234567890

Path Parameters

id
string
required
UUID of the Custom Emission Group

Response

Returns an array of unit objects used in the group.
[
  {
    "id": "kg-unit-uuid",
    "name": "kilogram",
    "abbreviation": "kg",
    "type": "mass"
  },
  {
    "id": "ton-unit-uuid",
    "name": "metric ton",
    "abbreviation": "t",
    "type": "mass"
  }
]

Example

curl "https://api.dcycle.io/api/v1/custom_emission_groups/units/group-uuid" \
  -H "Authorization: Bearer ${DCYCLE_API_KEY}" \
  -H "x-organization-id: ${DCYCLE_ORG_ID}" \
  -H "x-user-id: ${DCYCLE_USER_ID}"

Use Cases

Build Unit Selector

Create a dropdown with available units for the group:
async function loadUnitsForGroup(groupId) {
  const units = await axios.get(
    `https://api.dcycle.io/api/v1/custom_emission_groups/units/${groupId}`,
    { headers }
  ).then(res => res.data);

  const options = units.map(unit => ({
    value: unit.id,
    label: `${unit.name} (${unit.abbreviation})`
  }));

  return options;
}

Validate Data Consistency

Check if all factors in a group use the same unit type:
units = requests.get(
    f"https://api.dcycle.io/api/v1/custom_emission_groups/units/{group_id}",
    headers=headers
).json()

unit_types = set(unit['type'] for unit in units)

if len(unit_types) == 1:
    print(f"✅ Consistent unit type: {unit_types.pop()}")
else:
    print(f"⚠️ Mixed unit types: {', '.join(unit_types)}")
    print("Consider reviewing factor consistency")

Display Group Statistics

Show unit usage statistics:
units = requests.get(
    f"https://api.dcycle.io/api/v1/custom_emission_groups/units/{group_id}",
    headers=headers
).json()

# Get all factors
factors = requests.get(
    f"https://api.dcycle.io/api/v1/custom_emission_factors/list/{group_id}",
    headers=headers,
    params={"page": 1, "size": 100}
).json()

print(f"Group uses {len(units)} different units across {factors['total']} factors:\n")

for unit in units:
    count = sum(1 for f in factors['items'] if f['unit_id'] == unit['id'])
    print(f"- {unit['abbreviation']}: {count} factors")

Response Fields

id
string
Unique identifier for the unit
name
string
Full name of the unit (e.g., “kilogram”, “liter”)
abbreviation
string
Standard abbreviation (e.g., “kg”, “L”)
type
string
Unit type (e.g., “mass”, “volume”, “energy”, “currency”)

Common Errors

404 Not Found

{
  "detail": "Custom emission group not found",
  "code": "NOT_FOUND"
}
Solution: Verify the group ID exists.

Empty Array

If the group has no emission factors yet, this endpoint returns an empty array [].