curl --request GET \
--url https://vcm-fyi-api.fly.dev/v1/proponent-forensics/ \
--header 'X-API-KEY: <api-key>'import requests
url = "https://vcm-fyi-api.fly.dev/v1/proponent-forensics/"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://vcm-fyi-api.fly.dev/v1/proponent-forensics/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://vcm-fyi-api.fly.dev/v1/proponent-forensics/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://vcm-fyi-api.fly.dev/v1/proponent-forensics/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://vcm-fyi-api.fly.dev/v1/proponent-forensics/")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://vcm-fyi-api.fly.dev/v1/proponent-forensics/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"pagination": {
"total_entries": 123,
"current_page": 123,
"total_pages": 123,
"next_page": "<string>"
},
"data": [
{
"id": 123,
"proponent_key": "<string>",
"lookup_type": "<string>",
"proponent_names": "<string>",
"project_ids": "<string>",
"project_count": 123,
"total_issued": 123,
"countries": "<string>",
"registries": "<string>",
"run_date": "2023-11-07T05:31:56Z",
"status": "<string>",
"overall_risk_rating": "<string>",
"investment_recommendation": "<string>",
"governance_risk": "<string>",
"financial_risk": "<string>",
"legal_risk": "<string>",
"social_risk": "<string>",
"institutional_risk": "<string>",
"pillars_json": "<string>",
"primary_concern": "<string>",
"key_mitigation": "<string>",
"comparable_proponents": "<string>",
"raw_json": "<string>",
"error_type": "<string>",
"error_message": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}List proponent risk analyses
Get a paginated list of AI-generated risk analyses for carbon project developers (proponents/counterparties).
Each record represents a proponent’s risk profile built from scanning public sources, including overall risk rating, investment recommendation, and five risk pillar scores.
Filtering:
proponent_key: Partial match on normalized proponent namerisk_rating:LOW,MEDIUM,HIGH, orCRITICALrecommendation: Investment recommendation valuecountry: Country name (matches against proponent’s countries array)registry: Registry code (matches against proponent’s registries array)min_issued: Minimum total issued credits across their portfoliostatus: Scan status (success,partial,failed)
Sorting: Default: -total_issued. Supports any ProponentForensics field.
curl --request GET \
--url https://vcm-fyi-api.fly.dev/v1/proponent-forensics/ \
--header 'X-API-KEY: <api-key>'import requests
url = "https://vcm-fyi-api.fly.dev/v1/proponent-forensics/"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://vcm-fyi-api.fly.dev/v1/proponent-forensics/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://vcm-fyi-api.fly.dev/v1/proponent-forensics/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://vcm-fyi-api.fly.dev/v1/proponent-forensics/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://vcm-fyi-api.fly.dev/v1/proponent-forensics/")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://vcm-fyi-api.fly.dev/v1/proponent-forensics/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"pagination": {
"total_entries": 123,
"current_page": 123,
"total_pages": 123,
"next_page": "<string>"
},
"data": [
{
"id": 123,
"proponent_key": "<string>",
"lookup_type": "<string>",
"proponent_names": "<string>",
"project_ids": "<string>",
"project_count": 123,
"total_issued": 123,
"countries": "<string>",
"registries": "<string>",
"run_date": "2023-11-07T05:31:56Z",
"status": "<string>",
"overall_risk_rating": "<string>",
"investment_recommendation": "<string>",
"governance_risk": "<string>",
"financial_risk": "<string>",
"legal_risk": "<string>",
"social_risk": "<string>",
"institutional_risk": "<string>",
"pillars_json": "<string>",
"primary_concern": "<string>",
"key_mitigation": "<string>",
"comparable_proponents": "<string>",
"raw_json": "<string>",
"error_type": "<string>",
"error_message": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Query Parameters
Filter by proponent key
Filter by overall risk rating (LOW, MEDIUM, HIGH, CRITICAL)
Filter by investment recommendation
Filter by country (in countries array)
Filter by registry (in registries array)
Minimum total issued credits
Filter by status (success, partial, failed)
Page number
x >= 1Items per page
1 <= x <= 200Sorting: field_name or +field_name (asc), -field_name (desc)
Response
Paginated list of proponent risk analyses with pillar scores