List budget envelopes for a planning period
curl --request GET \
--url https://app.solya.app/api/budget-envelopes \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.solya.app/api/budget-envelopes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.solya.app/api/budget-envelopes', 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.solya.app/api/budget-envelopes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://app.solya.app/api/budget-envelopes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.solya.app/api/budget-envelopes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.solya.app/api/budget-envelopes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"amount": 500000,
"createdAt": "2026-01-10T08:00:00.000Z",
"currency": "EUR",
"id": "envelope-uuid-1",
"periodId": "period-uuid-123",
"scope": "TOTAL",
"scopeValue": null,
"updatedAt": null
},
{
"amount": 120000,
"createdAt": "2026-01-11T09:00:00.000Z",
"currency": "EUR",
"id": "envelope-uuid-2",
"periodId": "period-uuid-123",
"scope": "BRAND",
"scopeValue": "brand-uuid-abc",
"updatedAt": null
}
],
"meta": {
"page": 1,
"pageSize": 20,
"total": 2
}
}Budget Envelopes
List budget envelopes for a planning period
Returns all budget envelopes for the caller’s organization filtered by the required periodId. Optionally filter by scope (TOTAL, BRAND, DEPARTMENT, or COLLECTION). Results are ordered by scope then scopeValue. Requires intelligenceLayer.view permission.
GET
/
api
/
budget-envelopes
List budget envelopes for a planning period
curl --request GET \
--url https://app.solya.app/api/budget-envelopes \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.solya.app/api/budget-envelopes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.solya.app/api/budget-envelopes', 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.solya.app/api/budget-envelopes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://app.solya.app/api/budget-envelopes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.solya.app/api/budget-envelopes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.solya.app/api/budget-envelopes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"amount": 500000,
"createdAt": "2026-01-10T08:00:00.000Z",
"currency": "EUR",
"id": "envelope-uuid-1",
"periodId": "period-uuid-123",
"scope": "TOTAL",
"scopeValue": null,
"updatedAt": null
},
{
"amount": 120000,
"createdAt": "2026-01-11T09:00:00.000Z",
"currency": "EUR",
"id": "envelope-uuid-2",
"periodId": "period-uuid-123",
"scope": "BRAND",
"scopeValue": "brand-uuid-abc",
"updatedAt": null
}
],
"meta": {
"page": 1,
"pageSize": 20,
"total": 2
}
}Authorizations
User session token issued by NextAuth. For human users accessing Solya via the web application.
Query Parameters
Page number, 1-indexed (default: 1)
Required range:
1 <= x <= 9007199254740991Number of items per page, max 100 (default: 20)
Required range:
1 <= x <= 100Minimum string length:
1Available options:
TOTAL, BRAND, DEPARTMENT, COLLECTION 
