Data API · v1

Data API reference

Three read endpoints over the rated universe. Authenticate with the X-API-Key header (see Authentication). All responses are JSON.

GET/v1/projects

List & screen projects

Filter and sort the rated universe. Returns paginated summary rows (grade, composite score, issuance, flag counts).

Query parameters
searchstringFree-text match on name, id, or developer.
typestringProject type, e.g. REDD+, Cookstoves, Landfill Gas.
registrystringVCS, GOLD, CAR, ACR, or ART.
gradestringFilter by letter grade (AAA … D).
scopestringSectoral scope, e.g. AFOLU, Energy.
min_issuednumber ·0Minimum credits issued.
sortenum ·issuedissued · score · retired · name.
orderenum ·descasc · desc.
limitint ·501–200.
offsetint ·0Pagination offset.
Request
curl — worst-graded large REDD+ projects
curl -H "X-API-Key: $CARBONDECODE_KEY" \
  "https://api.carbondecode.com/v1/projects?type=REDD%2B&sort=score&order=asc&min_issued=1000000&limit=10"
Response
200 · application/json
{
  "total": 1284,
  "limit": 50,
  "offset": 0,
  "items": [
    {
      "project_id": "VCS902",
      "name": "Kariba REDD+ Project",
      "registry": "VCS",
      "status": "Registered",
      "scope": "AFOLU",
      "project_type": "REDD+",
      "country": "Zimbabwe",
      "developer": "Carbon Green Investments",
      "credits_issued": 23000000,
      "credits_retired": 19000000,
      "composite_score": 38.4,
      "grade": "CC",
      "confidence": "high",
      "flag_count": 4,
      "has_critical": 1
    }
  ]
}
GET/v1/projects/{project_id}

Get a project's full scorecard

The complete record for one project: raw registry fields, the six-dimension scorecard with auditable rationale and flags, plus any cached AI-analyst opinion and deep reviews (document + satellite/MRV).

Path parameters
project_idstring ·reqRegistry id, e.g. VCS902 or GS1234.
Request
curl
curl -H "X-API-Key: $CARBONDECODE_KEY" \
  "https://api.carbondecode.com/v1/projects/VCS902"
Response
200 · application/json
{
  "project": { "project_id": "VCS902", "name": "Kariba REDD+ Project", "...": "raw registry fields" },
  "scorecard": {
    "project_id": "VCS902",
    "composite_score": 38.4,
    "grade": "CC",
    "confidence": "high",
    "dimensions": [
      {
        "key": "additionality",
        "label": "Additionality",
        "score": 31.0,
        "weight": 0.25,
        "rationale": ["Baseline deforestation rate well above regional reference level."]
      }
    ],
    "flags": [
      { "code": "OVERCREDIT_RISK", "severity": "critical",
        "message": "Issuance far exceeds modeled abatement.", "dimension": "quantification" }
    ],
    "applied_floors": ["critical_flag_cap"],
    "analyst_opinion": null
  },
  "analyst": { "opinion": "…", "anomalies": ["…"], "questions": ["…"], "sources": [], "model": "claude-…" },
  "reviews": { "documents": { "summary": "…" }, "mrv": { "summary": "…" } }
}
POST/v1/score

Batch-score a portfolio

Score a list of project ids in one call and get an issuance-weighted risk aggregate — ideal for assessing a book of held or candidate credits.

Body (JSON)
project_idsstring[] ·reqRegistry ids to score (unknown ids are simply omitted from items).
Request
curl
curl -X POST -H "X-API-Key: $CARBONDECODE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"project_ids": ["VCS902", "GS1234"]}' \
  "https://api.carbondecode.com/v1/score"
Response
200 · application/json
{
  "items": [
    { "project_id": "VCS902", "grade": "CC", "composite_score": 38.4, "credits_issued": 23000000, "...": "summary row" },
    { "project_id": "GS1234", "grade": "A",  "composite_score": 81.0, "credits_issued": 450000,   "...": "summary row" }
  ],
  "summary": {
    "count": 2,
    "weighted_score": 39.2,
    "avg_score": 59.7,
    "investment_grade": 1,
    "below_investment_grade": 1,
    "critical_flags": 1,
    "grades": { "A": 1, "CC": 1 }
  }
}

Want to call these from an AI assistant instead? The same data is available through the MCP server.