REST API

The ESG Hub API provides simple HTTP JSON endpoints to search and retrieve ESG content.

Getting Started

The API is completely open and requires no authentication.

Base URLAll API requests should be made to: https://esg-hub.ascent.partners/api/v1

Quick Start

  1. Choose an endpoint below (e.g., /api/v1/pages for articles)
  2. Make a request using cURL, JavaScript, or Python
  3. Parse the JSON response for the data you need

Code Examples

curl -s "https://esg-hub.ascent.partners/api/v1/pages?limit=3" | jq .

Authentication

No Authentication RequiredThe API is completely open and requires no authentication.

Endpoints

GET/api/v1/meta

Get metadata about the ESG Hub knowledge base, including article counts, section statistics, and database timestamps.

Request Example

curlbash
curl -s "https://esg-hub.ascent.partners/api/v1/meta"

Response

json
{
  "total_pages": 351,
  "total_resources": 244,
  "sections": [
    { "name": "environmental", "count": 23 },
    { "name": "governance", "count": 65 }
  ],
  "updated_at": "2026-02-24T12:00:00Z"
}
GET/api/v1/pages

List all ESG articles with optional filtering. Supports filtering by section, pillar, and full-text search.

Parameters

NameTypeRequiredDescription
sectionstringOptionalFilter by section (e.g., 'environmental', 'governance')
pillarstringOptionalFilter by pillar: 'Environmental', 'Social', or 'Governance'
qstringOptionalFull-text search in title and description
limitnumberOptionalResults per page (default: 20, max: 100)
offsetnumberOptionalPagination offset

Request Example

curlbash
# List all pages
curl -s "https://esg-hub.ascent.partners/api/v1/pages?limit=5"

# Filter by section
curl -s "https://esg-hub.ascent.partners/api/v1/pages?section=environmental&limit=10"

# Search for climate
curl -s "https://esg-hub.ascent.partners/api/v1/pages?q=climate&limit=5"

Response

json
{
  "data": [
    {
      "id": "page:abc123",
      "title": "Climate Change",
      "description": "Understanding climate risks...",
      "section": "environmental",
      "pillar": "Environmental",
      "permalink": "/environmental/climate-change/"
    }
  ],
  "pagination": {
    "total": 351,
    "limit": 5,
    "offset": 0,
    "has_more": true
  }
}
GET/api/v1/pages/:id

Get a single page by its ID. Returns full content including markdown and metadata.

Request Example

curlbash
curl -s "https://esg-hub.ascent.partners/api/v1/pages/page:abc123"

Response

json
{
  "id": "page:abc123",
  "title": "Climate Change",
  "content": "# Climate Change\n\nClimate change refers to...",
  "keywords": "climate, carbon, emissions",
  "created_at": "2024-01-15T10:30:00Z"
}
GET/api/v1/resources

List curated external ESG resources. These are links to external articles, reports, and tools.

Parameters

NameTypeRequiredDescription
typestringOptionalFilter by type: 'article', 'report', 'tool', 'dataset'
qstringOptionalSearch in title and description
limitnumberOptionalResults per page (default: 20)

Request Example

curlbash
# List all resources
curl -s "https://esg-hub.ascent.partners/api/v1/resources?limit=5"

# Filter by type
curl -s "https://esg-hub.ascent.partners/api/v1/resources?type=report&limit=10"

Response

json
{
  "data": [
    {
      "id": "resource:xyz789",
      "title": "TCFD Recommendations",
      "url": "https://assets.bbhub.io/...",
      "type": "report",
      "source": "TCFD"
    }
  ],
  "pagination": { "total": 244, "limit": 5, "offset": 0 }
}

Error Handling

The API returns standard HTTP status codes and error messages.

Error Responsejson
{
  "error": "Missing required parameter: q"
}
StatusMeaning
400400 Bad Request
404404 Not Found
500500 Server Error

Rate Limits

No Strict Rate LimitsPlease be respectful and cache responses where possible.
REST API Documentation β€” ESG Hub β€” ESG Hub