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 projectsGET/v1/projects/{id}— Get a project's full scorecardPOST/v1/score— Batch-score a portfolioGET
/v1/projectsList & screen projects
Filter and sort the rated universe. Returns paginated summary rows (grade, composite score, issuance, flag counts).
Query parameters
| search | string | Free-text match on name, id, or developer. |
| type | string | Project type, e.g. REDD+, Cookstoves, Landfill Gas. |
| registry | string | VCS, GOLD, CAR, ACR, or ART. |
| grade | string | Filter by letter grade (AAA … D). |
| scope | string | Sectoral scope, e.g. AFOLU, Energy. |
| min_issued | number ·0 | Minimum credits issued. |
| sort | enum ·issued | issued · score · retired · name. |
| order | enum ·desc | asc · desc. |
| limit | int ·50 | 1–200. |
| offset | int ·0 | Pagination 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_id | string ·req | Registry 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/scoreBatch-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_ids | string[] ·req | Registry 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.