GET /v1/projects/offset/{project_id}
Description
Retrieves detailed information for a single carbon offset project, including all available project data and metrics.
Path Parameters
| Parameter | Type | Description | Required |
|---|
project_id | string | Unique identifier for the project | Yes |
Example Request
Using curl
curl "https://api.onetribe.com/v1/projects/offset/abc123" \
-H "Authorisation: API-Key YOUR_API_KEY_HERE"
Using TypeScript
interface ProjectDetails {
project_id: string
title: string
description: string
primary_image: string
images: Array<{
src: string
alt: string
}>
url: string
category: string
country: string
location_name: string
project_status: string
estimated_annual_emissions: number
registry_type: string
crediting_term_start_date: string
crediting_term_end_date: string
min_volume: number
pricing: {
base_price_per_ton: number
partner_margin_percentage: number
partner_profit_per_ton: number
end_customer_price_per_ton: number
vat_rate: number
total_price: number
}
createdAt: string
updatedAt: string
}
async function getProjectDetails(projectId: string): Promise<ProjectDetails> {
const response = await fetch(
`https://api.onetribe.com/v1/projects/offset/${projectId}`,
{
headers: {
Authorisation: 'API-Key YOUR_API_KEY_HERE',
},
},
)
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`)
}
return response.json()
}
const project = await getProjectDetails('abc123')
Response Fields
| Field | Type | Description |
|---|
project_id | string | Unique identifier for the project |
title | string | Name of the carbon offset project |
description | string | Rich text description of the project's goals and implementation |
primary_image | string | URL to the project's primary image |
images | array | Collection of project images |
images[].src | string | URL of the image |
images[].alt | string | Alt text description of the image |
url | string | Project's website or information page |
category | string | Type of carbon offset project (e.g., Reforestation, Renewable Energy) |
country | string | Country where the project is located |
location_name | string | Human-readable location where the project is being implemented |
project_status | string | Current status of the project (active, pending, archived) |
estimated_annual_emissions | number | Estimated annual carbon emissions offset in tonnes |
registry_type | string | The carbon registry standard the project follows |
crediting_term_start_date | string | ISO 8601 date when the project's crediting period begins |
crediting_term_end_date | string | ISO 8601 date when the project's crediting period ends |
min_volume | number | Minimum volume of carbon credits that can be purchased |
pricing | object | Detailed pricing information |
pricing.base_price_per_ton | number | The base price per tonne in £ (OT Price) |
pricing.partner_margin_percentage | number | Partner margin as a percentage |
pricing.partner_profit_per_ton | number | Partner profit per tonne in £ |
pricing.end_customer_price_per_ton | number | Final sale price per tonne for end customers in £ |
pricing.vat_rate | number | VAT rate as a decimal (e.g., 0.2 for 20%) |
pricing.total_price | number | Total project cost in £ |
createdAt | string | ISO 8601 timestamp of when the project was created |
updatedAt | string | ISO 8601 timestamp of the last project update |
Error Responses
| Status Code | Error Code | Description |
|---|
| 401 | Unauthorized | Missing or invalid API key |
| 403 | Forbidden | Valid API key but insufficient permissions to access this project |
| 404 | NotFound | Project with the specified ID does not exist |
| 429 | TooManyRequests | Rate limit exceeded - please wait before making more requests |
| 500 | ServerError | Internal server error - please contact support if the issue persists |
Example Response
{
"project_id": "abc123",
"title": "Rainforest Preservation",
"description": "A rich text description of the project...",
"primary_image": "https://example.com/images/rainforest.jpg",
"images": [
{
"src": "https://example.com/images/rainforest.jpg",
"alt": "Aerial view of Amazon rainforest"
},
{
"src": "https://example.com/images/project-site.jpg",
"alt": "Project conservation site"
}
],
"url": "https://example.com/rainforest-preservation",
"category": "Reforestation",
"country": "Brazil",
"location_name": "Amazon Rainforest, Brazil",
"project_status": "active",
"estimated_annual_emissions": 100000,
"registry_type": "Gold Standard",
"crediting_term_start_date": "2022-01-01",
"crediting_term_end_date": "2032-01-01",
"min_volume": 1000,
"pricing": {
"base_price_per_ton": 8.5,
"partner_margin_percentage": 15,
"partner_profit_per_ton": 1.275,
"end_customer_price_per_ton": 9.775,
"vat_rate": 0.2,
"total_price": 1000000.0
},
"createdAt": "2022-01-01T12:34:56Z",
"updatedAt": "2022-01-15T08:12:10Z"
}