Skip to main content
/

Targets API

The Targets API lets you create, read and update emissions reduction targets and their milestone records programmatically.


List targets

GET /api/v1/targets

Query parameters

Parameter Type Description
type string absolute, intensity, net_zero, sbti, custom
status string active, achieved, missed, archived
page integer
pageSize integer Max 100

Response

{
  "data": [
    {
      "id": "tgt_abc123",
      "name": "Net Zero by 2040",
      "type": "net_zero",
      "status": "active",
      "scopeCoverage": [1, 2, 3],
      "baseYear": 2020,
      "baseYearTco2e": 2500.0,
      "targetYear": 2040,
      "reductionPercent": 90.0,
      "trajectoryModel": "linear",
      "currentTco2e": 1240.5,
      "progressPercent": 50.4,
      "createdAt": "2021-01-01T00:00:00Z"
    }
  ]
}

Get a target

GET /api/v1/targets/{targetId}

Returns the full target including milestones and annual budget calculations.


Create a target

POST /api/v1/targets

Request body

{
  "name": "SBTi 1.5°C Near-Term Target",
  "type": "sbti",
  "scopeCoverage": [1, 2],
  "baseYear": 2020,
  "baseYearTco2e": 2500.0,
  "targetYear": 2030,
  "reductionPercent": 50.0,
  "trajectoryModel": "linear",
  "description": "Validated SBTi 1.5°C aligned near-term target",
  "intensityDenominator": null
}
Field Type Required Description
name string Target label
type string Target type code
scopeCoverage integer[] Scope numbers covered
baseYear integer Reference year
baseYearTco2e decimal Base year emissions
targetYear integer Year to achieve reduction
reductionPercent decimal Required % reduction
trajectoryModel string linear, front_loaded, custom
description string Optional
intensityDenominator object Conditional Required for intensity type

Response (201)

The created target object.


Update a target

PATCH /api/v1/targets/{targetId}

Updates modifiable fields. Base year emissions can be adjusted (recorded as a revision).


Archive a target

POST /api/v1/targets/{targetId}/archive

Archived targets are retained for reporting history but no longer appear in the active target list.


Milestones

List milestones for a target

GET /api/v1/targets/{targetId}/milestones
{
  "data": [
    {
      "id": "ms_001",
      "year": 2025,
      "label": "SBTi 2025 check",
      "requiredReductionPercent": 25.0,
      "allowedTco2e": 1875.0,
      "actualTco2e": 1820.0,
      "status": "achieved",
      "verified": false,
      "verifiedAt": null
    }
  ]
}

Create a milestone

POST /api/v1/targets/{targetId}/milestones
{
  "year": 2027,
  "label": "Mid-point check",
  "requiredReductionPercent": 37.5
}

Update a milestone

PATCH /api/v1/targets/{targetId}/milestones/{milestoneId}

Mark a milestone as verified

POST /api/v1/targets/{targetId}/milestones/{milestoneId}/verify
{
  "notes": "Confirmed by external verifier Smith & Partners",
  "verifiedBy": "external"
}

Delete a milestone

DELETE /api/v1/targets/{targetId}/milestones/{milestoneId}

Target progress endpoint

Returns a computed progress summary suitable for dashboard widgets — no need to calculate trajectories client-side:

GET /api/v1/targets/{targetId}/progress
{
  "data": {
    "targetId": "tgt_abc123",
    "currentYear": 2024,
    "currentTco2e": 1240.5,
    "allowedTco2eThisYear": 1375.0,
    "trajectoryTco2e": 1400.0,
    "progressPercent": 50.4,
    "status": "on_track",
    "nextMilestone": {
      "year": 2025,
      "allowedTco2e": 1875.0,
      "label": "SBTi 2025 check"
    }
  }
}

Was this page helpful?