Ledgers
Create batch generation
Triggers an async batch generation job for the given time range.
POST
/
ledgers
/
{ledger_id}
/
batch_generations
Create batch generation
curl --request POST \
--url https://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"start_time": "2025-01-01T00:00:00.000Z",
"end_time": "2025-03-31T23:59:59.000Z"
}
'import requests
url = "https://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations"
payload = {
"start_time": "2025-01-01T00:00:00.000Z",
"end_time": "2025-03-31T23:59:59.000Z"
}
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({start_time: '2025-01-01T00:00:00.000Z', end_time: '2025-03-31T23:59:59.000Z'})
};
fetch('https://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations', 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://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations",
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([
'start_time' => '2025-01-01T00:00:00.000Z',
'end_time' => '2025-03-31T23:59:59.000Z'
]),
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://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations"
payload := strings.NewReader("{\n \"start_time\": \"2025-01-01T00:00:00.000Z\",\n \"end_time\": \"2025-03-31T23:59:59.000Z\"\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://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"start_time\": \"2025-01-01T00:00:00.000Z\",\n \"end_time\": \"2025-03-31T23:59:59.000Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations")
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 \"start_time\": \"2025-01-01T00:00:00.000Z\",\n \"end_time\": \"2025-03-31T23:59:59.000Z\"\n}"
response = http.request(request)
puts response.read_body{
"id": 1,
"type": "batch_generation",
"state": "processing",
"progress": 0,
"created_at": "2025-01-15T10:00:00.000Z"
}Authorizations
Path Parameters
Ledger friendly ID (e.g., lgr_abc123def456)
Body
application/json
Start of the time range
End of the time range
Array of data point friendly IDs to include. Optional for time-partitioned models (inputs are auto-discovered from the time range). Required when the ledger's model uses partition_type "asset" — asset-partitioned generation does not auto-discover inputs and returns 422 without it.
Optional batch amount overrides
Show child attributes
Show child attributes
Optional data point type IDs to skip
Previous
List all reportsReturns an array of all reports with filtering and sorting capabilities.
Next
⌘I
Create batch generation
curl --request POST \
--url https://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"start_time": "2025-01-01T00:00:00.000Z",
"end_time": "2025-03-31T23:59:59.000Z"
}
'import requests
url = "https://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations"
payload = {
"start_time": "2025-01-01T00:00:00.000Z",
"end_time": "2025-03-31T23:59:59.000Z"
}
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({start_time: '2025-01-01T00:00:00.000Z', end_time: '2025-03-31T23:59:59.000Z'})
};
fetch('https://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations', 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://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations",
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([
'start_time' => '2025-01-01T00:00:00.000Z',
'end_time' => '2025-03-31T23:59:59.000Z'
]),
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://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations"
payload := strings.NewReader("{\n \"start_time\": \"2025-01-01T00:00:00.000Z\",\n \"end_time\": \"2025-03-31T23:59:59.000Z\"\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://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"start_time\": \"2025-01-01T00:00:00.000Z\",\n \"end_time\": \"2025-03-31T23:59:59.000Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.gomangrove.com/api/v1/ledgers/{ledger_id}/batch_generations")
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 \"start_time\": \"2025-01-01T00:00:00.000Z\",\n \"end_time\": \"2025-03-31T23:59:59.000Z\"\n}"
response = http.request(request)
puts response.read_body{
"id": 1,
"type": "batch_generation",
"state": "processing",
"progress": 0,
"created_at": "2025-01-15T10:00:00.000Z"
}