Skip to main content
GET
/
v1
/
projects
/
extended
List Projects
const options = {
  method: 'GET',
  headers: {'x-api-key': '<x-api-key>', 'x-organization-id': '<x-organization-id>'}
};

fetch('https://api.dcycle.io/v1/projects/extended', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
{
  "id": "<string>",
  "organization_id": "<string>",
  "name": "<string>",
  "description": {},
  "start_date": {},
  "end_date": {},
  "due_date": {},
  "project_type": {},
  "methodology": {},
  "responsible_user_id": "<string>",
  "responsible_user": {
    "id": "<string>",
    "email": "<string>",
    "first_name": {},
    "last_name": {}
  },
  "parent": {
    "id": "<string>",
    "name": "<string>"
  },
  "extended": {
    "number_of_files": 123,
    "number_of_widgets": 123,
    "number_of_tasks": 123,
    "number_of_tasks_completed": 123
  },
  "created_at": {},
  "updated_at": {}
}

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.

List Projects

Retrieve all projects in your organization including extended metadata such as file counts, widget counts, task counts, and task completion progress.

Request

Headers

x-api-key
string
required
Your API key for authenticationExample: sk_live_1234567890abcdef
x-organization-id
string
required
Your organization UUIDExample: a8315ef3-dd50-43f8-b7ce-d839e68d51fa

Response

Returns an array of project objects with extended information.
id
string
Unique identifier (UUID)
organization_id
string
Organization UUID
name
string
Project name
description
string | null
Project description
start_date
date | null
Project start date (YYYY-MM-DD)
end_date
date | null
Project end date (YYYY-MM-DD)
due_date
date | null
Project due date (YYYY-MM-DD)
project_type
string | null
Project type classificationPossible values: carbon_footprint, custom, einf, iso_14064, iso_14001, iso_9001, acv, visualization, suppliers, logistics
methodology
string | null
Reporting methodologyPossible values: esrs, gri, glec
responsible_user_id
string
UUID of the user responsible for the project
responsible_user
object
Responsible user details
parent
object | null
Parent organization info (if project is inherited from a parent org)
extended
object
Extended project metadata
created_at
datetime
Timestamp when the project was created
updated_at
datetime
Timestamp when the project was last updated

Example

curl -X GET "https://api.dcycle.io/v1/projects/extended" \
  -H "x-api-key: ${DCYCLE_API_KEY}" \
  -H "x-organization-id: ${DCYCLE_ORG_ID}"

Successful Response

[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "organization_id": "a8315ef3-dd50-43f8-b7ce-d839e68d51fa",
    "name": "Carbon Footprint 2024",
    "description": "Annual carbon footprint calculation for FY2024",
    "start_date": "2024-01-01",
    "end_date": "2024-12-31",
    "due_date": "2025-03-31",
    "project_type": "carbon_footprint",
    "methodology": "gri",
    "responsible_user_id": "user-uuid-001",
    "responsible_user": {
      "id": "user-uuid-001",
      "email": "maria@company.com",
      "first_name": "Maria",
      "last_name": "Garcia"
    },
    "parent": null,
    "extended": {
      "number_of_files": 12,
      "number_of_widgets": 5,
      "number_of_tasks": 24,
      "number_of_tasks_completed": 18
    },
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-06-20T14:45:00Z"
  },
  {
    "id": "550e8400-e29b-41d4-a716-446655440001",
    "organization_id": "a8315ef3-dd50-43f8-b7ce-d839e68d51fa",
    "name": "ISO 14064 Certification",
    "description": "Prepare ISO 14064-1 verification",
    "start_date": "2024-03-01",
    "end_date": "2024-09-30",
    "due_date": "2024-10-15",
    "project_type": "iso_14064",
    "methodology": null,
    "responsible_user_id": "user-uuid-002",
    "responsible_user": {
      "id": "user-uuid-002",
      "email": "carlos@company.com",
      "first_name": "Carlos",
      "last_name": "Lopez"
    },
    "parent": null,
    "extended": {
      "number_of_files": 8,
      "number_of_widgets": 3,
      "number_of_tasks": 15,
      "number_of_tasks_completed": 15
    },
    "created_at": "2024-03-01T09:00:00Z",
    "updated_at": "2024-09-28T16:30:00Z"
  }
]

Common Errors

401 Unauthorized

Cause: Missing or invalid API key
{
  "detail": "Invalid API key",
  "code": "INVALID_API_KEY"
}
Solution: Verify your API key is valid and active. Get a new one from Settings -> API.

404 Not Found

Cause: Organization not found
{
  "code": "ORGANIZATION_NOT_FOUND",
  "detail": "Organization with id=UUID('...') not found"
}
Solution: Verify that the x-organization-id header contains a valid organization UUID.

Use Cases

Track Project Progress

Monitor task completion across all projects:
def get_project_progress():
    """Get progress summary for all projects"""
    response = requests.get(
        "https://api.dcycle.io/v1/projects/extended",
        headers=headers
    )

    for project in response.json():
        ext = project["extended"]
        total = ext["number_of_tasks"]
        done = ext["number_of_tasks_completed"]
        pct = (done / total * 100) if total > 0 else 0
        print(f"{project['name']}: {pct:.0f}% ({done}/{total} tasks)")

get_project_progress()

Filter Projects by Type

Find all carbon footprint projects:
def get_projects_by_type(project_type):
    """Get projects filtered by type"""
    response = requests.get(
        "https://api.dcycle.io/v1/projects/extended",
        headers=headers
    )

    return [p for p in response.json() if p["project_type"] == project_type]

cf_projects = get_projects_by_type("carbon_footprint")
print(f"Carbon footprint projects: {len(cf_projects)}")

Get Project

Get a specific project by ID

Create Project

Create a new project

Link Entities

Link entities to a project

Update Project

Modify project details