curl --request POST \
--url https://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"listingIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"contractTypes": [],
"minVolume": 1000,
"maxVolume": 5000,
"minVintageYear": "Any",
"maxVintageYear": 2020,
"buyerDescription": "This is a short description of the buyer, which will give context to the project developer when answering",
"reference": "1b5100e62ed2",
"responseDueDate": "2026-01-20",
"title": "<string>",
"fulfilmentDueDate": "2026-01-20",
"additionalRequirements": "Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left."
}
'import requests
url = "https://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs"
payload = {
"listingIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"contractTypes": [],
"minVolume": 1000,
"maxVolume": 5000,
"minVintageYear": "Any",
"maxVintageYear": 2020,
"buyerDescription": "This is a short description of the buyer, which will give context to the project developer when answering",
"reference": "1b5100e62ed2",
"responseDueDate": "2026-01-20",
"title": "<string>",
"fulfilmentDueDate": "2026-01-20",
"additionalRequirements": "Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left."
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
listingIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
contractTypes: [],
minVolume: 1000,
maxVolume: 5000,
minVintageYear: 'Any',
maxVintageYear: 2020,
buyerDescription: 'This is a short description of the buyer, which will give context to the project developer when answering',
reference: '1b5100e62ed2',
responseDueDate: '2026-01-20',
title: '<string>',
fulfilmentDueDate: '2026-01-20',
additionalRequirements: 'Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left.'
})
};
fetch('https://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs', 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://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'listingIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'contractTypes' => [
],
'minVolume' => 1000,
'maxVolume' => 5000,
'minVintageYear' => 'Any',
'maxVintageYear' => 2020,
'buyerDescription' => 'This is a short description of the buyer, which will give context to the project developer when answering',
'reference' => '1b5100e62ed2',
'responseDueDate' => '2026-01-20',
'title' => '<string>',
'fulfilmentDueDate' => '2026-01-20',
'additionalRequirements' => 'Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left.'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs"
payload := strings.NewReader("{\n \"listingIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"contractTypes\": [],\n \"minVolume\": 1000,\n \"maxVolume\": 5000,\n \"minVintageYear\": \"Any\",\n \"maxVintageYear\": 2020,\n \"buyerDescription\": \"This is a short description of the buyer, which will give context to the project developer when answering\",\n \"reference\": \"1b5100e62ed2\",\n \"responseDueDate\": \"2026-01-20\",\n \"title\": \"<string>\",\n \"fulfilmentDueDate\": \"2026-01-20\",\n \"additionalRequirements\": \"Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"listingIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"contractTypes\": [],\n \"minVolume\": 1000,\n \"maxVolume\": 5000,\n \"minVintageYear\": \"Any\",\n \"maxVintageYear\": 2020,\n \"buyerDescription\": \"This is a short description of the buyer, which will give context to the project developer when answering\",\n \"reference\": \"1b5100e62ed2\",\n \"responseDueDate\": \"2026-01-20\",\n \"title\": \"<string>\",\n \"fulfilmentDueDate\": \"2026-01-20\",\n \"additionalRequirements\": \"Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"listingIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"contractTypes\": [],\n \"minVolume\": 1000,\n \"maxVolume\": 5000,\n \"minVintageYear\": \"Any\",\n \"maxVintageYear\": 2020,\n \"buyerDescription\": \"This is a short description of the buyer, which will give context to the project developer when answering\",\n \"reference\": \"1b5100e62ed2\",\n \"responseDueDate\": \"2026-01-20\",\n \"title\": \"<string>\",\n \"fulfilmentDueDate\": \"2026-01-20\",\n \"additionalRequirements\": \"Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left.\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"statusCode": 400,
"message": "<string>",
"error": 123
}{
"statusCode": 401,
"message": "<string>",
"error": 123
}{
"statusCode": 403,
"message": "<string>",
"error": 123
}{
"statusCode": 404,
"message": "<string>",
"error": 123
}{
"statusCode": 500,
"message": "<string>",
"error": 123
}POST RFQ
Create Request For Quote as a channel
curl --request POST \
--url https://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"listingIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"contractTypes": [],
"minVolume": 1000,
"maxVolume": 5000,
"minVintageYear": "Any",
"maxVintageYear": 2020,
"buyerDescription": "This is a short description of the buyer, which will give context to the project developer when answering",
"reference": "1b5100e62ed2",
"responseDueDate": "2026-01-20",
"title": "<string>",
"fulfilmentDueDate": "2026-01-20",
"additionalRequirements": "Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left."
}
'import requests
url = "https://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs"
payload = {
"listingIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"contractTypes": [],
"minVolume": 1000,
"maxVolume": 5000,
"minVintageYear": "Any",
"maxVintageYear": 2020,
"buyerDescription": "This is a short description of the buyer, which will give context to the project developer when answering",
"reference": "1b5100e62ed2",
"responseDueDate": "2026-01-20",
"title": "<string>",
"fulfilmentDueDate": "2026-01-20",
"additionalRequirements": "Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left."
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
listingIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
contractTypes: [],
minVolume: 1000,
maxVolume: 5000,
minVintageYear: 'Any',
maxVintageYear: 2020,
buyerDescription: 'This is a short description of the buyer, which will give context to the project developer when answering',
reference: '1b5100e62ed2',
responseDueDate: '2026-01-20',
title: '<string>',
fulfilmentDueDate: '2026-01-20',
additionalRequirements: 'Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left.'
})
};
fetch('https://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs', 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://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'listingIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'contractTypes' => [
],
'minVolume' => 1000,
'maxVolume' => 5000,
'minVintageYear' => 'Any',
'maxVintageYear' => 2020,
'buyerDescription' => 'This is a short description of the buyer, which will give context to the project developer when answering',
'reference' => '1b5100e62ed2',
'responseDueDate' => '2026-01-20',
'title' => '<string>',
'fulfilmentDueDate' => '2026-01-20',
'additionalRequirements' => 'Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left.'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs"
payload := strings.NewReader("{\n \"listingIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"contractTypes\": [],\n \"minVolume\": 1000,\n \"maxVolume\": 5000,\n \"minVintageYear\": \"Any\",\n \"maxVintageYear\": 2020,\n \"buyerDescription\": \"This is a short description of the buyer, which will give context to the project developer when answering\",\n \"reference\": \"1b5100e62ed2\",\n \"responseDueDate\": \"2026-01-20\",\n \"title\": \"<string>\",\n \"fulfilmentDueDate\": \"2026-01-20\",\n \"additionalRequirements\": \"Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"listingIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"contractTypes\": [],\n \"minVolume\": 1000,\n \"maxVolume\": 5000,\n \"minVintageYear\": \"Any\",\n \"maxVintageYear\": 2020,\n \"buyerDescription\": \"This is a short description of the buyer, which will give context to the project developer when answering\",\n \"reference\": \"1b5100e62ed2\",\n \"responseDueDate\": \"2026-01-20\",\n \"title\": \"<string>\",\n \"fulfilmentDueDate\": \"2026-01-20\",\n \"additionalRequirements\": \"Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.connect.bluelayer.tech/v1/orgs/{orgName}/channels/{channelSlug}/rfqs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"listingIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"contractTypes\": [],\n \"minVolume\": 1000,\n \"maxVolume\": 5000,\n \"minVintageYear\": \"Any\",\n \"maxVintageYear\": 2020,\n \"buyerDescription\": \"This is a short description of the buyer, which will give context to the project developer when answering\",\n \"reference\": \"1b5100e62ed2\",\n \"responseDueDate\": \"2026-01-20\",\n \"title\": \"<string>\",\n \"fulfilmentDueDate\": \"2026-01-20\",\n \"additionalRequirements\": \"Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left.\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"statusCode": 400,
"message": "<string>",
"error": 123
}{
"statusCode": 401,
"message": "<string>",
"error": 123
}{
"statusCode": 403,
"message": "<string>",
"error": 123
}{
"statusCode": 404,
"message": "<string>",
"error": 123
}{
"statusCode": 500,
"message": "<string>",
"error": 123
}Authorizations
Body
1Listings that the request is addressing
List of contract types that the buyer is accepting for this RFQ, must specify at least one
1spot, forward Minimum volume of credits requested
x >= 11000
Maximum volume of credits requested
x >= 15000
Minimum vintage year, or 'Any' if no minimum
Any "Any"
Maximum vintage year, or 'Any' if no maximum
Any 2020
Buyer description
"This is a short description of the buyer, which will give context to the project developer when answering"
The channel's reference to this request
"1b5100e62ed2"
The date by which the response is due
"2026-01-20"
Title of the request that gives more context to the channel owner. Meant for internal use only (it will not be shared with the project developer).
The date by which the credits should be fulfilled
"2026-01-20"
Show child attributes
Show child attributes
buyToRetire, buyToSell, other Any additional requirements for the RFQ
"Credits must be from projects verified by Verra and must have a minimum of 10 years of crediting period left."
Response
Default Response