> ## Documentation Index
> Fetch the complete documentation index at: https://code.dcycle.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Waste Water Treatment by ID

> Retrieve a single waste water treatment record by its UUID with enriched data

# Get Waste Water Treatment by ID

Retrieve a single waste water treatment (WWT) record with enriched data: CO2e emissions, the user who uploaded it, and any linked projects. Useful to inspect a specific record before deleting or auditing it.

## Request

### Headers

<ParamField header="x-api-key" type="string" required>
  Your API key for authentication

  **Example:** `sk_live_1234567890abcdef`
</ParamField>

<ParamField header="x-organization-id" type="string" required>
  Your organization UUID

  **Example:** `a8315ef3-dd50-43f8-b7ce-d839e68d51fa`
</ParamField>

### Path Parameters

<ParamField path="wwt_id" type="string" required>
  UUID of the waste water treatment record

  **Example:** `550e8400-e29b-41d4-a716-446655440000`
</ParamField>

## Response

<ResponseField name="id" type="string">
  Unique identifier (UUID) for the WWT record. Use this as `waste_water_treatment_id` in [DELETE /api/v1/waste\_water\_treatments/{id}](/api-reference/legacy/waste-water-treatments/delete).
</ResponseField>

<ResponseField name="type" type="string">
  Always `"waste_water_treatment"`
</ResponseField>

<ResponseField name="status" type="string">
  Processing status: `uploaded`, `active`, `loading`, or `error`
</ResponseField>

<ResponseField name="invoice_id" type="string">
  Identification name or invoice number of the WWT record
</ResponseField>

<ResponseField name="start_date" type="date">
  Start date of the treatment period
</ResponseField>

<ResponseField name="end_date" type="date">
  End date of the treatment period
</ResponseField>

<ResponseField name="facility_id" type="string | null">
  UUID of the facility this WWT belongs to
</ResponseField>

<ResponseField name="quantity" type="number">
  Volume of water entering treatment, in m³
</ResponseField>

<ResponseField name="base_quantity" type="number">
  Volume of water exiting treatment, in m³
</ResponseField>

<ResponseField name="m3_water_out" type="number">
  Same as `base_quantity` — water output volume in m³
</ResponseField>

<ResponseField name="kg_sludge" type="number">
  Mass of sludge produced, in kg
</ResponseField>

<ResponseField name="percentage" type="number">
  Percentage factor (always `1` for WWT records)
</ResponseField>

<ResponseField name="co2e" type="number | null">
  CO2 equivalent emissions in kg CO2e. Populated asynchronously after record activation.
</ResponseField>

<ResponseField name="co2e_biomass" type="number">
  Biogenic CO2 emissions in kg CO2e
</ResponseField>

<ResponseField name="unit" type="object">
  Unit of measurement (always cubic meters for WWT)

  <Expandable title="Unit Object">
    <ResponseField name="id" type="string">
      Unit UUID
    </ResponseField>

    <ResponseField name="name" type="string">
      Unit name (e.g. `"cubic_metre_(m3)_total"`)
    </ResponseField>

    <ResponseField name="type" type="string">
      Unit category (e.g. `"waste_water_treatments_flow_total"`)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="user" type="object | null">
  User who uploaded or created the record

  <Expandable title="User Object">
    <ResponseField name="id" type="string">User UUID</ResponseField>
    <ResponseField name="first_name" type="string | null">First name</ResponseField>
    <ResponseField name="last_name" type="string | null">Last name</ResponseField>
    <ResponseField name="email" type="string">Email address</ResponseField>
    <ResponseField name="prefix" type="string | null">Phone prefix</ResponseField>
    <ResponseField name="phone_number" type="string | null">Phone number</ResponseField>
    <ResponseField name="onboarding_done" type="boolean">Whether onboarding is complete</ResponseField>
    <ResponseField name="profile_img_url" type="string | null">Profile image URL</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="uploaded_by" type="string | null">
  UUID of the user who created the record
</ResponseField>

<ResponseField name="source_invoice_id" type="string">
  Internal source record UUID (matches `id` for WWT records)
</ResponseField>

<ResponseField name="file_url" type="string | null">
  Download URL for any linked import file
</ResponseField>

<ResponseField name="linked_projects" type="array[object]">
  Projects this WWT record is linked to
</ResponseField>

<ResponseField name="facility_percentages" type="array[object]">
  Facility distribution breakdown (always empty for WWT records)
</ResponseField>

<ResponseField name="created_at" type="datetime">
  Timestamp when the record was created
</ResponseField>

## Example

<CodeGroup>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl -X GET "https://api.dcycle.io/v1/waste-water-treatments/550e8400-e29b-41d4-a716-446655440000/detail" \
    -H "x-api-key: ${DCYCLE_API_KEY}" \
    -H "x-organization-id: ${DCYCLE_ORG_ID}"
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import requests
  import os

  headers = {
      "x-api-key": os.getenv("DCYCLE_API_KEY"),
      "x-organization-id": os.getenv("DCYCLE_ORG_ID"),
  }

  wwt_id = "550e8400-e29b-41d4-a716-446655440000"

  response = requests.get(
      f"https://api.dcycle.io/v1/waste-water-treatments/{wwt_id}/detail",
      headers=headers,
  )

  wwt = response.json()
  print(f"{wwt['invoice_id']}: {wwt['co2e']} kg CO2e")
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const axios = require('axios');

  const headers = {
    'x-api-key': process.env.DCYCLE_API_KEY,
    'x-organization-id': process.env.DCYCLE_ORG_ID,
  };

  const wwtId = '550e8400-e29b-41d4-a716-446655440000';

  axios.get(`https://api.dcycle.io/v1/waste-water-treatments/${wwtId}/detail`, { headers })
    .then(response => {
      const wwt = response.data;
      console.log(`${wwt.invoice_id}: ${wwt.co2e} kg CO2e`);
    });
  ```
</CodeGroup>

### Successful Response

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "type": "waste_water_treatment",
  "status": "active",
  "invoice_id": "WWT-2025-001",
  "start_date": "2025-01-01",
  "end_date": "2025-01-31",
  "facility_id": "660e8400-e29b-41d4-a716-446655440000",
  "quantity": 12500.0,
  "base_quantity": 12000.0,
  "m3_water_out": 12000.0,
  "kg_sludge": 850.0,
  "percentage": 1,
  "co2e": 4521.3,
  "co2e_biomass": 0.0,
  "unit": {
    "id": "987190d0-8ed9-4234-bceb-ab683761a7fe",
    "name": "cubic_metre_(m3)_total",
    "type": "waste_water_treatments_flow_total"
  },
  "user": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "first_name": "Ana",
    "last_name": "García",
    "email": "ana.garcia@company.com",
    "prefix": null,
    "phone_number": null,
    "onboarding_done": true,
    "profile_img_url": null
  },
  "uploaded_by": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "source_invoice_id": "550e8400-e29b-41d4-a716-446655440000",
  "file_url": null,
  "linked_projects": [],
  "facility_percentages": [],
  "created_at": "2025-02-01T10:30:00Z"
}
```

## Common Errors

### 401 Unauthorized

**Cause:** Missing or invalid API key

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "detail": "Invalid API key",
  "code": "INVALID_API_KEY"
}
```

**Solution:** Verify your API key is valid and active.

### 403 Forbidden

**Cause:** The WWT record belongs to a different organization

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "detail": "Waste water treatment does not belong to this organization",
  "code": "WWT_ACCESS_DENIED"
}
```

**Solution:** Verify the `wwt_id` belongs to the organization indicated in `x-organization-id`.

### 404 Not Found

**Cause:** No WWT record exists with that UUID

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "detail": "Waste water treatment not found",
  "code": "WWT_NOT_FOUND"
}
```

**Solution:** Check the `wwt_id`. You can list all WWT records for a facility using the [list endpoint](/api-reference/waste-water-treatments/list).

## Related Endpoints

<CardGroup cols={2}>
  <Card title="List Waste Water Treatments" icon="list" href="/api-reference/waste-water-treatments/list">
    Retrieve all WWT records for a facility
  </Card>

  <Card title="Delete Waste Water Treatment" icon="trash" href="/api-reference/legacy/waste-water-treatments/delete">
    Delete a single WWT record by ID
  </Card>
</CardGroup>
