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

# Projects & Facilities

> List Projects & Facilities.

## List Projects

Retrieves a list of CDR projects.

### HTTP Request

`GET https://api.cdr.fyi/v1/projects`

### Query Parameters

| Parameter  | Type   | Description                                 |
| ---------- | ------ | ------------------------------------------- |
| slug       | String | Filter projects by their slug               |
| geoCountry | String | Filter projects by country                  |
| method     | String | Filter projects by method of carbon removal |

### Custom Headers

* `x-page`: The page number (default is 1)
* `x-limit`: Number of items per page (max 100, default is 10)

## Example Request

```bash theme={null}
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" "https://api.cdr.fyi/v1/projects"
```

### Create or Update a Project

This endpoint creates a new project or updates an existing one by upserting based on the `Project ID`.

#### HTTP Request

`POST https://api.cdr.fyi/v1/projects`

#### Request Headers

* **Authorization**: Bearer YOUR\_ACCESS\_TOKEN
* **Content-Type**: application/json

#### Request Body Parameters

| Field Name                     | Type             | Required | Description                                          |
| ------------------------------ | ---------------- | -------- | ---------------------------------------------------- |
| Project ID                     | String           | Yes      | Automatically assigned unique identifier             |
| Name                           | String           | Yes      | Name of the project                                  |
| Slug                           | String           | Yes      | Slug for the projects                                |
| Supplier ID                    | String           | Yes      | Identifier for the supplier (parent)                 |
| External ID                    | String           | No       | Unique identifier used by marketplace or registry    |
| Marketplace IDs                | Array            | No       | Identifiers for marketplaces listing the project     |
| Geo City                       | String           | No       | City where the project is located                    |
| Geo Country                    | String           | Yes      | Country where the project is located                 |
| Geo Address                    | String           | No       | Textual address of the project                       |
| Geo Coordinates                | Object           | No       | `{lat, lon}` coordinates of the project              |
| Geo Continent                  | String           | Yes      | Continent where the project is located               |
| URL                            | String           | No       | URL of the project page on the supplier/registry     |
| Type                           | String           | Yes      | Facility \| Land Area                                |
| Status                         | String           | Yes      | Announced \| Operational                             |
| Description                    | String           | Yes      | Description of the project                           |
| Area                           | Integer          | No       | Area in hectares                                     |
| Estimated Annual Capacity      | Integer          | No       | Estimated annual net capacity in tonnes of CO2       |
| Method                         | String           | Yes      | Method of carbon removal                             |
| Submethod                      | String           | Yes      | Submethod of carbon removal                          |
| Registry ID                    | String           | No       | Identifier for the registry                          |
| Verifier/Validator Names       | Array of Strings | No       | Names of verifier/validator organizations            |
| Proponent Names                | Array of Strings | No       | Names of project proponents                          |
| Methodology Names              | Array of Strings | No       | Names of the methodologies used                      |
| Accreditation Standards        | Array of Objects | No       | Accreditations with name and distinctions            |
| Year Commissioned              | Integer          | No       | Year the project was commissioned                    |
| Project Start Date             | Date             | No       | Date when crediting period begins                    |
| Estimated Operational Lifetime | Integer          | No       | Expected operational lifetime in years               |
| Stage                          | Picklist         | No       | 'Pilot', 'Demonstration', 'Commercial'               |
| Storage Description            | String           | No       | Description of CO2 storage methods                   |
| Capacity Notes                 | String           | No       | Notes on capacities for projects with multiple sites |
| Initial Annual Capacity        | Integer          | No       | Initial removal capacity                             |
| Annual Capacity at Scale       | Integer          | No       | Peak removal capacity once fully operational         |
| Permanency Level               | String           | No       | Minimum years CO2 is expected to be sequestered      |

Example Request

```bash theme={null}
curl -X GET https://api.cdr.fyi/v1/projects \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" 
```

Example Response

```json theme={null}
{
  "projects": [{
    "Project ID": "proj_001",
    "Name": "Project Alpha",
    "Slug": "project-alpha",
    "Supplier ID": "sup123",
    "Geo Country": "USA",
    "Type": "Land Area",
    "Status": "Operational",
    "Method": "Soil Sequestration",
    "Submethod": "Enhanced Weathering",
    "Description": "A project focused on sustainable land management and carbon capture."
  }]    
}
```

## Error Responses

If the request is not successful, you will receive a 400 Bad Request or 401 Unauthorized response along with an error message indicating the issue.
